1 条题解
-
0
#include<bits/stdc++.h> using namespace std; /* 使用连续性元素统计的方法统计连续相同的数出现的次数,然后根据题意计分 再使用数组下标计数法,统计出每个队伍的得分 最后统计得分的队伍的得分值 x:存储每场比赛的胜队 cnt:存储每个队伍总得分 */ int x[110],cnt[110]; int main() { int n,c = 0; cin >> n >> x[1];//第一场胜利的队伍 for(int i = 2; i <= n; i++){ x[i] = ((x[i-1]*3703+1047)%n)+1; } //算分:知道每个队伍是第几场连胜 for(int i = 1; i <= n; i++){ c++; //算分 if(c <= 3) cnt[x[i]] += c; else cnt[x[i]] += 3; //判断连胜结束 if(i == n || x[i] != x[i+1]){ c = 0; } } //求cnt数组的最大数 int ma = 0; for(int i = 1; i <= n; i++){ if(cnt[i] > ma) ma = cnt[i]; } cout << ma; return 0; }
- 1
信息
- ID
- 556
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- 2
- 标签
- 递交数
- 27
- 已通过
- 22
- 上传者