------贪心法
fisty
hi
展开
-
poj 2393
#include #include #include #define MAX_N 10000using namespace std;//inputint N,S;int Y[MAX_N],C[MAX_N];//inputlong long ans = 0; //可能会超过intvoid solve(){ for(int i = 0;i原创 2014-06-06 21:50:26 · 515 阅读 · 0 评论 -
uva11134 Fabled Rocks 贪心
一开始用的搜索,并且以为斜线也不能冲突,这样TLE+WA了很多次发现题目理解错了。。。斜线不用考虑。所以直接在二维的棋盘上考虑怎么放不好弄,注意到x和y无关(因为两个车完全可以在同一条斜线上,这点和皇后问题不一样),那么就可以分别考虑两个一维的问题:这是一种区间选点问题,在每个区间里都只选一个点,最后这些点分别是1到n。从1到n一个格一个格的选车放,每步选择的最优区间是:该区间以前没选过,包含原创 2014-12-20 08:02:52 · 614 阅读 · 0 评论 -
uva 11100 The trip
题意:给你n个数字,代表n个包的大小。小的包可以嵌套在大的包里,现在使这些包进行嵌套,使得到最少的包。方法:找到重复次数最多的数字,包裹数就是重复的次数k。稍微难的是包裹嵌套的输出。一个要求就是这些包裹肯定不能重复,既不能有两个相等。可以想到等差数列,让公差就是k,这样重复最多的数字都不会重复,其他的就更不会重复了。/************************************原创 2015-01-10 10:19:49 · 456 阅读 · 0 评论 -
uva1267Network 树上的最优问题
先将无根树转换为以VOD点为根的有根树,然后从最深的结点开始,每K个祖先放置服务器一次,进行一次DFS,覆盖与他距离不超过K的所有结点,本题只需要覆盖叶子,而不需要覆盖中间结点,而且深度不超过K的叶子已经被原服务器覆盖,所以只需要处理深度大于K的叶节点即可,用node表存放了每层的结点。/***************** * Author:fisty * Data:2014-12-12原创 2014-12-13 16:20:32 · 445 阅读 · 0 评论 -
uva 11039 贪心法
/******************* * Author:fisty * Data:2014-12-13 * uva11039 * 贪心法 * ******************/#include #include #include using namespace std;#define MAX_N 500100typedef pair PII;PII a[MAX原创 2014-12-13 16:27:47 · 496 阅读 · 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 · 495 阅读 · 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 · 483 阅读 · 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 · 456 阅读 · 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 · 557 阅读 · 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 · 456 阅读 · 0 评论 -
10905 - Children's Game
当两个数为9 和90时肯定是 990 > 909故排序时做一下调整/* ***********************************************Author :fistyCreated Time :2014/12/16 10:35:45File Name :uva10905.cpp******************************原创 2014-12-16 11:55:25 · 417 阅读 · 0 评论 -
cf 461A
/************************** * Author:fisty * Data:2014-10-14 * cf461A * 贪心 *************************/#include #include using namespace std;#define MAX_N 3*100000int main(){ int n;原创 2014-10-14 22:58:03 · 605 阅读 · 0 评论 -
poj 1852
/*2014-6-5poj 1852 ant*/#include #include #define MAX_N 1000000using namespace std;//inputint 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 · 442 阅读 · 0 评论 -
poj 1328 Radar Installation
#include #include #include #define MAX_N 1100using namespace std;pair point[MAX_N];pair arr[MAX_N];//inputint n,d;//answerint ans;int cnt = 1;void solve(){ ans = 1; //对点按左端点原创 2014-06-01 16:04:55 · 560 阅读 · 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 · 514 阅读 · 0 评论 -
poj 3262贪心
看的大神的证明:贪心> 当前最优,因为每一次搬运之后剩下的问题和原问题一样,只是规模变小了,故如果每次选出当前最优的解来进行选取,则累计起来的解也是最优的.> 所以这是一道贪心题.> 选择策略,> 1 在二个中间选择之中,能根据time/eat小的那个为最优解> 证明:> 二个羊中 A,B,属性分别为分别为eatA,timeA,eatB,timeB> 选A的时候损失timeA*原创 2014-08-04 00:06:55 · 548 阅读 · 0 评论 -
uva 11300
/********************** * Author:fisty * Data:2014-10-23 * uva 11300 * 贪心 * *******************/#include#include #include using namespace std;#define MAX_N 1000010typedef long long ll;ll原创 2014-10-23 22:58:24 · 427 阅读 · 0 评论 -
uva10881 ants
#include #include #include using namespace std;#define MAX_N 10010struct ant{ int id;//记录输入顺序 int p; //每只蚂蚁位置 int d; //每只蚂蚁方向,-1左,0正在碰撞,1右; bool operator原创 2014-10-27 22:08:21 · 473 阅读 · 0 评论 -
poj 3045 Cow Acrobats
/*贪心 风险值 = w - (wnow + snow) * 使得(wnow+snow)最大即可 */#include #include #include using namespace std;#define MAX_N 100010const int inf = 1 << 29;const int maxn = 5e4+100;struct cow{原创 2014-10-02 17:39:38 · 415 阅读 · 0 评论 -
poj 2566Bound Found
#include#include#include #include using namespace std;#define MAX_N 100010int 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 · 406 阅读 · 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 · 504 阅读 · 0 评论