BZOJ 1816: [Cqoi2010]扑克牌( 二分答案 )
2015-05-28 22:04
369 查看
二分答案..
一开始二分的初始右边界太小了然后WA,最后一气之下把它改成了INF...
------------------------------------------------------------------------
#include<cstdio>#include<cstring>#include<algorithm>#include<iostream> #define rep( i , n ) for( int i = 0 ; i < n ; ++i )#define clr( x , c ) memset( x , c , sizeof( x ) ) using namespace std; const int maxn = 50 + 5; int c[ maxn ];int n , m; bool ok( int x ) { int cnt = min( m , x ); rep( i , n ) if( c[ i ] < x ) { cnt -= x - c[ i ]; if( cnt < 0 ) return false; } return true;} int main() { cin >> n >> m; rep( i , n ) { scanf( "%d" , &c[ i ] ); } int ans = 0; int l = 0 , r = 0x7fffffff; while( l <= r ) { int m = ( l + r ) >> 1; if( ok( m ) ) ans = m , l = m + 1; else r = m - 1; } cout << ans << "\n"; return 0;}
------------------------------------------------------------------------
1816: [Cqoi2010]扑克牌
Time Limit: 10 Sec Memory Limit: 64 MBSubmit: 1459 Solved: 560
[Submit][Status][Discuss]
Description
你有n种牌,第i种牌的数目为ci。另外有一种特殊的牌:joker,它的数目是m。你可以用每种牌各一张来组成一套牌,也可以用一张joker和除了某一种牌以外的其他牌各一张组成1套牌。比如,当n=3时,一共有4种合法的套牌:{1,2,3}, {J,2,3}, {1,J,3}, {1,2,J}。 给出n, m和ci,你的任务是组成尽量多的套牌。每张牌最多只能用在一副套牌里(可以有牌不使用)。Input
第一行包含两个整数n, m,即牌的种数和joker的个数。第二行包含n个整数ci,即每种牌的张数。Output
输出仅一个整数,即最多组成的套牌数目。Sample Input
3 41 2 3
Sample Output
3样例解释
输入数据表明:一共有1个1,2个2,3个3,4个joker。最多可以组成三副套牌:{1,J,3}, {J,2,3}, {J,2,3},joker还剩一个,其余牌全部用完。
数据范围
50%的数据满足:2 < = n < = 5, 0 < = m < = 10^ 6, 0< = ci < = 200
100%的数据满足:2 < = n < = 50, 0 < = m, ci < = 500,000,000。
HINT
Source
相关文章推荐
- Junit安装及使用
- PHP Official Account Services Unavailable, Try Again Later
- Song -----See You Again
- HTTP错误代码
- 【从0到1学Web前端】CSS定位问题二(float和display的使用)
- 【从0到1学Web前端】CSS定位问题二(float和display的使用)
- RAP开发入门-运行过程简析(三)
- python基础教程学习笔记---(4)字典
- (转)多进程 & 多线程的区别与适用场景
- 【从0到1学Web前端】CSS定位问题二(float和display的使用) 分类: HTML+CSS 2015-05-28 22:03 812人阅读 评论(1) 收藏
- 【VBA】 通过VBA脚本将EXCEL的数据导入 ORACLE
- 一些项目——抱歉
- 创建基线或发行基线的主要步骤
- 第二次冲刺(4)
- 【转载】failed to create virtual machine
- 携程瘫痪非偶然 国内互联网企业漠视数据管理
- leetcode | Letter Combinations of a Phone Number
- C#程序开发中经常遇到的10条实用的代码
- Merge Sorted Array
- Java Servlet学习笔记(五)Servlet服务器Http响应