1 条题解
-
0
C++ :
#include<bits/stdc++.h> using namespace std; int a[110];//队号 int b[110];//每队总得分 int main(){ int n,i,x,c; cin>>n>>x; a[0] = x; for(i = 1;i < n;i++){ a[i] = ((a[i - 1] * 3703 + 1047) % n) + 1; } c = 0;//记录连续数字的次数 for(i = 0;i < n;i++){ c++; if(c <= 3){ b[a[i]] = b[a[i]] + c;//得分 }else{ b[a[i]] = b[a[i]] + 3;//得分 } //如果连续数字结束 if(i == n - 1 || a[i] != a[i + 1]){ c = 0; } } int max = 0; for(i = 0;i < 110;i++){ if(b[i] > max){ max = b[i]; } } cout<<max<<endl; return 0; }
Python :
s = input().split() # 球队个数 n = int(s[0]) # 第一场 t = int(s[1]) # 定义队列a a = [0] * (n + 1) a[1] = t # 队伍从1号开始 # 生成之后的数值 for i in range(2, n + 1): a[i] = ((a[i - 1] * 3703 + 1047) % n) + 1 # 定义记录获胜队伍得分数组 score = [0] * (n + 1) # 要看连续几次,第一场 score[a[1]] += 1 # 第2场 if a[2] == a[1]: score[a[2]] += 2 else: score[a[2]] += 1 # 场次 i场次 a[i]第i场获胜的队伍编号 score[a[i]]获胜队伍的得分 for i in range(3, n + 1): if a[i] == a[i - 1] and a[i] == a[i - 2]: score[a[i]] += 3 elif a[i] == a[i - 1]: score[a[i]] += 2 else: score[a[i]] += 1 print(max(score))
- 1
信息
- ID
- 2475
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- (无)
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者