Genius_Star @ 2024-08-05 13:23:00
就是说,输入数据较大的时候,要用一些特别的方式自己来生成一个长度为
但是本人尝试多种,fib,异或等,发现都有循环节,一下就可以卡过去。
这里求一种较好的生成方式。
by jason_sun @ 2024-08-05 13:26:41
考虑生成 unsigned long long 行不
by Po7ed @ 2024-08-05 13:26:52
随机数&1 生成每一位,随机数用 mt19937。
不知道是否符合 lz 要求
by houmy @ 2024-08-05 13:29:14
或者把随机数用二进制拆分,拆出来
by _Weslie_ @ 2024-08-05 13:34:20
随机数(rand),然后二进制拆分输出即可。
为了更加确保随机性可以把下一个随机种子设为随机出的数。
#include<bits/stdc++.h>
using namespace std;
long long a;
int main(){
srand(time(0));
for(int i=1;i<=10000;i++){
a=(rand()%10000+1)*(rand()%10000+1)*(rand()%10000+1)*(rand()%10000+1)+(rand()%10000+1);
srand(a);
while(a){
cout<<((a%2)+2)%2;
a/=2;
}
}
return 0;
}
不知道这样的方式符不符合要求。
by NikaidouHiro @ 2024-08-05 13:38:13
@Genius_Star 你拆 64 位,每位用移位异或的方式生产即可。
by SafariMo @ 2024-08-05 13:38:18
string 读入。
by NikaidouHiro @ 2024-08-05 13:38:38
@Weslie 哥们他是要压缩输入。
by NikaidouHiro @ 2024-08-05 13:39:38
@WhisperingWillow 真不好说吧,能避免的还是避免一下。不然到时候被选手喷了
by buyao_wan_yuanshen @ 2024-08-05 13:46:26
@Genius_Star
设一个在
by incra @ 2024-08-05 14:00:26
@Genius_Star 你可以借鉴一下别人的生出数据的代码,然后把它生成的数据按 64 位拆分。