NC19916 [CQOI2010]扑克牌】的更多相关文章

NC19916 [CQOI2010]扑克牌 题目 题目描述 你有n种牌,第i种牌的数目为 \(c_i\) .另外有一种特殊的牌:joker,它的数目是m.你可以用每种牌各一张来组成一套牌,也可以用一张joker和除了某一种牌以外的其他牌各一张组成1套牌.比如,当n=3时,一共有4种合法的套牌:{1,2,3}, {J,2,3}, {1,J,3}, {1,2,J}. 给出n, m和 \(c_i\) ,你的任务是组成尽量多的套牌.每张牌最多只能用在一副套牌里(可以有牌不使用). 输入描述 第一行包含两…
二分答案.. 一开始二分的初始右边界太小了然后WA,最后一气之下把它改成了INF... ------------------------------------------------------------------------ #include<cstdio> #include<cstring> #include<algorithm> #include<iostream>   #define rep( i , n ) for( int i = 0 ;…
[BZOJ1816][CQOI2010]扑克牌(二分,贪心) 题面 BZOJ 题解 看了一眼这题,怎么这么眼熟?woc,原来\(xzy\)的题目是搬的这道啊... 行,反正我考的时候也切了,这数据范围还小得可怜... 我的做法是这样的:我们把用\(Joker\)凑出来的牌看做是给某一种牌加上一张,那么发现操作只剩下给所有牌都减去一张. 那么我们二分答案,用\(Joker\)补上没有到二分值的部分就行了.但是注意一点,每次只能消去一张\(Joker\),所以还需要判除某一种外,其他所有补的\(Jo…
BZOJ1816 Cqoi2010 扑克牌 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,即…
[BZOJ1816][Cqoi2010]扑克牌 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…
1816: [Cqoi2010]扑克牌 题目:传送门 题解: 被一道毒瘤题搞残了...弃了坑来刷刷水题 一开始还想复杂了...结果发现二分水过: 二分答案...然后check一下,joker肯定尽量用mid次,那么哪种牌不够就补(因为每次只能补一种,所以如果次数用完就return false) 代码: #include<cstdio> #include<cstring> #include<cstdlib> #include<cmath> #include&l…
题目:http://www.lydsy.com/JudgeOnline/problem.php?id=1816 分析: 我先以为是道水题,但是要注意的是每套牌中Joker只能用1张的,所以就出现了可能目前每种牌的剩余牌数都够,但不一定不用Joker,然后就短路了…… 看了hzwer的blog顿时茅塞顿开,原来是二分…… 二分答案x,然后判定 判定的方法:注意每套牌顶多只有一个Joker,所以对于答案x,能用的Joker的最大数量是T=Min(x,m),然后枚举每种牌,将每种牌相对于答案x差的个数…
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…
#include<cstdio> #include<iostream> using namespace std; ],ans; bool pan(int x) { int a1=min(x,m); ;i<=n;i++) if(a[i]<x) { a1-=x-a[i]; ) ; } ; } int main() { scanf("%d%d",&n,&m); ;i<=n;i++) scanf("%d",&…
题目链接:BZOJ - 1816 题目分析 答案具有可以二分的性质,所以可以二分答案. 验证一个答案 x 是否可行,就累加一下各种牌相对于 x 还缺少的量,如果总和超过了 x 或 m ,就不可行. 因为,当使用的joker小于等于 x 时,才可以通过合适地安排顺序使得每组牌中至多有一张 joker . 代码 #include <iostream> #include <cstdlib> #include <cstring> #include <cstdio>…
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…
题目传送门:https://www.lydsy.com/JudgeOnline/problem.php?id=1816 题意:有$N$堆牌,第$i$堆牌有$c_i$张牌,还有$M$张$joker$,每一次可以从$N$堆牌中任选一张组成一副牌,或者在任意$N - 1$堆中选择$1$张牌加上一张$joker$组成一副牌,问最多能组成多少副牌.$N \leq 50 , m , c_i \leq 5 \times 10^8$ 清流题qwq 每一次的消除一定是在牌最少的一堆使用$joker$,$joker…
题面 \(solution:\) 这道题难就难在你能否读懂题目的意思,我们将它翻译一下: 现在我有n根竹子(每根竹子有\(c_i\)节,每节竹子高度为1),我可以通过消耗一点法力值使某一根竹子的某两节之间再长出特殊的一节,现在我有m点法力值,我需要在保证同一高度只能有不超过1节特殊的竹节的情况下,使最矮的那根竹子高度尽可能的高 怎么样,会了吧!(最矮的那根竹子高度尽可能的高,这还看不出二分答案白学了) \(code:\) #include<iostream> #include<cstdi…
传送门 简单二分答案. 我们二分最终有k个牌堆. 这样joker被选择的张数≤min(k,m)\le min(k,m)≤min(k,m) 并且joker需要被选择的张数应该是∑i−1nmax(0,k−c[i])\sum _{i-1} ^n max(0,k-c[i])∑i−1n​max(0,k−c[i]) 代码: #include<bits/stdc++.h> using namespace std; int n,m,ans,c[55],l,r; inline bool check(int x,…
Time Limit: 10 Sec  Memory Limit: 64 MBSubmit: 2737  Solved: 1082[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}. 给…
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个整…
写在前面的.. 要去WC了好开心的呢.. 但是之前荒废了好多时间呢.. 好吧从明天开始加紧训练,目标是:WC前bzoj300t..(现在是260呢..) 开始吧 来看看完成情况: 40/40 [2017.1.12] 比较荒废的一天.. 满脑子就是查成绩.. 考得好差没心情.. 真的是太影响了整天才做了2道题..(有道题想错了搞了一个下午加半个晚上还没搞出来,真的sb) 3195: [Jxoi2012]奇怪的道路 定义$f_{i,j,state}$表示在处理第$i$个位置,已经连了$j$条边,后面…
在NOI一周前重开一个坑 最后更新时间:7.08 07:38 7.06 下午做的几道CQOI题: BZOJ1257: [CQOI2007]余数之和sum:把k mod i写成k-k/i*i然后分段求后面的部分就好了 BZOJ1258: [CQOI2007]三角形tri:在草稿纸上按照位置和边找一下规律就好了 BZOJ1260: [CQOI2007]涂色paint:简单的区间DP BZOJ1303: [CQOI2009]中位数图:小于中位数的改为-1大于的改为1,算一算前缀和然后哈希一下乘一乘就好…
每周日更新 2016.05.29 UVa中国麻将(Chinese Mahjong,Uva 11210) UVa新汉诺塔问题(A Different Task,Uva 10795) NOIP2012同余方程 NOIP2007统计数字 NOIP2013火柴排队 NOIP2013花匠 2016.06.05 Uva 组装电脑 12124 - Assemble Uva 派 (Pie,NWERC 2006,LA 3635) 2016.06.19 Uva 网络(Network,Seoul 2007,LA 39…
Search GO 说明:输入题号直接进入相应题目,如需搜索含数字的题目,请在关键词前加单引号 Problem ID Title Source AC Submit Y 1000 A+B Problem 10983 18765 Y 1036 [ZJOI2008]树的统计Count 5293 13132 Y 1588 [HNOI2002]营业额统计 5056 13607 1001 [BeiJing2006]狼抓兔子 4526 18386 Y 2002 [Hnoi2010]Bounce 弹飞绵羊 43…
        题目链接详见SCNU 2015新生网络赛 1007. ZLM的扑克牌 .         其实我在想这题的时候,还想过要不要设置求最小的排列,并且对于回文数字的话,可以把扑克牌折起来(从而这个数字会变小):甚至要不要设置扑克牌旋转.翻转之后,读出的数字要改变.但这样的话好像我也不会做辣!= =|||于是这道题目最后就变成了一个简单贪心题.题目大意大概就是这样的:给出一个包含$n$个数字的多重集,要求使用集合中的元素拼凑出一个最大的数字,问最大所能拼凑出的数字是多少?       …
用LinkdeList实现52张扑克牌(不含大小王)的洗牌功能.提示:花色 ,和数字分别用数组存储. import java.util.LinkedList; import java.util.Random; class Poker{ String color;//花色 String num;//数字 public Poker(String color,String num){ this.color = color; this.num = num; } @Override public Stri…
前言 上周写<我的编程开始(C)>这篇文章的时候,说过有时间的话会写些算法编程的题目,可能是这两天周末过的太舒适了,忘记写了.下班了,还没回去,闲来无事就写下吧. 因为写C++的编程题和其他语言实现功能不一样,要动脑子,写笔记,思考整个的流程.就比如实现字符串截取,C#直接一个SubString搞定,C可能要用到指针来实现.当时参赛培训的时候不知道死了多少的脑细胞,现在想想都后怕,但是前话都说了,得必须写了.今天写的这个扑克牌发牌的题目,是我在参赛培训的时候练习的,记得当时写了好长时间才搞出来…
主要内容:这里使用collection集合,模拟香港电影中大佬们玩的扑克牌游戏. 1.游戏规则:两个玩家每人手中发两张牌,进行比较.比较每个玩家手中牌最大的点数,大小由A-2,点数大者获胜.如果点数相同,则比较花色,大小由黑(4).红(3).梅(2).方(1),花色大者获胜. 2.实现步骤: 创建一副扑克牌A-2,四种花色黑(4).红(3).梅(2).方(1)共52张牌: 创建两个玩家包含玩家ID和姓名.所持牌Card信息: 洗牌并向两位玩家各发两张牌: 比较玩家手中牌大小,得出获胜者: 3.程…
这段代码的主要实现功能扑克牌的洗牌和发牌功能,一副牌,红桃,黑桃,梅花,方片,A~K,不含大小王. 构造一个class. 首先是声明花色: private String[] sign={"方片","红桃","黑桃","梅花"};//扑克的四种花色 然后是洗牌功能,意味花色与A~K结合构造成顺序的52张扑克牌,构造一个ArrayList对象存储扑克牌的值. private static ArrayList<String&g…
玩过电脑自带纸牌游戏的同志们应该都知道,游戏过关后扑克牌会依次从上空掉落,落下后又弹起,直至"滚出"屏幕. 效果如图:    这个案例的具体效果就是:点击开始运动,纸牌会从右上角掉落下来,之后弹起,运动的速度会逐渐减慢,直到越出屏幕后,全部纸牌消失,在右上角会重新出现一张纸牌,继续动作,一再往复. 具体代码如下: <!DOCTYPE html> <html> <head lang="en"> <meta charset=&q…
下面用枚举类型来实现一副扑克牌的类: //定义一个玩牌的类 function Card(suit,rank){ function inherit(p){ if(p==null) throw TypeError(); if(Object.create) return Object.create(p); var t = typeof p; if(t!=="object" && t!=="function") throw TypeError(); func…
//实现枚举类型,扑克牌应用 function creatEnum(p){     //构造函数     var Enumeration = function(){throw 'can not Instantiate Enumerations';};     //重写原型并将原型赋值给变量proto     var proto = Enumeration.prototype = {         constructor:Enumeration,         toString:functio…
题目描述: 扑克牌游戏大家应该都比较熟悉了,一副牌由54张组成,含3~A.2各4张,小王1张,大王1张.牌面从小到大用如下字符和字符串表示(其中,小写joker表示小王,大写JOKER表示大王):3 4 5 6 7 8 9 10 J Q K A 2 joker JOKER输入两手牌,两手牌之间用"-"连接,每手牌的每张牌以空格分隔,"-"两边没有空格,如:4 4 4 4-joker JOKER.请比较两手牌大小,输出较大的牌,如果不存在比较关系则输出ERROR.基本…
背景 Admin生日那天,Rainbow来找Admin玩扑克牌……玩着玩着Rainbow觉得太没意思了,于是决定给Admin一个考验~~~ 描述 Rainbow把一副扑克牌(54张)随机洗开,倒扣着放成一摞.然后Admin从上往下依次翻开每张牌,每翻开一张黑桃.红桃.梅花或者方块,就把它放到对应花色的堆里去.Rainbow想问问Admin,得到A张黑桃.B张红桃.C张梅花.D张方块需要翻开的牌的张数的期望值E是多少?特殊地,如果翻开的牌是大王或者小王,Admin将会把它作为某种花色的牌放入对应堆…