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 |
|
|
| 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 |