小弱智不优化50分(其余TLE),优化0分(全WA),真的栓Q了求大佬指点
查看原帖
小弱智不优化50分(其余TLE),优化0分(全WA),真的栓Q了求大佬指点
992529
upto_300楼主2023/6/26 20:48
#include<bits/stdc++.h>
using namespace std;
const int mod=20123;
int n,m,at,ans,sum[10000],x[10000][100];//at:当前房间编号
bool has[10000][100];
vector<int>way;/*
sum[i]:第i层有楼梯的房间数
x[i][j]:第i层第j个房间里的数字(从这里开始,还需碰见~的房间数)
has[i][j]:第i层第j个房间是否有楼梯
*/int main(){
    cin>>n>>m;
    for(int i=0;i<n;i++){
        for(int j=0;j<m;j++){
            cin>>has[i][j]>>x[i][j];
            if(has[i][j])sum[i]++;
        }
    }cin>>at;
    for(int i=0;i<n;i++){
        ans+=x[i][at];//每到新的楼层,答案都要+此房间里的数字
        int j=at;//at会变,所以要先存储其值%d\n",i+1,j+1,x[i][j],ans);
        x[i][j]%=sum[i];//为了快速模拟,也要对x[i][j]取模
        if(has[i][j]){
            x[i][j]--;
        }while(x[i][j]>0){
            at++;
            if(at==m)at=0;
            if(has[i][at]){
                x[i][j]--;
            }
        }
    }cout<<ans%mod;
}
2023/6/26 20:48
加载中...