思维B. Running for Gold
Posted 行码棋
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了思维B. Running for Gold相关的知识,希望对你有一定的参考价值。
链接
https://codeforces.com/problemset/problem/1552/B
n
个人每个人进行五场比赛,每场比赛有一个排名,如果一个人有至少三场比赛赢了另一个人,那么这个人对另一个人是胜利的。求n
个人中可能产生的冠军是谁?
首先要明确两个人必须有一个人是胜者,比赛中不会出现两个胜利者的情况
按照比赛规则对所有人进行排序,第一个人就是可能产生的冠军。
然后对第一个人和后面的所有人进行判断,如果无法战胜所有的其他人的话,就不存在胜者
注意:如果胜者存在,排序后的第一个人一定是胜者
#include<bits/stdc++.h>
using namespace std;
using ll = long long;
const int mod = 1e9 + 7;
void solve()
int n;
cin >> n;
vector<array<int, 6>> a(n + 1);
for(int i = 1; i <= n; i++)
for(int j = 0; j < 5; j++)
cin >> a[i][j];
a[i][5] = i;
sort(a.begin() + 1, a.end(), [](auto x, auto y)
int cnt = 0;
for(int i = 0; i < 5; i++)
cnt += (x[i] < y[i]);
return cnt >= 3;
);
bool is = true;
for(int i = 2; i <= n; i++)
int cnt = 0;
for(int j = 0; j < 5; j++)
cnt += (a[1][j] < a[i][j]);
if(cnt < 3) is = false;
cout << (is ? a[1][5] : -1) << "\\n";
int main()
ios::sync_with_stdio(false);
cin.tie(nullptr);
int t;
cin >> t;
// t = 1;
while(t--)
solve();
return 0;
以上是关于思维B. Running for Gold的主要内容,如果未能解决你的问题,请参考以下文章
B. Little Pony and Sort by Shift1200 / 思维
B. Little Pony and Sort by Shift1200 / 思维
B. Little Pony and Sort by Shift1200 / 思维
B. Little Pony and Sort by Shift1200 / 思维
flutter 之Waiting for another flutter command to release the startup lock...和Running Gradle task '