UVa-12325 Zombie's Treasure Chest
1 #include <bits/stdc++.h> 2 #define _for(i,a,b) for(int i = (a);i < (b);i ++) 3 #define pb push_back 4 #define ll long long int 5 6 using namespace std; 7 8 ll N; 9 ll S1,V1,S2,V2; 10 ll rnt = 0; 11 12 int kase = 1; 13 void solve() 14 { 15 ll sz = min(N/S1,N/S2); 16 if(sz<=39396) 17 { 18 int md; 19 sz == N/S1 ? md = 0:md = 1; 20 if(md) 21 { 22 _for(i,0,sz+1) 23 { 24 ll tmrnt = 0; 25 ll tmN = N; 26 tmrnt += i*V2; 27 tmN -= i*S2; 28 tmrnt += tmN/S1*V1; 29 rnt = max(tmrnt,rnt); 30 } 31 } 32 else 33 { 34 _for(i,0,sz+1) 35 { 36 ll tmrnt = 0; 37 ll tmN = N; 38 tmrnt += i*V1; 39 tmN -= i*S1; 40 tmrnt += tmN/S2*V2; 41 rnt = max(tmrnt,rnt); 42 } 43 } 44 } 45 else 46 { 47 if(S2*V1>S1*V2) 48 { 49 _for(i,0,S1) 50 { 51 ll tmrnt = 0; 52 ll tmN = N; 53 tmrnt += i*V2; 54 tmN -= i*S2; 55 tmrnt += tmN/S1*V1; 56 rnt = max(tmrnt,rnt); 57 } 58 } 59 else 60 { 61 _for(i,0,S2) 62 { 63 ll tmrnt = 0; 64 ll tmN = N; 65 tmrnt += i*V1; 66 tmN -= i*S1; 67 tmrnt += tmN/S2*V2; 68 rnt = max(tmrnt,rnt); 69 } 70 } 71 } 72 printf("Case #%d: %lld\n",kase++,rnt); 73 } 74 75 int main() 76 { 77 int T; 78 scanf("%d",&T); 79 while(T--) 80 { 81 rnt = 0; 82 scanf("%lld%lld%lld%lld%lld",&N,&S1,&V1,&S2,&V2); 83 solve(); 84 } 85 return 0; 86 }
要用long long啊!不然32位边界会溢出的!
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 深入理解 Mybatis 分库分表执行原理
· 如何打造一个高并发系统?
· .NET Core GC压缩(compact_phase)底层原理浅谈
· 现代计算机视觉入门之:什么是图片特征编码
· .NET 9 new features-C#13新的锁类型和语义
· Sdcb Chats 技术博客:数据库 ID 选型的曲折之路 - 从 Guid 到自增 ID,再到
· 语音处理 开源项目 EchoSharp
· 《HelloGitHub》第 106 期
· Spring AI + Ollama 实现 deepseek-r1 的API服务和调用
· 使用 Dify + LLM 构建精确任务处理应用