
贪心
Green_G
这个作者很懒,什么都没留下…
展开
-
Uva 1368 DNA Consensus String
贪心,每一位取出现次数最多的#include #include #include using namespace std;char DNA[100][1005],out[1005];int cnt[1005][4];char D[5]="ACGT";int ret(char x){ if(x=='A') return 0; if(x=='C') return原创 2015-02-03 23:08:44 · 315 阅读 · 0 评论 -
codeforces 519C
题目链接:点击打开链接有A和B两组人,现在用A和B里挑3个人合成一组,可以(AAB)或(BBA),问最多可以组多少组。贪心,如果A组人较多,则A组出两个,否则B组出两个。#include #include using namespace std;#define N 100010int pos[N],icon[N];#define LL long longint main原创 2015-03-01 16:04:39 · 401 阅读 · 0 评论 -
超级赛亚ACMer
题目链接:点击打开链接 题目的意思就是一个人具有初始的战斗力为0~m,第i次攻击一个战斗力和自己相同的人,则可以将自己的攻击力提升0 ~ k - i + 1点,而一旦某次战胜别人,则攻击力就不再增加,问是否存在某种攻击顺序使得能够打败所有的敌人。我们只需每次贪心找到攻击力提升范围内的最大的敌人作为自己的攻击力即可。如果某次不能覆盖到新的对手,则攻击力不能再提升,此时看是否攻击力超过最大攻击原创 2015-05-31 22:17:42 · 518 阅读 · 0 评论 -
CF 3B Lorry
题目大意:有n(n≤105)(n\leq 10^5)个货物,分为两种,一种占空间1,一种占空间为2,每个货物都有一定的价值,有大小为v(v≤109)(v\leq 10^9)的背包,如何装能够使得价值最大。题解:该题的特殊性在于两种货物所占空间分别为1和2,背包中最终可能会填满或余1的位置。以平均价格为关键字排序,再贪心地取。如果正好装满就结束,如果还差一个位置填满,需要尝试把前面的1类型货物换成2类原创 2016-10-26 15:35:36 · 646 阅读 · 0 评论 -
CF 3D Least Cost Bracket Sequence
题目大意:给一个括号序列,其中有一些位置是问号,问号可以变成左括号或右括号,每个问号变成其中一种符号都有代价。求代价最小的合法括号序列的代价以及序列。题解:这个问题是有后效性的,因为后面的决策不取决于前面的某一个阶段的状态,而是与之所有阶段的状态都有关,不能用dp来解。正解是贪心,先假设所有的问号都是右括号,如果某个位置不合法了,检查前面是否有问号,如果有的话找一个代价最小的进行纠正,否则一定无法构原创 2016-10-27 22:10:26 · 322 阅读 · 0 评论 -
CF 675C Money Transfers
题目大意:有n个银行编号为1-n,n视作与1相邻,每个银行有ai(−1e9≤ai≤1e9)a_i(-1e9\leq a_i\leq 1e9)的存款。有一种操作,相邻编号的银行可以转任意多的钱。使每个银行的存款都为0的最小操作数是多少。保证∑ni=1ai=0\sum_{i=1}^na_i=0题解: 1.每个相邻的银行之间最多发生一次转移,因此最多转移次数为n次。 2.若能分成k段不相交的和为0的区原创 2016-11-22 20:04:19 · 322 阅读 · 0 评论