Submission #44990689


Source Code Expand

#include<bits/stdc++.h>
#define rep(i,a,b) for(int i=(a);i<=(b);i++)
#define per(i,a,b) for(int i=(a);i>=(b);i--)
#define op(x) ((x&1)?x+1:x-1)
#define odd(x) (x&1)
#define even(x) (!odd(x))
#define lc(x) (x<<1)
#define rc(x) (lc(x)|1)
#define lowbit(x) (x&-x)
#define mp(x,y) make_pair(x,y)
typedef long long ll;
typedef unsigned long long ull;
typedef double db;
using namespace std;
const int MAXN = 15;

int n,m;

int ok[1<<MAXN];

queue<int>q[MAXN][MAXN];
vector<int>e[1<<MAXN];

ll dp[1<<MAXN],lst;

void calc(int x){
	//对x的所有超集做dp
	vector<int>S;
	for(int u = x;u != ((1<<n)-1);u = (u+1) | x){
		S.push_back(u);
	}
	S.push_back((1<<n)-1);
	sort(S.begin(),S.end());
	for(auto u : S){
		if(!ok[u])continue;
		dp[u] = 0;
		rep(i,0,n-1)if(u>>i&1)dp[u] += dp[u^(1<<i)];
	}
}

void add(int mask){
	rep(i,0,n-1)if(!(mask>>i&1))rep(j,i+1,n-1)if(mask>>j&1){
		q[i][j].push(mask);
	}
}

int main(){
	ios::sync_with_stdio(false);

	cin>>n>>m;

	rep(i,0,(1<<n)-1)e[i].push_back(i);

	rep(i,0,n){
		int mask = 0;
		rep(j,0,i-1)mask |= (1<<j);
		ok[mask] = dp[mask] = 1;
	}
	rep(mask,0,(1<<n)-1){
		add(mask);
	}

	lst = 1;

	rep(i,1,m){
		int u,v;cin>>u>>v;
		u = (u + lst)%n,v = (v + lst*2)%n;
		if(u>v)swap(u,v);

		while(q[u][v].size()){
			int S = q[u][v].front();q[u][v].pop();
			if(e[S].empty())continue;

			int X = S^(1<<u)^(1<<v);
			for(auto T : e[S]){
				int X = S^(1<<u)^(1<<v);
				e[X].push_back(T);

				if(ok[X]==1 && !ok[T]){
					ok[T] = 2;
					calc(T);
				}
			}
			e[S].clear();
			add(X);
		}
		

		lst = dp[(1<<n)-1];
		cout<<lst<<"\n";
	}

    return 0;
}

Submission Info

