贪心
johsnows
正在静下心来学算法的acmer
展开
-
2020kickstart E round C Toys (优先队列)
题意:有n个toy排成一个圈圈,每个toy有一个e[i],r[i],需要e[i]的时间去玩这个toy,r[i]可以理解为这个玩具再次可以被玩的cd时间,一个小孩会从第0个玩具开始,每次往i+1个玩具轮流玩过去,一个玩具可以被玩的前提是,距离上次被玩的时间超过r[i],当碰到不能玩的玩具后,小孩就会停下不动,否则一直玩下去。问移除多少个toy,可以让小孩玩的时间最长,并且再保证时间最长的情况下,移除最少的玩具。思路:第一轮肯定是都可以玩耍,关键是看第二轮,我们记完成一轮玩具的时间为tim,那.原创 2020-08-26 22:43:16 · 189 阅读 · 0 评论 -
zoj H Kindergarten Election (枚举+贪心)
题意:谢耳朵想成为leader,在知道其他n-1个选民(谢耳朵自己是选民1)选谁以及贿赂他们选自己需要的糖果数的情况下,问最少需要花多少糖果数让谢耳朵成为被投票最多的人,不能并列。选民也不能投自己。解题思路:纯贪心的去做感觉总不好做,所以想不出来。然后换思路,去枚举糖果数,再验证,但是想不到验证的方法,gg。看了别人http://blog.csdn.net/zy691357原创 2017-02-14 10:39:00 · 485 阅读 · 0 评论 -
codeforeces 344 E Read Time
题意:n个磁头去读取m个磁道,给出磁头和磁盘的初始位置(递增给出),问最少需要多少时间所有磁道均被读取。思路:二分答案还是很容易想到的,难点大概在于贪心。在确定时间t后考虑:由于有多个磁头,所有最左边的磁道肯定要由最左边的磁头去读取,但是如果没次都让磁头从左边开始读取,是不对的。最左边的磁道自然是要读取,但是贪心的思想下,我们应该让当前磁头在读取最左边的磁道的往右走的越原创 2017-05-24 17:54:17 · 324 阅读 · 0 评论 -
codeforces 794C Naming Company(贪心)
题意:x,y两人轮流从各自的字符串a,b(长度都为n)里选择字符,形象的来说就是往一个长度为n里的容器里放所选择的字符,x先手,x想最后的字典序越小越好,y想最后的字典序越大越好,问他们两都采取最优的策略,问最后获得的字符串是什么解题思路:首先我们容易想到,x只能取出前n/2小的字符来投放,并且,最后字符的位置一定是字典序递增的,因为想最后的字典序最小,而y是只能取出前n/2大原创 2017-05-16 11:04:24 · 1053 阅读 · 0 评论 -
第八届山东省赛 sdut 3903 CF(贪心+dp)
题意:讲的是打cf的得分机制,给出n个题,每个题有它的初始分数a[i],随时间流逝要扣去的分数的系数d[i],做这道题需要花的时间c[i]。现在给你t时间,问你能获得的最大分数。解题思路:这题一开始想的就是dp,写了一发wa掉了,然后想到需要贪心,比赛就结束了。为什么单纯的for(int i=1; i=0; j--)dp[i]=max(dp[i], dp[i-c[i]]+a原创 2017-05-09 17:16:45 · 498 阅读 · 0 评论 -
hdu 6034 Balala Power!(贪心)
题意:n串字母,总长度不超过1e6,让你给出a-z到0-25的映射,使26进制的字符串对应的数字之和最大。解题思路:每个字母所在位置对应权值加和,肯定存不下。但我们只需要26个字母对应值之间的关系即可,开一个数组a[i][j]分别记录字母i在j这个位置上出现了多少次,对于大于26的值进位,这样我们就得到了26个字母对应的值对应的系数,按照字典序比较的方式去排序即可。但是原创 2017-07-25 19:16:55 · 1420 阅读 · 0 评论