模拟+贪心 URAL 1804 The Machinegunners in a Playoff
题意:A队和B队踢球,已知一场比赛A和B的得分情况,问A最小再得几分就能胜利还有最多能的几分还能给B队一丝翻盘的希望。规则如下:
1. 总分数相等的情况下,在客场得分高的获胜,如果还相等,那么两者都可能获胜
2. 总分数高的获胜
分析:首先假设给出home的分数,A的记为x1, B的记为y1。当x1 >= y1时,最小值x2 == 0,因为y2 == 0,否则先补上x2,使得x1 + x2 == y1 + 0,在考虑客场的因素是否还要+1。至于最大值也是先补全(x1 + x3 == y1 + 30) 然后再考虑客场因素是否-1。away的同理。代码写得冗长,我也没时间精简了。
代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 | #include <cstdio> #include <iostream> #include <algorithm> #include <cstring> #include <vector> using namespace std; const int N = 1e2 + 10; const int INF = 0x3f3f3f3f; string s; int main( void ) { int T; scanf ( "%d" , &T); getchar (); while (T--) { int x1 = 0, y1 = 0, x2 = 0, y2 = 0, x3 = 0; getline (cin, s); int len = s.length (); int c = 0; if (s[26] == 'h' ) { int k = 44; while (k < len && s[k] >= '0' && s[k] <= '9' ) x1 = x1 * 10 + s[k++] - '0' ; bool flag = false ; for ( int i=k; i<len; ++i) { if (s[i] < '0' || s[i] > '9' ) { if (!flag) continue ; else break ; } else { flag = true ; y1 = y1 * 10 + s[i] - '0' ; } } if (x1 > y1) { x2 = 0; } else if (x1 == y1) { x2 = 0; if (x2 < y1) x2++; } else if (x1 < y1) { x2 = y1 - x1; if (x2 < y1) x2++; } x3 = y1 + 30 - x1; if (x3 > y1) x3--; x3 = min (x3, 30); cout << x2 << " " << x3 << endl; } else { int k = 44; while (k < len && s[k] >= '0' && s[k] <= '9' ) x1 = x1 * 10 + s[k++] - '0' ; bool flag = false ; for ( int i=k; i<len; ++i) { if (s[i] < '0' || s[i] > '9' ) { if (!flag) continue ; else break ; } else { flag = true ; y1 = y1 * 10 + s[i] - '0' ; } } if (x1 > y1) { x2 = 0; } else if (x1 == y1) { x2 = 0; } else if (x1 < y1) { x2 = y1 - x1; } x3 = y1 + 30 - x1; x3 = min (x3, 30); cout << x2 << " " << x3 << endl; } } return 0; } |
编译人生,运行世界!
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 深入理解 Mybatis 分库分表执行原理
· 如何打造一个高并发系统?
· .NET Core GC压缩(compact_phase)底层原理浅谈
· 现代计算机视觉入门之:什么是图片特征编码
· .NET 9 new features-C#13新的锁类型和语义
· Spring AI + Ollama 实现 deepseek-r1 的API服务和调用
· 《HelloGitHub》第 106 期
· 数据库服务器 SQL Server 版本升级公告
· 深入理解Mybatis分库分表执行原理
· 使用 Dify + LLM 构建精确任务处理应用