这个是我写的代码
const int MOD=2134567921,base=233,ibase=732898857;
int pw[500001],ipw[500001],qr[500001],br[500001],nbr[500001];
bool sr[20][500001];
void init(int N, const char s[]) {
pw[0]=ipw[0]=1;
for(int i=1;i<=N;++i) {
pw[i]=(long long)pw[i-1]*base%MOD;
ipw[i]=(long long)ipw[i-1]*ibase%MOD;
}
for(int i=0;i<N;++i) {
qr[i]=((long long)s[i]*pw[i]+qr[i-1])%MOD;
sr[0][i]=true;
}
for(int i=1;i<20;++i) {
for(int j=0;j<N;++j) br[j]=s[j];
for(int j=1;j<=i;++j)
for(int k=0;k+(1<<j)-1<N;++k)
br[k]=(br[k]+(long long)br[k+(1<<(j-1))]*pw[1<<(i-j)])%MOD;
for(int j=0;j+(1<<i)-1<N;++j) {
int l=j,r=j+(1<<i)-1;
sr[i][j]=((long long)qr[r]-(l==0?0:qr[l-1])+MOD)%MOD*ipw[l]%MOD==br[j];
}
}
}
int query(int i,int k) {
return sr[k][i];
}
可以看出我没有使用任何和 std 有关的任何东西。
No valid executable file was produced by the compiler
/nix/store/p58l5qmzifl20qmjs3xfpl01f0mqlza2-binutils-2.40/bin/ld: /tmp/compiler_zauq4ypl/lib.o: in function `main':
src:(.text.startup+0x37): undefined reference to `std::__istream_extract(std::istream&, char*, long)'
collect2: 错误:ld 返回 1
这个是报错信息,C++ 对 iostream 的东西红温了,可是我并没有调用。
唉我真的是服了。希望有人看到给我解释一下为什么。