题解:P1076 [NOIP2012 普及组] 寻宝
china_history · · 题解
题意
告诉你每层的房间数,依靠指示牌的数字找到上一层的房间即可
思路
只要一层一层的模拟每个房间即可,我们从
代码
#include <bits/stdc++.h>
using namespace std;
const int size=20123;
long long al = 0;
int k;
int s[10001][101], a[10001][101];
int n, m;
int main() {
cin >> n >> m;
int sum = 0;
for (int i = 1; i <= n; i++) {
for (int j = 0; j < m; j++) {
scanf("%d%d", &s[i][j], &a[i][j]);
if (s[i][j] == 1) {
sum++;
}
}
}
cin >> k;
for (int i = 1; i <= n; i++) {
int x = a[i][k];
al = (al + x) % size;
int t = 0;
for (int j = 0; j < m; j++) {
t += s[i][j];
}
x %= t;
if (x == 0) {
x = t;
}
if (s[i][k]) {
x--;
}
while (x) {
k = (k + 1) % m;
if (s[i][k]) {
x--;
}
}
}
cout << al % size;
return 0;
}
如有任何问题请在评论区@我,管理大大求过!