洛谷 P1199 三国游戏
颓多了,学一会儿
思路
贪心
小涵一定可以做到比计算机聪明,所以小涵不会输,一定有答案。
小涵首先选择的一定是默契值最大的两位武将中的其中一个,而计算机之后一定会选择与这个配对的另一个数(即默契值最大的两位武将中的另一个),所以小涵在每一行都选择不到最大值,只能选择到次大值,所以对每一行的数据进行排序,找出次大值最大的即可。
代码
/*
Name: P1199 三国游戏
Author: Loceaner
*/
#include <cmath>
#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
#define int long long
using namespace std;
const int A = 5e2 + 11;
const int B = 1e6 + 11;
const int mod = 1e9 + 7;
const int inf = 0x3f3f3f3f;
inline int read() {
char c = getchar();
int x = 0, f = 1;
for ( ; !isdigit(c); c = getchar()) if (c == '-') f = -1;
for ( ; isdigit(c); c = getchar()) x = x * 10 + (c ^ 48);
return x * f;
}
int n, a[A][A], ans = 0;
signed main() {
n = read();
for (int i = 1; i < n; i++)
for (int j = i + 1; j <= n; j++) {
a[i][j] = a[j][i] = read();
}
for (int i = 1; i <= n; i++) {
sort(a[i] + 1, a[i] + 1 + n);
ans = max(ans, a[i][n - 1]);
}
cout << 1 << '\n';
cout << ans << '\n';
}
转载不必联系作者,但请声明出处