cout啊
不然每次3e6
用循环初始化
每次得n
看你的帖子
#include<bits/stdc++.h>
using namespace std;
int read(){
char c=getchar_unlocked();
int f=1;
while(!isdigit(c)){
if(c=='-') f=-1;
c=getchar_unlocked();
}
int k=0;
while(isdigit(c)){
k=(k<<3)+(k<<1)+(c^'0');
c=getchar_unlocked();
}
return f*k;
}
int hs[3000005];
signed main(){
freopen("set.in","r",stdin);
freopen("set.out","w",stdout);
ios::sync_with_stdio(0);
cin.tie(0),cout.tie(0);
srand(time(0));
int c,t;
c=read(),t=read();
while(t--){
int n,m;
n=read(),m=read();
for(int i=1;i<=n;i++)
hs[i]=0;
for(int i=1;i<=m;i++){
unsigned long long mod=rand();
int k;
k=read();
for(int j=1;j<=k;j++){
int l,r;
l=read(),r=read();
hs[l]^=mod;
hs[r+1]^=mod;
}
}
for(int i=2;i<=n;i++)
hs[i]^=hs[i-1];
sort(hs+1,hs+n+1);
int ans=0;
for(int i=1;i<=n;i++){
if((i==1||hs[i]!=hs[i-1])&&(i==n||hs[i]!=hs[i+1]))
ans++;
}
cout<<ans<<'\n';
}
return 0;
}
OK呀,WA了)
快读删掉,用cin,cout
这里别用rand,用老师的
rand《=65536
#include<bits/stdc++.h>
using namespace std;
int hs[3000005];
signed main(){
freopen("set.in","r",stdin);
freopen("set.out","w",stdout);
ios::sync_with_stdio(0);
cin.tie(0),cout.tie(0);
srand(time(0));
int c,t;
cin>>c>>t;
while(t--){
int n,m;
cin>>n>>m;
for(int i=0;i<=n;i++)
hs[i]=0;
for(int i=1;i<=m;i++){
unsigned long long mod=rand();
int k;
cin>>k;
for(int j=1;j<=k;j++){
int l,r;
cin>>l>>r;
hs[l]^=mod;
hs[r+1]^=mod;
}
}
for(int i=2;i<=n;i++)
hs[i]^=hs[i-1];
sort(hs+1,hs+n+1);
int ans=0;
for(int i=1;i<=n;i++){
if((i==1||hs[i]!=hs[i-1])&&(i==n||hs[i]!=hs[i+1]))
ans++;
}
cout<<ans<<'\n';
}
return 0;
}
WA60
用这个mt19937_64 rd(chrono::steady_clock::now().time_since_epoch().count());
能解决吧
#include<bits/stdc++.h>
using namespace std;
mt19937_64
rd(chrono::steady_clock::now().time_since_epoch().count());
int hs[3000005];
signed main(){
// freopen("set.in","r",stdin);
// freopen("set.out","w",stdout);
ios::sync_with_stdio(0);
cin.tie(0),cout.tie(0);
srand(time(0));
int c,t;
cin>>c>>t;
while(t--){
int n,m;
cin>>n>>m;
for(int i=0;i<=n;i++)
hs[i]=0;
for(int i=1;i<=m;i++){
unsigned long long mod=rd;
int k;
cin>>k;
for(int j=1;j<=k;j++){
int l,r;
cin>>l>>r;
hs[l]^=mod;
hs[r+1]^=mod;
}
}
for(int i=2;i<=n;i++)
hs[i]^=hs[i-1];
sort(hs+1,hs+n+1);
int ans=0;
for(int i=1;i<=n;i++){
if((i==1||hs[i]!=hs[i-1])&&(i==n||hs[i]!=hs[i+1]))
ans++;
}
cout<<ans<<'\n';
}
return 0;
}
CE了
不是
这里连起来
mt19937_64 rd(chrono::steady_clock::now().time_since_epoch().count());
连一起!!!
还是CE
加括号