有谁
  • 板块灌水区
  • 楼主haimingbei
  • 当前回复7
  • 已保存回复7
  • 发布时间2024/8/24 23:21
  • 上次更新2024/8/25 09:59:57
查看原帖
有谁
1235026
haimingbei楼主2024/8/24 23:21

有谁能帮我解释一下为啥要-1和+1,题解里面好像就一笔带过

#include<bits/stdc++.h>
using namespace std;
int n,m,ans,b[10010];
struct node{
	int f,num;
}a[10010][110];
int main(){
	cin>>n>>m;
	for(int i=1;i<=n;i++){
		int sum=0;
		for(int j=1;j<=m;j++){
			cin>>a[i][j].f>>a[i][j].num;
			if(a[i][j].f==1)sum++;
		}
		b[i]=sum;
	}
	int t;
	cin>>t;
	t++;
	for(int i=1;i<=n;i++){
		ans=(ans+a[i][t].num)%20123;
		int v=(a[i][t].num-1)%b[i];//这为什么要-1 
		int s=0;
		for(int j=t;;j++){
			if(j==m+1)j=1;
			if(a[i][j].f==1)s++;
			if(s==v+1){//这为什么要+1 
				t=j;
				break;
			}
		}
	}
	cout<<ans;
	return 0;
}
2024/8/24 23:21
加载中...