![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
二分+贪心+枚举
文章平均质量分 69
clevermike
这个作者很懒,什么都没留下…
展开
-
UVa 10020 - Minimal coverage(区间覆盖)
题意:选择最少的区间覆盖一条线段,如果不能覆盖,则输出0思路:将区间按左端点从小到大,然后右端点从大到小排序,这样每次覆盖保证能够使得使用的区间尽可能的少,注意覆盖完之后更新线段的左右端点值#include #include typedef struct{ int l; int r;} co;int cmp(const void *_x,const void原创 2013-07-24 16:09:19 · 736 阅读 · 0 评论 -
UVa 10718 - Bit Mask
很有趣的一道贪心题,思路非常巧妙将L和U的二进制形式表示出来,从高位开始,在不能比较出大小的情况下,需要根据L和U的第i位值推断第i位数字为1还是为0,在能够比较出大小的情况下,则可以直接填M的第i位#include long long bit2[35];int main(){ bit2[0]=1; for(int i=1;i<=32;i++) {原创 2013-07-24 16:18:08 · 788 阅读 · 0 评论 -
UVa 10954 - Add All
贪心题,求最小花费思路:先将花费从小到大排序,然后从小到大扫描、求和,如果前面的和大于后面的数,要进行交换#include #include using namespace std;int main(){ int n,a[100000]; while(cin>>n&&n) { for(int i=0;i<n;i++) cin原创 2013-07-24 15:47:23 · 713 阅读 · 0 评论 -
UVa 311 - Packets
题意:给出1*1,2*2,3*3,4*4,5*5,6*6的正方形的个数,求能够拼出多少个6*6的正方形解法:贪心,先放大的正方形,有些细节需要考虑清楚#include using namespace std;const int sq=36;int main(){ int a[10]; while(scanf("%d%d%d%d%d%d",&a[1],&a[2],原创 2013-07-24 15:57:27 · 695 阅读 · 0 评论 -
URAL 1964 - Chinese Dialects(贪心)
题意:有n个人,会说k种语言,其中ai个人会说第i种语言,问最少有多少人会同时说k种语言一开始我还以为这是个容斥原理的题目,后来一想,贪心即可后面和前面的交集进行比较,如果不会有交集,则退出,否则求出新的交集,继续计算思路很巧妙,是个好题#include int n,k;int a[25];int solve(){ int x=a[0]+a[1]-n; if原创 2013-08-04 12:40:59 · 1076 阅读 · 0 评论 -
SPOJ 416 - Divisibility by 15(贪心)
糟烂的代码啊... 这个题目思路很简单——末位只可能为0和5,所有数字的和肯定被3整除没有0和5的肯定不行否则,把所有数字求和如果被3整除,则从大到小输出如果除3余1,则按以下顺序——删1;删4;删7;删2、5、8中的2个(特别注意如果没有0要保留一个5)如果除3余2,则按以下顺序——删2;删5(特别注意如果没有0要保留);删8;删1、4、7中的2个下面是糟烂的代原创 2013-07-29 16:33:46 · 807 阅读 · 0 评论 -
URAL 1233 - Amusing Numbers
首先计算出k至少为第几位,如果m小于这个数,那么输出0还有一种情况, 就是10的i次方的这种情况,如果i等于m,那么直接输出k,否则输出0其他的情况,就是二分,然后判断计算其插入到k之前的数的个数与k至少的位数之和#include #include #define LL unsigned long longLL d[20],k,m,s;int t;void init(){原创 2013-08-05 14:02:26 · 752 阅读 · 0 评论 -
HDU 4454 - Stealing a Cake(三分)
我比较快速的想到了三分,但是我是从0到2*pi区间进行三分,并且漏了一种点到边距离的情况,一直WA了好几次后来画了下图才发现,0到2*pi区间内是有两个极值的,每个半圆存在一个极值以下是代码#include #include #include #define pi acos(-1.0)using namespace std;typedef struct{ doub原创 2013-09-02 16:11:23 · 934 阅读 · 0 评论 -
UVa 11294 - Wedding(2-SAT)
想了好长时间,绕死我了可以把每对夫妇看做一个点,w和h则表示他们所在的位置可以假定w0和h0的位置(因为相反的位置效果一样),然后建图建图的时候,由于这一条件——当一对吵架者中的一个人出现在新娘的对面时,另一个必须在新娘的同侧,连边即可。#include #include #include #include using namespace std;#define原创 2013-09-10 17:18:59 · 1044 阅读 · 0 评论