RT,写的双 log,但是大样例和自己造的极限数据最慢不超过 450ms:
#include<bits/stdc++.h>
#define ll long long
#define mxn 200003
#define md 1000000007
#define pb push_back
#define mkp make_pair
#define ld long double
#define umap unordered_map
#define rep(i,a,b) for(int i=a;i<=b;++i)
#define rept(i,a,b) for(int i=a;i<b;++i)
#define drep(i,a,b) for(int i=a;i>=b;--i)
#define pq priority_queue
using namespace std;
inline void print(__int128 a){
if(a>9)print(a/10);
putchar(a%10+'0');
}
inline __int128 rnd(int k){
__int128 x=0;
rept(i,0,k)x=(x<<1)+(rand()&1);
return x;
}
int c,n,t,m,k;
mt19937 mt((unsigned ll)new char);
signed main(){
freopen("xor.in","w",stdout);
srand((unsigned ll)new char);
c=22,t=5,n=1e5;
cout<<c<<' '<<t<<'\n';
while(t--){
m=1e9,k=120;
cout<<n<<' '<<m<<' '<<k<<'\n';
rep(i,1,n)print(rnd(k)),putchar(' ');puts("");
rep(i,1,n)cout<<mt()%10+1<<' ';puts("");
}
return 0;
}
根据以往的经验不能发考场代码,因为出题人就藏在人群里。