首页 > 编程语言 > 详细

C++9018:2401——分数计算

时间:2021-05-30 00:25:47      阅读:17      评论:0      收藏:0      [点我收藏+]

题目来自:http://218.5.5.242:9018/JudgeOnline/problem.php?id=2401

技术分享图片

题目讲解:

哇,这题有点复杂,我们先用公式求出比赛的状况,再一步一步算分数,见代码:

#include <iostream>
#include <cstring>
using namespace std;

int team[101],n,x,s[101],l = 1,lt;
int main(){
    memset(s,0,sizeof(s));
    cin >> n >> x;
    team[1] = x;
    for (int i = 2;i <= n;i++) team[i] = (team[i-1] * 3703 + 1047) % n + 1;
    lt = team[1];
    for (int i = 1;i <= n;i++){
        if (team[i] == lt){
            if (l != 3 && i != 1) l++;        // 连胜 + 1 
        }
        else{
            lt = team[i];                    // 连胜断开,换队伍 
            l = 1;                            // 连胜重计 
        }
        s[lt] += l;                            // 加分 
    }
    int maxn = -1;
    for (int i = 1;i <= n;i++) maxn = max(maxn,s[i]);
    cout << maxn;
    return 0;
}

 

C++9018:2401——分数计算

原文:https://www.cnblogs.com/linyiweiblog/p/14826367.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!