请求加大时限或者提交 hack
查看原帖
请求加大时限或者提交 hack
202556
Terry2022楼主2023/12/26 21:56

你造一个只有 2≤cnt≤52\le cnt \le 5 种权值的序列 aa,然后剩余的直接随,这个序列也可以直接随,你可以发现,随便找一篇通过的且公开的代码,都跑不动

希望可以开大时限,或者加入这样的数据,或者有没有大佬教教我卡常

参考资料:U393391,里面的提交为公开代码且速度在前列的代码,均只有 2020 分。

关于这 55 个数据:数据生成器如下:

#include<cstdio>
#include<algorithm>
#include<cstring>
#include<cassert>
#include<vector>
#include<random>
const int Q=1000005,BB=140,P=BB*2+5;
const int INF=(1<<30);
typedef long long ll;
#define rg register int
#define cint const register int
char ibuf[1<<21],*IP1=ibuf,*IP2=ibuf;
#define gc() (__builtin_expect(IP1==IP2,0)&&(IP2=(IP1=ibuf)+fread(ibuf,1,1<<21,stdin),__builtin_expect(IP1==IP2,0))?EOF:*IP1++)
#define pc putchar
inline bool ig(const char c){return c>=48&&c<=57;}
inline void read(rg&oi){char c;rg f=1,res=0;while(c=gc(),(!ig(c))&&c^'-');c^'-'?res=(c^48):f=-1;while(c=gc(),ig(c))res=res*10+(c^48);oi=f*res;}
inline void print(rg oi){char io[23];rg l=0;if(oi<0)pc('-'),oi=~oi+1;do io[++l]=(oi%10+48);while(oi/=10);for(;l;--l)pc(io[l]);}
inline void write(cint oi,const char c){print(oi);pc(c);}char _ST_;
std::random_device sd;std::mt19937 rnd(sd());
inline int Rnd(cint l,cint r){return std::uniform_int_distribution<int>(l,r)(rnd);}
inline void swap(rg&x,rg&y){cint t=x;x=y;y=t;}
inline int min(cint x,cint y){return x<y?x:y;}
int T,n,m,p[Q],s,N,M;
constexpr int NN=22,MM=20,V=1;
char _ED_;int main(){
	freopen("data5.in","w",stdout);
//	n=Rnd(1,NN);m=MM;
n=5e5,m=5e5;
	write(n,' ');write(m,'\n');
	for(rg i=1;i<=n;++i)write(Rnd(1,V),' ');pc('\n');
	for(rg i=1;i<=n;++i)p[i]=i;
	std::shuffle(p+1,p+1+n,rnd);
	for(rg i=1;i<=n;++i)write(p[i],' ');pc('\n');;
	for(rg i=1;i<=m;++i){
		rg l=Rnd(1,n),r=Rnd(1,n);
		if(l>r)swap(l,r);
		write(l,' ');write(r,'\n');
	}
	return 0;
}

#1,#2,#3,#4,#5 分别为 V=100,10,5,2,1V=100,10,5,2,1

2023/12/26 21:56
加载中...