1 条题解
-
0
自动搬运
来自洛谷,原作者为

清小秋ovo
AFO搬运于
2025-08-24 22:35:53,当前版本为作者最后更新于2022-02-06 13:02:08,作者可能在搬运后再次修改,您可在原文处查看最新版自动搬运只会搬运当前题目点赞数最高的题解,您可前往洛谷题解查看更多
以下是正文
USACO 铜组 T2 题解
看到数据立马暴力。
因为筛子只有 面,且每面数字最大为 。
哪怕是 的复杂度也无伤大雅。
题意
当 筛 赢 筛的可能性更大时,则需满足: 筛赢 筛可能性更大,且 筛赢 筛可能性更大。
反之,当 赢 时,则需满足 赢 , 赢 。
代码
分钟乱打的。可能码风有点丑。直接四层循环模拟 + 判断。
结构比较清晰,可以对上刚刚解释的思路,所以就不放注释了。
#include<bits/stdc++.h> using namespace std; int T, a[4],b[4],c[4]; inline int read() { int f = 1, x = 0; char c = getchar(); while (c < '0' || c > '9') { if (c == '-') f = -1; c = getchar();} while (c >= '0' && c <= '9') { x = x * 10 + c - '0'; c = getchar();} return f * x; } bool x_win_y(int x[4], int y[4]){ int x_cnt =0, y_cnt = 0; for(int i=0;i<4;i++){ for(int j=0;j<4;j++){ if(x[i]>y[j])x_cnt++; else if(x[i]<y[j])y_cnt++; } } return x_cnt > y_cnt; } bool check(){ if(x_win_y(a,b) && x_win_y(b,c) && x_win_y(c,a))return true; if(x_win_y(b,a) && x_win_y(c,b) && x_win_y(a,c))return true; return false; } void solve(){ for(c[0]=1;c[0]<=10;c[0]++){ for(c[1]=c[0];c[1]<=10;c[1]++){ for(c[2]=c[1];c[2]<=10;c[2]++){ for(c[3]=c[2];c[3]<=10;c[3]++){ if(check()){ puts("yes"); return; } } } } } puts("no"); } int main() { T = read(); while(T--){ for(int i=0;i<4;i++) a[i] = read(); for(int i=0;i<4;i++) b[i] = read(); solve(); } return 0; }
- 1
信息
- ID
- 7458
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 2
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者