Submission Time
Task F - Count Sorted Arrays
User Crying
Language C++ (GCC 9.2.1)
Score 900
Code Size 1682 Byte
Status AC
Exec Time 1491 ms
Memory 17368 KB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 900 / 900
Status
AC × 3
AC × 87
Set Name Test Cases
Sample 00_sample_00.txt, 00_sample_01.txt, 00_sample_02.txt
All 00_sample_00.txt, 00_sample_01.txt, 00_sample_02.txt, 01_random_1_00.txt, 01_random_1_01.txt, 01_random_1_02.txt, 01_random_1_03.txt, 01_random_1_04.txt, 01_random_1_05.txt, 01_random_1_06.txt, 01_random_1_07.txt, 01_random_1_08.txt, 01_random_1_09.txt, 01_random_1_10.txt, 01_random_1_11.txt, 01_random_1_12.txt, 01_random_1_13.txt, 01_random_1_14.txt, 01_random_1_15.txt, 02_random_2_00.txt, 02_random_2_01.txt, 02_random_2_02.txt, 02_random_2_03.txt, 02_random_2_04.txt, 02_random_2_05.txt, 02_random_2_06.txt, 02_random_2_07.txt, 02_random_2_08.txt, 02_random_2_09.txt, 02_random_2_10.txt, 02_random_2_11.txt, 03_random_3_00.txt, 03_random_3_01.txt, 03_random_3_02.txt, 03_random_3_03.txt, 03_random_3_04.txt, 03_random_3_05.txt, 03_random_3_06.txt, 03_random_3_07.txt, 04_max_update_00.txt, 04_max_update_01.txt, 04_max_update_02.txt, 04_max_update_03.txt, 04_max_update_04.txt, 04_max_update_05.txt, 04_max_update_06.txt, 04_max_update_07.txt, 04_max_update_08.txt, 04_max_update_09.txt, 04_max_update_10.txt, 04_max_update_11.txt, 04_max_update_12.txt, 04_max_update_13.txt, 04_max_update_14.txt, 04_max_update_15.txt, 04_max_update_16.txt, 04_max_update_17.txt, 04_max_update_18.txt, 04_max_update_19.txt, 04_max_update_20.txt, 04_max_update_21.txt, 04_max_update_22.txt, 04_max_update_23.txt, 04_max_update_24.txt, 04_max_update_25.txt, 04_max_update_26.txt, 04_max_update_27.txt, 04_max_update_28.txt, 04_max_update_29.txt, 04_max_update_30.txt, 04_max_update_31.txt, 04_max_update_32.txt, 04_max_update_33.txt, 04_max_update_34.txt, 04_max_update_35.txt, 04_max_update_36.txt, 04_max_update_37.txt, 04_max_update_38.txt, 04_max_update_39.txt, 05_periodic_00.txt, 05_periodic_01.txt, 05_periodic_02.txt, 05_periodic_03.txt, 05_periodic_04.txt, 05_periodic_05.txt, 05_periodic_06.txt, 05_periodic_07.txt
Case Name Status Exec Time Memory
00_sample_00.txt AC 5 ms 4484 KB
00_sample_01.txt AC 2 ms 4392 KB
00_sample_02.txt AC 2 ms 4484 KB
01_random_1_00.txt AC 65 ms 4332 KB
01_random_1_01.txt AC 114 ms 4492 KB
01_random_1_02.txt AC 1123 ms 15568 KB
01_random_1_03.txt AC 1043 ms 15932 KB
01_random_1_04.txt AC 823 ms 8436 KB
01_random_1_05.txt AC 807 ms 4460 KB
01_random_1_06.txt AC 1199 ms 16632 KB
01_random_1_07.txt AC 1245 ms 16536 KB
01_random_1_08.txt AC 605 ms 4492 KB
01_random_1_09.txt AC 244 ms 4464 KB
01_random_1_10.txt AC 804 ms 14520 KB
01_random_1_11.txt AC 902 ms 14580 KB
01_random_1_12.txt AC 762 ms 4544 KB
01_random_1_13.txt AC 771 ms 4400 KB
01_random_1_14.txt AC 1283 ms 17368 KB
01_random_1_15.txt AC 1119 ms 16672 KB
02_random_2_00.txt AC 757 ms 4384 KB
02_random_2_01.txt AC 1232 ms 13280 KB
02_random_2_02.txt AC 782 ms 4516 KB
02_random_2_03.txt AC 1205 ms 12644 KB
02_random_2_04.txt AC 765 ms 4484 KB
02_random_2_05.txt AC 1145 ms 13312 KB
02_random_2_06.txt AC 767 ms 4388 KB
02_random_2_07.txt AC 1173 ms 13584 KB
02_random_2_08.txt AC 1147 ms 13608 KB
02_random_2_09.txt AC 1176 ms 13344 KB
02_random_2_10.txt AC 769 ms 4440 KB
02_random_2_11.txt AC 1187 ms 13296 KB
03_random_3_00.txt AC 1143 ms 12732 KB
03_random_3_01.txt AC 1230 ms 16440 KB
03_random_3_02.txt AC 1269 ms 13468 KB
03_random_3_03.txt AC 1168 ms 16960 KB
03_random_3_04.txt AC 1167 ms 12740 KB
03_random_3_05.txt AC 1213 ms 16232 KB
03_random_3_06.txt AC 1235 ms 12616 KB
03_random_3_07.txt AC 1151 ms 16892 KB
04_max_update_00.txt AC 1475 ms 16956 KB
04_max_update_01.txt AC 1215 ms 16800 KB
04_max_update_02.txt AC 1491 ms 16816 KB
04_max_update_03.txt AC 1212 ms 16824 KB
04_max_update_04.txt AC 1032 ms 16900 KB
04_max_update_05.txt AC 1216 ms 16008 KB
04_max_update_06.txt AC 1039 ms 16708 KB
04_max_update_07.txt AC 1199 ms 16016 KB
04_max_update_08.txt AC 1451 ms 11520 KB
04_max_update_09.txt AC 922 ms 13312 KB
04_max_update_10.txt AC 1454 ms 11624 KB
04_max_update_11.txt AC 932 ms 13340 KB
04_max_update_12.txt AC 917 ms 11888 KB
04_max_update_13.txt AC 1456 ms 13116 KB
04_max_update_14.txt AC 946 ms 11784 KB
04_max_update_15.txt AC 1460 ms 13100 KB
04_max_update_16.txt AC 1457 ms 13124 KB
04_max_update_17.txt AC 920 ms 11792 KB
04_max_update_18.txt AC 1469 ms 13072 KB
04_max_update_19.txt AC 922 ms 11832 KB
04_max_update_20.txt AC 923 ms 13332 KB
04_max_update_21.txt AC 1451 ms 11516 KB
04_max_update_22.txt AC 930 ms 13500 KB
04_max_update_23.txt AC 1459 ms 11520 KB
04_max_update_24.txt AC 1315 ms 11528 KB
04_max_update_25.txt AC 1312 ms 11260 KB
04_max_update_26.txt AC 1292 ms 11280 KB
04_max_update_27.txt AC 1320 ms 11268 KB
04_max_update_28.txt AC 1217 ms 16632 KB
04_max_update_29.txt AC 1139 ms 15796 KB
04_max_update_30.txt AC 1217 ms 15676 KB
04_max_update_31.txt AC 1160 ms 16304 KB
04_max_update_32.txt AC 1251 ms 15912 KB
04_max_update_33.txt AC 1158 ms 16580 KB
04_max_update_34.txt AC 1141 ms 15524 KB
04_max_update_35.txt AC 1126 ms 15992 KB
04_max_update_36.txt AC 1265 ms 16164 KB
04_max_update_37.txt AC 1096 ms 15764 KB
04_max_update_38.txt AC 1191 ms 16184 KB
04_max_update_39.txt AC 1180 ms 16424 KB
05_periodic_00.txt AC 771 ms 6028 KB
05_periodic_01.txt AC 335 ms 4496 KB
05_periodic_02.txt AC 964 ms 14464 KB
05_periodic_03.txt AC 447 ms 12848 KB
05_periodic_04.txt AC 764 ms 4392 KB
05_periodic_05.txt AC 778 ms 4444 KB
05_periodic_06.txt AC 1258 ms 16712 KB
05_periodic_07.txt AC 1239 ms 16788 KB