hdu 4974 数学杂题/证明
来源:互联网 发布:数据库的基本结构 编辑:程序博客网 时间:2024/06/06 12:23
题意模型:n个正数,每次可以做下面俩种操作之一:
1:取一个数减一。
2:取俩个数各减一。
都必需保证每次操作的数>0.
求使得所有数字为0的最少操作次数。
都说是简单题,网上还有不少错误解法(排序后扫一遍,每次取最大的俩个数减到0: 2 2 2 这样是4次,正解3次)。
应该是每次取最大的俩个数,各减1.
若maxi>sum/2,则ans=max,每次操作都用那个max,和其他一个数,最后max没人找了,自己减。
若maxi<sum/2,则ans=(sum+1)/2.每次操作找俩个当前最大的数,各减一,最后结果必然可以俩俩找完或者留一个数为1(不可能是最后只有一个大于1的数,反证法容易正)
#include<iostream>#include<cstdio>using namespace std;int main(){ int T; scanf("%d",&T); for(int ii=1;ii<=T;ii++) { int n; scanf("%d",&n); int sum=0,maxs=-1,cur; for(int i=0;i<n;i++) { scanf("%d",&cur); sum+=cur; if(cur>maxs)maxs=cur; } if(maxs>=(sum+1)/2) printf("Case #%d: %d\n",ii,maxs); else printf("Case #%d: %d\n",ii,(sum+1)/2); } return 0;}
0 0
- hdu 4974 数学杂题/证明
- 面试题里的数学证明题
- 面试题里的数学证明题
- 一道有趣的数学证明题
- hdu 4961 数学杂题
- hdu 4432 数学杂题
- 随机性及数学证明
- HDU2552_三足鼎立【数学证明】
- 数学_证明
- 组合数学证明
- 一个错误的使用数学归纳法的证明题剖析
- 一个让我爱上数学的证明题
- HDU 5710 Digit-Sum 数学杂题
- hdu 5389 Zero Escape DP+数学规律 给出证明 2015 Multi-University Training Contest 8
- 数学中的证明与理解
- ZOJ 2330 数学证明,二分
- 用数学归纳法证明恒等式
- 红黑树复杂度的数学证明
- Patching OpenSSL for the Heartbleed Vulnerability
- c++ primer(第五版)笔记 第六章 函数(2)
- WIN32 API写一个窗口
- 装饰模式
- 你访问的花生壳动态域名不在线
- hdu 4974 数学杂题/证明
- Nginx开启Gzip压缩大幅提高页面加载速度
- 几个集合类的比较
- [POJ 1308]Is It A Tree?(并查集判断图是否为一棵有根树)
- 关于Exosip的效率问题
- 代码规范之旅一 __try __finally __leave
- hdu 3183 Rmp查询
- C++ - CppUnit 使用简介
- uva 10163 Phylogenetic Trees Inherited (状态压缩+贪心)