
------贪心法
fisty
hi
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
poj 2393
#include #include #include #define MAX_N 10000 using namespace std; //input int N,S; int Y[MAX_N],C[MAX_N]; //input long long ans = 0; //可能会超过int void solve(){ for(int i = 0;i原创 2014-06-06 21:50:26 · 538 阅读 · 0 评论 -
uva11134 Fabled Rocks 贪心
一开始用的搜索,并且以为斜线也不能冲突,这样TLE+WA了很多次发现题目理解错了。。。斜线不用考虑。所以直接在二维的棋盘上考虑怎么放不好弄,注意到x和y无关(因为两个车完全可以在同一条斜线上,这点和皇后问题不一样),那么就可以分别考虑两个一维的问题:这是一种区间选点问题,在每个区间里都只选一个点,最后这些点分别是1到n。 从1到n一个格一个格的选车放,每步选择的最优区间是:该区间以前没选过,包含原创 2014-12-20 08:02:52 · 646 阅读 · 0 评论 -
uva 11100 The trip
题意:给你n个数字,代表n个包的大小。小的包可以嵌套在大的包里,现在使这些包进行嵌套,使得到最少的包。 方法:找到重复次数最多的数字,包裹数就是重复的次数k。稍微难的是包裹嵌套的输出。一个要求就是这些包裹肯定不能重复,既不能有两个相等。可以想到等差数列,让公差就是k,这样重复最多的数字都不会重复,其他的就更不会重复了。 /************************************原创 2015-01-10 10:19:49 · 474 阅读 · 0 评论 -
uva1267Network 树上的最优问题
先将无根树转换为以VOD点为根的有根树,然后从最深的结点开始,每K个祖先放置服务器一次,进行一次DFS,覆盖与他距离不超过K的所有结点,本题只需要覆盖叶子,而不需要覆盖中间结点,而且深度不超过K的叶子已经被原服务器覆盖,所以只需要处理深度大于K的叶节点即可,用node表存放了每层的结点。 /***************** * Author:fisty * Data:2014-12-12原创 2014-12-13 16:20:32 · 485 阅读 · 0 评论 -
uva 11039 贪心法
/******************* * Author:fisty * Data:2014-12-13 * uva11039 * 贪心法 * ******************/ #include #include #include using namespace std; #define MAX_N 500100 typedef pair PII; PII a[MAX原创 2014-12-13 16:27:47 · 525 阅读 · 0 评论 -
uva 11636 贪心法
不需要是-1才结束,任何一个负数都是结束标志。 /****************** * Author:fisty * data:2014-12-13 * uva11636 * 贪心 * *****************/ #include #include using namespace std; int main(){ int n; in原创 2014-12-13 16:24:15 · 521 阅读 · 0 评论 -
uva1368 字符串构造
/***************** * Author:fisty * Data:2014-12-13 * uva 1368 * 竖着看选择出现次数最多的字母, * 如果频率相同选择字典序小的字母 * **************/ #include #include #include #include #include #include using namespace s原创 2014-12-14 10:56:00 · 499 阅读 · 0 评论 -
uva1344/ HDU1052:Tian Ji -- The Horse Racing
摘自http://www.cnblogs.com/anderson0/archive/2011/05/07/2039971.html 先对田忌和国王的马进行排序,我是从小到大排序的。 贪心的策略: 一、当田忌最快的马比国王最快的马快时,用田忌最快的马赢国王最快的马。 二、当田忌最快的马比国王最快的马慢时,用田忌最慢的马输给国王最快的马。 三、当田忌最快的马跟国王最快的马一样原创 2015-02-07 20:33:13 · 480 阅读 · 0 评论 -
1445 - Cubist Artwork
分别计算侧边和正面不同高度的个数,front[a] 表示高度为a的一共front[a]列 最后统计,若某一个高度在侧面和正面都出现了,则取他们的最大个数。 /*********************************************** * Author: fisty * Created Time: 2015/2/10 16:01:31 * File Name : u原创 2015-02-10 16:28:01 · 586 阅读 · 0 评论 -
bestcoder 1002 Taking Bus
1002 Taking Bus 简单的分类讨论,设s,x,y分别表示公交的始发站,起点和终点。大概有这样几种情况:1. s≤xy, 2. xsy,3. xy≤s, 4. s≤yx, 5. ysx, 6. yx≤s 分别写出公式即可。答案应该会超过int,注意要用long long。 /*********************************************** * Au原创 2015-01-24 22:24:29 · 477 阅读 · 0 评论 -
10905 - Children's Game
当两个数为9 和90时肯定是 990 > 909故排序时做一下调整 /* *********************************************** Author :fisty Created Time :2014/12/16 10:35:45 File Name :uva10905.cpp ******************************原创 2014-12-16 11:55:25 · 435 阅读 · 0 评论 -
cf 461A
/************************** * Author:fisty * Data:2014-10-14 * cf461A * 贪心 *************************/ #include #include using namespace std; #define MAX_N 3*100000 int main(){ int n;原创 2014-10-14 22:58:03 · 632 阅读 · 0 评论 -
poj 1852
/* 2014-6-5 poj 1852 ant */ #include #include #define MAX_N 1000000 using namespace std; //input int t,n,l; int x[MAX_N]; void solve(){ int minT = 0,maxT = 0; for(int i = 0;i < n; i++){原创 2014-06-06 21:43:19 · 459 阅读 · 0 评论 -
poj 1328 Radar Installation
#include #include #include #define MAX_N 1100 using namespace std; pair point[MAX_N]; pair arr[MAX_N]; //input int n,d; //answer int ans; int cnt = 1; void solve(){ ans = 1; //对点按左端点原创 2014-06-01 16:04:55 · 581 阅读 · 0 评论 -
poj 3253
#include #include #include using namespace std; typedef long long ll; int n,l[50000]; int main() { int i; scanf("%d",&n); for(i = 0;i < n; i++) scanf("%d",&l[i]); ll ans =原创 2014-06-01 16:15:34 · 545 阅读 · 0 评论 -
poj 3262贪心
看的大神的证明: 贪心 > 当前最优,因为每一次搬运之后剩下的问题和原问题一样,只是规模变小了,故如果每次选出当前最优的解来进行选取,则累计起来的解也是最优的. > 所以这是一道贪心题. > 选择策略, > 1 在二个中间选择之中,能根据time/eat小的那个为最优解 > 证明: > 二个羊中 A,B,属性分别为分别为eatA,timeA,eatB,timeB > 选A的时候损失timeA*原创 2014-08-04 00:06:55 · 574 阅读 · 0 评论 -
uva 11300
/********************** * Author:fisty * Data:2014-10-23 * uva 11300 * 贪心 * *******************/ #include #include #include using namespace std; #define MAX_N 1000010 typedef long long ll; ll原创 2014-10-23 22:58:24 · 447 阅读 · 0 评论 -
uva10881 ants
#include #include #include using namespace std; #define MAX_N 10010 struct ant{ int id;//记录输入顺序 int p; //每只蚂蚁位置 int d; //每只蚂蚁方向,-1左,0正在碰撞,1右; bool operator原创 2014-10-27 22:08:21 · 487 阅读 · 0 评论 -
poj 3045 Cow Acrobats
/*贪心 风险值 = w - (wnow + snow) * 使得(wnow+snow)最大即可 */ #include #include #include using namespace std; #define MAX_N 100010 const int inf = 1 << 29; const int maxn = 5e4+100; struct cow{原创 2014-10-02 17:39:38 · 431 阅读 · 0 评论 -
poj 2566Bound Found
#include #include #include #include using namespace std; #define MAX_N 100010 int n,m,k; int a[MAX_N]; typedef pair P; P p[MAX_N]; int Abs(int x){return x < 0 ? -x : x;} void solve(int target){原创 2014-10-02 17:45:51 · 421 阅读 · 0 评论 -
11389 - The Bus Driver Problem(贪心)
把下午的时间和晚上的时间分别正序排序和逆序排序。。 /*********************************************** * Author: fisty * Created Time: 2015/2/10 14:49:31 * File Name : uva11389.cpp ****************************************原创 2015-02-10 16:32:00 · 533 阅读 · 0 评论