RT 这是我的代码,编译贼慢,在洛谷还会 CE。
#include<iostream>
#define R myio::read_int()
#define int long long
using namespace std;
namespace myio{
int read_int(){
int x=0;char ch,f=1;
while(!isdigit(ch=getchar())) if(ch=='-') f=0;
do x=(x<<1)+(x<<3)+ch-'0';
while(isdigit(ch=getchar()));
return (f==1?x:-x);
}void PRINT(int x){
if(x<=9) putchar(x+'0');
else PRINT(x/10),putchar(x%10+'0');
}void print_int(int x){
if(x<0) putchar('-'),PRINT(-x);
else PRINT(x);
putchar('\n');
}
}
const int P=998244353,N=(int)(5e6)+6;
int faC[N],inV[N],it,sixth[N]={1},fivesixths[N]={1};
int Qpow(int x,int y) {
int res=1;
for(;y;y>>=1) {
if(y&1) res=res*x%P;
x=x*x%P;
} return res;
}
void inV_pretreatment() {
faC[0]=1;
for(int i=1;i<=N-6;i++) faC[i]=faC[i-1]*i%P;
inV[N-6]=Qpow(faC[N-6],P-2);
for(int i=N-7;i>=0;i--) inV[i]=inV[i+1]*(i+1)%P;
}
int C(int x,int y) {
if(!it) inV_pretreatment(),it=1;
return faC[x]*inV[y]%P*inV[x-y]%P;
}
signed main(){
int T=R,n,m,ans=0;
sixth[1]=Qpow(6,P-2);
for(int i=2;i<=N-6;i++)
sixth[i]=sixth[i-1]*sixth[1]%P;
for(int i=1;i<=N-6;i++)
fivesixths[i]=fivesixths[i-1]*5%P*sixth[1]%P;
while(T--) {
n=R,m=R;
ans^=C(n,m)*sixth[m]%P*fivesixths[n-m]%P;
}puts("tou");
myio::print_int(ans);
return 0;
}
接着是我的错误报告
g++: 编译器内部错误:File size limit exceeded signal terminated program as
请提交一份完整的错误报告,
如有可能请附上经预处理后的源文件。
参阅 <https://gcc.gnu.org/bugs/> 以获取指示。