这个题卡时间卡的好变态哇,改了很多次还总是超时,后来找到了罪魁祸首:用来分硬币的函数separate,原本是这样的形式
void separate(int i,int j){
if(ci[i][j].ciuse==-1)return;
if(j-1>=1&&ci[i][j-1].ciuse!=-1){
//分给下边的点
for(int k=1;k<=n;k++){
ci[i][j].coint[k]-=ci[i][j].coins[k]/1000;
ci[i][j-1].coint[k]+=ci[i][j].coins[k]/1000;
}
}
if(j+1<=10&&ci[i][j+1].ciuse!=-1){
//分给上边的点
for(int k=1;k<=n;k++){
ci[i][j].coint[k]-=ci[i][j].coins[k]/1000;
ci[i][j+1].coint[k]+=ci[i][j].coins[k]/1000;
}
}
if(i+1<=10&&ci[i+1][j].ciuse!=-1){
//分给右边的点
for(int k=1;k<=n;k++){
ci[i][j].coint[k]-=ci[i][j].coins[k]/1000;
ci[i+1][j].coint[k]+=ci[i][j].coins[k]/1000;
}
}
if(i-1>=1&&ci[i-