1612 - Guess(贪心)
2015-07-28 08:11
375 查看
该题的思路很好想,就是尽量取大一些的成绩为后面的人留出更大的 “空间” 。 细节也很好想,这里不再赘述,值得一提的是 : 该题存在精度问题 , 导致我一开始一直WA。
由于输入和输出只保留两位小数,所以我们不妨将浮点数变成小数,这里要用到round函数,将不需要的小数位四舍五入到整数 。
由于输入和输出只保留两位小数,所以我们不妨将浮点数变成小数,这里要用到round函数,将不需要的小数位四舍五入到整数 。
#include<bits/stdc++.h> using namespace std; const int maxn = 16384 + 10; int n,rankk[maxn],Case = 0; struct node { double a,b,c; }a[maxn]; int main() { while(~scanf("%d",&n)&&n) { for(int i=1;i<=n;i++) { scanf("%lf%lf%lf",&a[i].a,&a[i].b,&a[i].c); a[i].a*=100.0; a[i].b*=100.0; a[i].c*=100.0; } for(int i=1;i<=n;i++) scanf("%d",&rankk[i]); int cur = a[rankk[1]].a + a[rankk[1]].b + a[rankk[1]].c; bool ok = true; for(int i=2;i<=n;i++) { int cnt[10]; cnt[0] = (int)round(a[rankk[i]].a); cnt[1] = (int)round(a[rankk[i]].b); cnt[2] = (int)round(a[rankk[i]].c); cnt[3] = (int)round(a[rankk[i]].a + a[rankk[i]].b); cnt[4] = (int)round(a[rankk[i]].a + a[rankk[i]].c); cnt[5] = (int)round(a[rankk[i]].b + a[rankk[i]].c); cnt[6] = (int)round(a[rankk[i]].a + a[rankk[i]].b + a[rankk[i]].c); cnt[7] = 0; if(rankk[i] > rankk[i-1]) { sort(cnt,cnt+8); bool flage = false; for(int i=7;i>=0;i--) { if(cnt[i] > cur) continue; else { cur = cnt[i]; flage = true; break; } } if(!flage) { ok = false; break; } } else { sort(cnt,cnt+8); bool flage = false; for(int i=7;i>=0;i--) { if(cnt[i] >= cur) continue; else { cur = cnt[i]; flage = true; break; } } if(!flage) { ok = false; break; } } } printf("Case %d: ",++Case); if(ok) printf("%.2lf\n",cur/100.0); else printf("No solution\n"); } return 0; }
相关文章推荐
- UIPickerView与UIDatePicker
- Leetcode #63 Unique Paths II
- Greatest Common Increasing Subsequence-最长公共上升子序列
- 【PB】PowerBuilder中的一些不太常用的方法
- Stringbuffer StringBuilder String
- iOS动画开发之二——UIView动画执行的另一种方式
- iOS动画开发之三——UIView的转场切换
- MYSQL启动后报:ERROR! The server quit without updating PID file错误的问题解决
- IOS UIKIT_EXTERN, __attribute__((visibility ("default"))) 是啥玩意?
- iOS开发——UI进阶篇(七)程序启动原理、打电话、发短信
- 多系统启动出现grub rescue模式,错误“normal.mod not found”解决办法
- hdu 5297 - Y sequence( 2015 Multi-University Training Contest 1)容斥原理
- Android Studio 卡在building界面
- 关于EasyUI-tree的一些操作
- Fuel简介
- 用Fluentd实现收集日志到HDFS(下)
- 第70讲:Scala界面GUI编程实战详解
- iOS UI - 用循环批量创建Label
- HDU - 1711 - Number Sequence,1686 - Oulipo,2087 - 剪花布条,3746 - Cyclic Nacklace (KMP基础)
- 使用intptr_t和uintptr_t