【题解】P1076 寻宝

题面

题目传送门

前言

直接模拟,题干怎么描述,我们就怎么做!

正文

实现过程可以参考代码!

警示后人:

  1. 每层楼的房间可以抽象成一个环,而并非链
  2. 鉴于 $ [0,M-1] $ 的下标范围有些令人作呕,考虑下标 $ +1 $ 捏!
  3. 取模!取模!取模!每一步都要取模!

代码

#include<iostream>
using namespace std;
const int maxn=1e4+10,maxm=100+10,mod=20123;
int n,m,a[maxn][maxm],num[maxn][maxm],key,loc;
int main(){
	cin>>n>>m;
	for(int i=1;i<=n;i++){
		for(int j=1;j<=m;j++){
			cin>>a[i][j]>>num[i][j];
			if(a[i][j]){
				a[i][0]++;
			} 
		}
	}
	cin>>loc;
	loc++;
	for(int i=1;i<=n;i++){
		key+=num[i][loc];
		key%=mod;
		int x=(num[i][loc])%a[i][0]+a[i][0];
		loc--;
		while(x>0){
			loc++;
			if(loc>m){
				loc=1;
			} 
			if(a[i][loc]){
				x--;
			} 
		}
	}
	cout<<key%mod<<endl;
	return 0;
}

后记

猜一下这次云落是不是贴的 AC 代码捏?

posted @ 2024-11-18 16:47  sunxuhetai  阅读(9)  评论(0)    收藏  举报