贪心 HDOJ 5090 Game with Pearls】的更多相关文章

题目传送门 /* 题意:给n, k,然后允许给某一个数加上k的正整数倍,当然可以不加, 问你是否可以把这n个数变成1,2,3,...,n, 可以就输出Jerry, 否则输出Tom. 贪心:保存可能变成的值的方案数,当一个符合,其他所有可能方案减1 最大匹配 详细解释:http://blog.csdn.net/u012596172/article/details/40784773?utm_source=tuicool */ #include <cstdio> #include <algor…
简单的二分图匹配: 每个位置可以边到这些数字甚至可以边 Game with Pearls Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Total Submission(s): 122    Accepted Submission(s): 85 Problem Description Tom and Jerry are playing a game with tubes an…
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5090 题目大意:给你n个数,问你给若干个数增加c*k(c>=0)能否组成1,2,3,4,5,...,n? 今天下午作比赛的时候,我先用了个dfs,看这个a[i]匹配的是1到n的哪个数. 后来TLE到死... 仔细想想,首先,如果这个数是小的数的话,那么它可以匹配很多种,因此如果先将它匹配掉了会浪费,因为它“能力”大. 因此就可以排个序,从大到小进行匹配. 我也不知道怎么用数学语言去证明... #in…
一道贪心的题,因为最小的不能由别的转化,所以每次贪心找最小的,其余的转化成大的. 从小到大,最小的如果不存在那么就break,否则减去一个,剩下的加k继续判断. #include<cstdio> #include<cstring> ; int cnt[maxn]; int main() { int T; scanf("%d",&T); int n,k; while(T--){ memset(cnt,,sizeof(cnt)); scanf("%…
题目传送门 /* 这题交给队友做,做了一个多小时,全排列,RE数组越界,赛后发现读题读错了,囧! 贪心:先确定最高位的数字,然后用贪心的方法,越高位数字越大 注意:1. Both A and B will have same number of digits 两个数字位数相同 2. which is no larger than 10^6 不是大小,而是长度不超过1e6 */ #include <cstdio> #include <iostream> #include <al…
题目传送门 /* 题意:求从(1, 1)走到(n, m)的二进制路径值最小 BFS+贪心:按照标程的作法,首先BFS搜索所有相邻0的位置,直到1出现.接下去从最靠近终点的1开始, 每一次走一步,不走回头路,只往下或往右走.因为满足i = j + (i - j)的坐标(j, i - j)可能不止一个,选择最小的访问 */ #include <cstdio> #include <algorithm> #include <cstring> #include <cmath…
题目传送门 /* 题意:给一张图和一些有向边,问如何给边赋值使得d1 < d2 < .. < dx > ,,,< ddn 贪心:左边从2开始,右边从n开始,每次选择未标记且相连的点加入树,加入时间就是d[i],若不在树上的输出n,注意重边和重点 */ /************************************************ * Author :Running_Time * Created Time :2015-8-13 12:09:17 * File…
好的,数据加强了,wa了 题目传送门 /* 题意:1到n分成m组,每组和相等 贪心:先判断明显不符合的情况,否则肯定有解(可能数据弱?).贪心的思路是按照当前的最大值来取 如果最大值大于所需要的数字,那么去找没有vis的数字 */ /************************************************ * Author :Running_Time * Created Time :2015-8-6 13:24:55 * File Name :C.cpp ********…
题目传送门 /* 题意:不懂... 线段树+树状数组+贪心:贪心从第一位开始枚举,一个数可以是循环节的末尾或者在循环节中,循环节(循环节内部是后面的换到前面,最前面的换到最后面).线段树维护最大值,树状数组维护区间是否是循环节,查找前面最左边不是循环节的可用二分.我还是云里雾里的,看懂了网上的解题报告但还是不是完全明白题意:( 详细解释:http://blog.csdn.net/qq_24451605/article/details/47173933 */ /******************…
题目传送门 /* 题意:有n个点,用相同的线段去覆盖,当点在线段的端点才行,还有线段之间不相交 枚举+贪心:有坑点是两个点在同时一条线段的两个端点上,枚举两点之间的距离或者距离一半,尽量往左边放,否则往右边放, 判断一下,取最大值.这题二分的内容少 */ #include <cstdio> #include <algorithm> #include <cstring> #include <cmath> using namespace std; ; const…
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5090 Problem Description Tom and Jerry are playing a game with tubes and pearls. The rule of the game is: 1) Tom and Jerry come up together with a number K.  2) Tom provides N tubes. Within each tube, th…
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5090 题意:n个数,k,给n个数加上k的正倍数或者不加,问最后能不能凑成1 到 n的序列 题目分类:暴力 题目分析:因为每个数只能变大或者不变,并不能变小,所以要从小数开始往大凑.先排序,然后凑到1了之后然后再去凑2,这样一直往大凑 题目代码: #include<bits/stdc++.h> using namespace std; ]; int main() { int t,n,k; scanf…
Game with Pearls Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Total Submission(s): 1914    Accepted Submission(s): 671 Problem Description Tom and Jerry are playing a game with tubes and pearls. The rule of the…
Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Problem Description The famous ACM (Advanced Computer Maker) Company has rented a floor of a building whose shape is in the following figure. The floor has 200 rooms…
题意: 给你N个数,a1,,,,an.代表第i个管子里有ai个珍珠. 规定只能往每根管里增加k的倍数个珍珠. 如果存在一套操作,操作完毕后可以得到1~N的一个排列,则Jerry赢,否则Tom赢. 问谁赢. 思路: 将a1...an从小到大排序,可知道每根管里的数只能增不能减.将最后的1...N中的每个数一定是由小于等于它的数加上若干个K得到来的. 额..直接看代码吧 代码: int a[1005]; int m,n,k; int main(){ //freopen("test.in",…
HDOJ 5090 水题.从小到大排序,能够填充达到符合条件的.先填充好.填充之后进行调整. 传送门:pid=5090">点击打开链接 #include <cstdio> #include <cmath> #include <queue> #include <map> #include <vector> #include <cstring> #include <algorithm> using namesp…
FatMouse' Trade Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 56784    Accepted Submission(s): 19009 Problem Description FatMouse prepared M pounds of cat food, ready to trade with the cats g…
Game with Pearls Problem DescriptionTom and Jerry are playing a game with tubes and pearls. The rule of the game is:1) Tom and Jerry come up together with a number K.2) Tom provides N tubes. Within each tube, there are several pearls. The number of p…
题目链接:HDOJ - 5208 题目分析 使用按位贪心的思想,即从高位向低位枚举,尽量使这一位的答案为 1 . 我们使用 DFS ,每次就是对于  [l1, r1] [l2, r2] x  进行处理,其中,x 是当前处理的最高位的权值,即 2^i . 如果 A 和 B 两人的区间的最高位都确定了,那就记录这一位的答案,直接处理下一位. 如果 A 可以取 0/1 ,而 B 已经确定了,那么 A 就一定要取与 B 相反的那个. 如果 A 和 B 都能取 0/1 ,那么我们就要分支进行 DFS ,一…
http://acm.hdu.edu.cn/showproblem.php?pid=5090 给一段长度为n数列,问能否给任意个数加上k的倍数,使得加完之后恰好只有1~n 贪心,先排序,依次加出1~n,每次看能否从给定数列中找到一个未被标记的数使得其能加到当前的i,能则标记,最后能完成即输出Jerry #include <cstdio> #include <cstdlib> #include <cmath> #include <cstring> #inclu…
HDOJ(HDU).1864 最大报销额 题意分析 题目有点问题,原题中说的 单项物品的价值不得超过600元 应该是单类物品的价值不能超过600元. 一开始以为是01背包,后来按贪心写过了. 一张一张发票处理,读入一整张发票的数据.然后检查一下里面是否有不能报销的类别(即除ABC)以外的其他类.然后看一下单类的价钱是否超过600.如都满足题目所说能够报销的要求,则把它存到b数组里面,接着对b数组按照金额降序排序,结合给的经费,先报销大的,再报销小的,遍历一遍即可. 代码总览 #include <…
Wooden Sticks 点我挑战题目 题意分析 给出T组数据,每组数据有n对数,分别代表每个木棍的长度l和重量w.第一个木棍加工需要1min的准备准备时间,对于刚刚经加工过的木棍,如果接下来的木棍l和w均小于等于上一根木棍的l和w那么就不许要准备时间,否则的话还需要1min的准备时间.求解对于每组数据,所需要的最小的准备时间是多少. 贪心策略. 对木棍进行降序排序,首要关键字是l,次要关键字是w(可以颠倒).然后选取最顶端的木棍,向下遍历,对于当前木棍,若l和w均小于等于顶层木棍,那么标记它…
最少拦截系统 点我挑战题目 题意分析 一开始理解错了这道题.这么多个导弹排好序不只需要1个拦截系统吗.后来发现自己真傻.那出这个题还有啥意思,反正都需要一个.(:′⌒`) 给出n个导弹,这n个导弹的顺序是不能改变的.并且对于每个拦截系统来说,他所能打到的高度只能越来越小不能增大(或保持不变).那么对于每个导弹来说,要先判断当前所有的导弹系统中有没有能够拦截的,如果没有的话,直接新增一个拦截系统:如果有的话,那么看一下能打到的拦截系统中高度最小的那个,把它的拦截数据更新为当前导弹的高度(这是这道题…
悼念512汶川大地震遇难同胞--老人是真饿了 点我挑战题目 题目分析 每组数据给出所拥有的钱数,和大米的种类.每种大米给出单价(每单位重量)和大米的重量.求能买到的大米最大重量是多少? 采用贪心算法. 既然是重量最大,那么就按照每种大米的单价排序,有限购买单价小的,买完小的买大的即可. 代码总览 /* Title:HDOJ.2187 Author:pengwill Date:2016-11-25 */ #include <iostream> #include <algorithm>…
Milk 点我挑战题目 题意分析 每组测试数据给出一系列牛奶商品,分别是牛奶的品牌,价格,以及体积.在读取数据的时候,体积在200以下的牛奶直接忽略掉.并且每天要喝200ML的牛奶.但是无论牛奶体积有多么大,牛奶最多喝5天,也就是说每盒牛奶最多喝1000ml,当牛奶的体积不为200整数倍的时候,多余的直接扔掉不喝.现在编写程序挑选出最便宜的牛奶. 贪心策略. 最便宜的就是价钱最低,当然要计算平均某量所花的钱.这个量是平均每体积还是平均每天呢?当然是平均每天.因为如果体积大于1000ml多余的部分…
Saving HDU 点我挑战题目 题意分析 给出来背包容量v和物品数量n,接下来n行分别给出每个商品单位体积的价值和物品总共的体积(注意是单位体积,不是每个物品).求出最多能装多少价值的物品. 典型的贪心策略. 按单价排序,优先装单价高的,之后装单价低的.装满为止即可.最后算出总价值输出. 代码总览 /* Title:HDOJ.2111 Author:pengwill Date: 2016-11-22 */ #include <iostream> #include <stdio.h&g…
Doing Homework again 点我挑战题目 题意分析 给出n组数据,每组数据中有每份作业的deadline和score,如果不能按期完成,则要扣相应score,求每组数据最少扣除的score是多少. 典型的贪心策略. 既然是要求最少的扣分,那么肯定是要先完成分数最多的.所以可以推出按照分数排序.那么最佳策略应该是在deadline当天完成作业,如果那天已经占用,只能在deadline-1天完成,如果那天也被占用了,就只能在deadline-2天完成--直到推到第1天,如果还被占用的话…
FatMouse' Trade 点我挑战题目 题意分析 每组数据,给出有的猫粮m与房间数n,接着有n行,分别是这个房间存放的食物和所需要的猫粮.求这组数据能保证的最大的食物是多少? (可以不完全保证这个房间的食物,及食物和猫粮可以同时乘a%) 经典的贪心策略. 先保证性价比最高的房间(花较少的猫粮可以保证最多的粮食),每组数据计算一个比率rate = 房间存放的粮食/所需要的猫粮,按照rate对其进行降序排列,优先满足上方的房间即可. 代码纵览 /* Title:HDOJ.1009 Author…
今年暑假不AC 点我挑战此题 题意分析 给出来n组节目的起止时间,让求出所最多能观看的完整节目个数. 贪心策略:按照节目的结束时间升序排序,比较下一项的开始时间是否比上一项的结束时间大,是的话计数器+1,并且更新结束时间,否则的话继续判断下一项.直到遍历完整个节目单,输出计数器的值即可. 注意:排好序后,默认第一个节目是看的,并且此时计数器为1. 至于为何按照结束时间排序,下面出一个一个ppt,感兴趣的读者可以自己分析一下. 贪心最重要的是选择合适的贪心策略,才能快准AC. 贪心策略 代码总览…
题目传送门 /* 题意:求邀请顺序使得去爬山的人最多,每个人有去的条件 贪心+优先队列:首先按照l和r从小到大排序,每一次将当前人数相同的被邀请者入队,那么只要能当前人数比最多人数条件小,该人能 被邀请,而且不用考虑最少人数的条件.网上的写的比我简洁,学习了. 详细解释:http://blog.csdn.net/queuelovestack/article/details/47319361 */ /************************************************…