50分TLE求助
查看原帖
50分TLE求助
755447
kato__megumi楼主2022/9/7 20:20

蒟蒻苦思一宿未果,递归函数50分TLE求助

#include<bits/stdc++.h>
using namespace std; 
const int N=1e5+5,M=105;
int l,n,m,a[N][M],ans;
bool b[N][M]; 
void up(int x,int y){//x代表楼层,y代表房间号 
	if(x>n)return;//楼层到顶,则运行结束 
	ans+=a[x][y];//记录密钥 
	ans%=20123;
	int i=y,op=a[x][y];//i存初始房间号,op存需要经过的有楼梯房间的数量 
	while(op!=0){
    	if(b[x][i%m]==1)op--;//如果该房间有楼梯, op-- 
		i++;
	}
	i--;//while循环最后多运行了一次i++,把它减掉 
	up(x+1,i%m);//找到了下次查找的初始房间号,进入下一层楼 
}
int main(){
	//freopen("treasure.in","r",stdin);
	//freopen("treasure.out","w",stdout);
    cin>>n>>m;
    for(int i=1;i<=n;i++)
    	for(int j=0;j<m;j++){
		cin>>b[i][j]>>a[i][j];
	}
    cin>>l;
    up(1,l);
    cout<<ans%20123;
    return 0;
}
2022/9/7 20:20
加载中...