贪心
文章平均质量分 78
围巾的ACM
啊啊什么时候也能成为一个大牛啊
展开
-
杭电2015’11校赛 1008游乐场
游乐场Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 4269 Accepted Submission(s): 629Problem Description小时候,因为家里经济困难,小明从未去过游乐场,所以直到现在,他还心存遗憾。原创 2015-11-29 23:25:31 · 725 阅读 · 0 评论 -
CodeForces 492C Vanya and Exams(贪心)
题意:有一个人有n门课程,每一门课程他最多获得r学分,他只要所有课程的平均学分有avg,他就可以获得奖学金,每门课程,他已经获得了ai学分,剩下的每一个学分,都需要写bi篇论文才能得到,然后问你,这个人最少写多少论文才能获得奖学金思路:贪心,我们选择bi最小的开始写论文,然后扫一遍就好了,直到学分够为止#include#include#includeusing namespa原创 2016-05-17 23:03:52 · 668 阅读 · 0 评论 -
CodeForces 665C Simple Strings
题意:现在给你一个串,让你使得相邻的字符都不一样,要求修改的字符最少问你最后的字符串长什么样思路:贪心,如果这个位置一样,那就变化就好了#includeusing namespace std;string s;int main(){ cin>>s; s+='a'; for(int i=1;i<s.size()-1;i++) {原创 2016-04-22 23:58:33 · 740 阅读 · 0 评论 -
hdu4310 Hero(贪心)
思路:贪心一下,优先消灭攻击力高但血量少的,排下序就OK了#include#include#includeusing namespace std;struct Node{ int d; int h;}h[50];bool cmp(Node a,Node b){ return a.d*b.h>a.h*b.d;}int main(){ i原创 2016-06-08 16:11:02 · 501 阅读 · 0 评论 -
poj2782 Bin Packing(贪心)
思路:从大到小排序,然后每次都取最大的和最小的看看能不能放就好了#include#includeusing namespace std;const int maxn = 100000+500;int li[maxn];bool cmp(int a,int b){ return a>b;}int main(){ int n,l; while(scanf("%原创 2016-06-08 16:33:10 · 600 阅读 · 0 评论 -
团体程序设计天梯赛L2-003 月饼(贪心)
思路:按照比值排个序...然后就是随便做了,注意都要用double#include using namespace std;typedef long long LL;const int N=1e5+10;const int INF=0x3f3f3f3f;int cas=1,T;struct node{ double a,b; double c; bool o原创 2016-06-28 21:34:43 · 695 阅读 · 0 评论 -
hdu5802 Windows 10(贪心搜索)
思路:30w个样例1s...完全没有往搜索那个方面去想,一直想找一下规律...智障啊...题解:_您可能是正版Windows 10的受害者_ 直接贪心就好比较直观的看法是使劲往下降,然后升回来或者使劲往下降然后停顿然后再使劲往下降。。。于是就能将问题变成一个子问题,然后dfs就好需要注意的是由于按up键也可以打断连续向下的功效所以应该记录停顿原创 2016-08-04 21:59:02 · 525 阅读 · 0 评论 -
HDU 5452 Minimum Cut(贪心)
思路:只能切一条生成树上的边,一个比较直观的想法是只切度数为1的点的那条边,然后枚举这个叶子和外面连接的边数即可#includeusing namespace std;const int maxn = 20000+7;#define inf 1e9vectore[maxn];int vis[maxn];int deg[maxn],degg[maxn];int n,m;i原创 2016-09-01 21:18:09 · 661 阅读 · 0 评论 -
Codeforces Round #228 (Div. 2) C Fox and Box Accumulation(贪心)
思路:从小到大放,能放就放,简单模拟就可以了#includeusing namespace std;const int maxn = 105;int vis[maxn];int n,maxv,ans;int main(){ int x; scanf("%d",&n); for(int i=0; i<n; i++) { int tmp;原创 2016-09-07 09:11:51 · 472 阅读 · 0 评论 -
Codeforces Round #228 (Div. 2) E Fox and Card Game(贪心博弈)
思路:一个比较经典的题目,考虑每一堆,如果该堆为偶数,那么最终肯定是对半平分的,若为奇数,则会多出一个,那么显然只有那一个会影响这一堆的情况,将它们单独出来,排个序然后轮流取就可以了#includeusing namespace std;const int maxn = 105;int n, m,c[maxn];vectorcc;bool cmp(int a,int b){r原创 2016-09-07 09:13:50 · 625 阅读 · 0 评论 -
51nod 1272 最大距离(贪心)
思路:排个序,每次找比它位置大的更新答案,比它位置小的更新位置,每次更新位置都只会往左靠,显然会更优#includeusing namespace std;#define LL long longconst int maxn = 50005;struct Node{ int v,id;}a[maxn];bool cmp(Node aa,Node b){return aa原创 2016-10-05 16:35:33 · 316 阅读 · 0 评论 -
FZU 2219 StarCraft(优先队列贪心)
思路:手推一下样例大概猜到这样一个贪心,n个工作m个工人,那么需要n-m次分裂,每次分裂出来的一个人去做时间最长的工作,剩下的一个继续分裂,直到工人的数量够了,其实就是一个小根堆,每次取两个元素出来,将次小的元素+k再扔回去即可#include#include#include#includeusing namespace std;priority_queue,greater原创 2016-11-01 22:29:14 · 735 阅读 · 0 评论 -
UVALive 7146 Defeat the Enemy (贪心+STL)
思路:将攻击方按攻击力排序,防御方按防御力排序,对于每一个攻击力大于防御力的,就找有没有一个攻击方的防御力比防御方的攻击力高的,有则必定是最优解#includeusing namespace std;#define LL long longconst int maxn = 1e5+6;struct Node{ int att; int def;}a[maxn],b原创 2016-11-15 19:09:03 · 388 阅读 · 0 评论 -
FZU 2144 Shooting Game
思路:把球体方程和直线方程联立解出来交点的值作为区间,那么就变成最多区间覆盖的问题了#include#include#include#include#includeusing namespace std;#define LL __int64const int maxn = 1000005;struct Node{ double s,t;}nodes[maxn];原创 2016-04-19 22:00:55 · 653 阅读 · 0 评论 -
HDU 5135 Little Zu Chongzhi's Triangles
题意:给出n个棍子,求用这些棍子组成若干个三角形面积之和最大是多少思路:排序然后从后往前贪心#includeusing namespace std;const int maxn = 15;int a[maxn];bool check(int a,int b,int c){ return (a+b>c && a+c>b && b+c>a);}double area(i原创 2016-05-02 21:27:50 · 286 阅读 · 0 评论 -
CodeForces 660A Co-prime Array
题意:给你一个序列,让你插入最小的数,使得任意相邻的两个数都互质,让你输出最后的序列长什么样思路:显然插入的数最优就是1嘛,1和任何数都互质,然后我们贪心的去插就好了,能插就插#includeusing namespace std;const int maxn = 1e5+5;int a[maxn];int gcd(int a,int b){ if(b==0)re原创 2016-04-18 19:30:53 · 483 阅读 · 0 评论 -
Codeforces Round 331 (Div 2)BWilbur and Array(贪心)
题解:贪心,修改对p位置后的所有位置生效 最少修改次数使得数列变成b,从前到后修改即可代码#include<stdio.h>#include<iostream>#include<string.h>#include<string>#include<ctype.h>#include<math.h>#include<set>#include<map>#include<vector>#in原创 2016-01-20 23:13:55 · 677 阅读 · 0 评论 -
Codeforces Testing Round #12 B. Restaurant (贪心)
题解:题意:旅店的租房时间,有一个开始时间,一个结束时间,问最多能安排多少个旅客,两个时间段不能重叠,对结束时间排序,贪心就好了,第一段时间一定要选。代码#include<stdio.h>#include<math.h>#include<string.h>#include<stack>#include<queue>#include<vector>#include<iostream>#i原创 2016-01-20 23:10:12 · 701 阅读 · 0 评论 -
poj1456 Supermarket(贪心)
题意:有N件商品,分别给出商品的价值和销售的最后期限,只要在最后日期之前销售处,就能得到相应的利润,并且销售该商品需要1天时间。问销售的最大利润。思路:贪心,将商品按最大价值排序,找到销售的最大期限,如果它的期限没有被占用,就在该天销售,如果占用,则从它的前一天开始向前查找有没有空闲的日期,如果有则占用。这样就可以得到最大销售量。#include#include#include原创 2016-01-30 16:41:55 · 305 阅读 · 0 评论 -
hdu2037 今年暑假不AC
思路:按照结束时间排序一下,然后贪心第一个必选,随便做做就可以了#include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std;#define max原创 2016-03-20 15:56:29 · 267 阅读 · 0 评论 -
CodeForces 659C Tanya and Toys(贪心)
题意:有无限多种商品,第i个商品值i元,现在你已经有了n个商品,你想花m元去买尽量多的不同的商品,问你应该买哪些物品。思路:肯定是贪心排个序,选便宜的扫一遍就好了#include #include #include #include #include #include #include #include #include #include #incl原创 2016-04-01 21:46:50 · 1030 阅读 · 0 评论 -
uva11729(Commando War)
思路:贪心一下,执行时间较长的任务应该先交代。按照J从大到小的顺序给各个任务排序,然后依次交代。#include#include#include#includeusing namespace std;const int maxn = 20000+5;struct Job{ int j,b; bool operator<(const Job&x)const { r原创 2016-03-13 14:50:44 · 361 阅读 · 0 评论 -
CodeForces 176A Trading Business(贪心)
题意:有n个星球,每个星球有m个物品,买需要ai元,卖bi元,只有ci个,你可以在一个星球最多买k个物品,然后在另外一个星球卖出,问最多能卖多少钱思路:直接暴力枚举在哪个星球买,哪个星球卖,选差价最大的前k个就行了#includeusing namespace std;int a[20][200];int b[20][200];int c[20][200];int vi原创 2016-04-12 12:48:18 · 427 阅读 · 0 评论 -
CodeForces 645B Mischievous Mess Makers
题意:给你1到n的一个序列,你可以执行k次操作,问操作完之后逆序数的最大值思路:贪心一发,对于每一次操作,肯定是交换第一个和最后一个,然后第二个和倒数第二个,这样显然最后的逆序数最多。对于每次操作的贡献度为2*(n-i-i)+1#include #include #include #include #include #include #include #include原创 2016-03-26 16:49:01 · 385 阅读 · 0 评论 -
HDU 5242 Game
题意:一棵树有n个结点,n-1条边,每个结点有个权值。每次可以获得从根节点走到叶子结点所有结点的权值和,但是每个结点的权值只能使用一次。求走k次所能获得的最大权值和思路:首先dfs一次求出所有叶子结点到根结点的权值和,然后从大到小排序,然后根据这个顺序再一次dfs求出每个结点到根节点的权值和,然后再次排序选前k个,证明:每次选择一个叶子结点走到根节点,相当于每次取一条单链,对于有交叉的两条链,原创 2016-04-27 21:01:54 · 294 阅读 · 0 评论 -
CodeForces 624B Making a String(贪心)
题意:有n个字母,每个字母最多出现ai次,但是每个字母的出现次数都要求不一样,问你这个字符串最长多长思路:显然从大到小排序,然后贪心就好了,能选就选,不能选就–就行了#include<bits/stdc++.h>using namespace std;int a[30];map<int,int> H;int main(){ int n;scanf("%d",&n); for(原创 2016-04-15 20:57:26 · 648 阅读 · 0 评论 -
ZOJ 3829 Known Notation
思路:贪心,数字的个数要要保证比∗的个数多1,不够的话优先补在开头是最优的。然后遍历一遍字符串,碰到数字+1,碰到∗,-1,保证数字的个数大于等1,如果不够减的话,可以和最后面的一个数字交换位置(用栈维护十分方便),因为添加和交换代价都是1。#include#include#include#includeusing namespace std;int main()原创 2016-05-24 20:56:44 · 341 阅读 · 0 评论 -
南京理工大学第八届程序设计大赛 F sequence
思路:经典贪心问题,从前往后扫描原数组,每到一个数,找个当前最大值最大的不降数组加入其中,否则新建一个不降数组。#include #define N 10000#define LL long long#define U unsignedusing namespace std;int cas=1,T;int n,a[N+10],len[N+10];bool cmp(原创 2016-04-17 23:43:26 · 413 阅读 · 0 评论 -
51nod 1420 数袋鼠好有趣(贪心)
思路:排序,然后让大的尽量装大的就好了嘛#includeusing namespace std;const int maxn = 5*1e5+7;int a[maxn];int vis[maxn];int main(){ int n; scanf("%d",&n); for(int i = 1;i<=n;i++)scanf("%d",&a[i]); sort(a+1原创 2017-01-24 15:56:44 · 405 阅读 · 0 评论