![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
DP-贪心
文章平均质量分 83
KIJamesQi
这个作者很懒,什么都没留下…
展开
-
LOJ1099来回次短路
思路:求从S->T的次短路,不同的是,每条路是可以重复走的;那么在更新的时候就要注意下了; 可以设dis[i][0] 是S->i 的当前最短路,dis[i][1]是S->i的当前次短路;然后用优先队列维护这个性质; typedef pair ii; queue que;//小的优先 node u = que.top(); que.pop(); u.first + w 可以更新S->i的原创 2015-09-09 22:31:05 · 443 阅读 · 0 评论 -
5335Walk Out(贪心+bfs)
/***************************************** Author :Crazy_AC(JamesQi) Time :2016 File Name : 给定一个n*m的01矩阵,问从左上角走到右下角这个路径中经过的01构成一个二进制串,求最小的串; 思路:串的长度必然 < n + m; 尽量让前面的1出现得更晚,也就是0尽量的长。对于这种原创 2016-03-24 21:46:05 · 314 阅读 · 0 评论 -
UVA 11134 Fabled Rooks
在给定的一个棋盘中按照要求放置n个rook,每个rook给定一个矩形范围,也就是说这个rook只能放在这个矩形范围之内。 同时任何两个rook不同行和列。 显然行的选择不影响列的选择,反之亦然。 所以我们可以分开处理。 比如只看列:每个rook就有个一维范围,然后我们根据第二键值排序,然后吧前面的尽量排在前面。 这样的谈心显然是最优的。某个rook不能放置的话就标记下。 /******原创 2016-03-19 09:28:11 · 314 阅读 · 0 评论 -
lightoj 1374 Confusion in the Problemset
题目就是说有n页纸,有n个页码,由于存在某些问题导致页码和平时的不一样,这里每页的页码指的是这页前面或者后面还有多少页,问给定的这些页码是否可以排列出来满足上面条件的序列。主意的是页码的范围是 点击打开题目链接 /***************************************** Author :Crazy_AC(JamesQi) Time :201原创 2016-01-14 21:49:01 · 473 阅读 · 0 评论 -
lightoj1189
求一个数的阶乘进制的表达,同数的二进制表达一样,从上往下贪心。 LL A[23]; void init(){ A[0] = A[1] = 1LL; for (int i = 2;i < 21;++i) A[i] = A[i-1]*i; } int main() { // freopen("in.txt","r",stdin); // fre原创 2016-01-13 15:59:09 · 356 阅读 · 0 评论 -
hdu5483Nux Walpurgis
题目意思就是求一张图上的最小生成树必须经过的边的最少条数。 因为不含有重边,而且一颗确定的生成树要换边不换值的话就是同值的边进行变换。值不同必然边的数目也不同了。。。 同值的边不能能替换的等价条件是这条边在这群同值边都成的图中是桥,结合kruskal算法。 主要看能网上的题解才搞出来的。 /***************************************** Author原创 2016-01-29 16:35:36 · 420 阅读 · 0 评论 -
lightoj 1383 - Underwater Snipers
PDF (English) Statistics Forum Time Limit: 4 second(s) Memory Limit: 32 MB King Motashota is in a war against the mighty Bachchaloks. He has formed a well trained army o原创 2016-01-15 23:21:25 · 813 阅读 · 0 评论 -
lightoj 1396 - Palindromic Numbers (III)
PDF (English) Statistics Forum Time Limit: 1 second(s) Memory Limit: 32 MB Vinci is a little boy and is very creative. One day his teacher asked him to write all the Pal原创 2016-01-15 17:44:07 · 550 阅读 · 0 评论 -
lightoj1219Mafia
对于某个节点u, 如果整个子树里的人数超过了节点数, 那么显然就要把多余的人移动到点u的父亲处, 而如果人不足, 就需要从u的父亲处拿人过来, 至于u父亲出人够不够, 那么就需要考虑以u的父亲为根的子树了, 所以可以考虑dfs递归处理问题, 对于所有节点, 如果节点上人太多, 多余的人必然要到他父亲那边, 如果没人,必要要从父亲处要人, 所以在每次处理完一颗子树时,根据子树的根的情况, 来修改子树原创 2015-11-25 23:06:15 · 341 阅读 · 0 评论 -
lightoj1166Old Sorting
思路:直接暴力查找,交换就好了。 // #pragma comment(linker, "/STACK:1024000000,1024000000") #include #include #include #include #include #include #include #include #include #include #include #include #in原创 2015-11-25 23:11:42 · 305 阅读 · 0 评论 -
lightoj 1198Karate Competition
题意:双方各有n各人,每个人呢有一个技能值,每个人且只能出战一次,如果A的技能大于B的技能,A所在方得两分,A技能值等于B的话,给得一分,输了不得分,问A方最多能得多少分。 这题贪心思路很多,,,但是对的没几个,,,,wa了4发都没怎么wa明白。 对于A方的几个技能值X,,,先在B中找一个小于X的最大值,,,这种关系找完后,,,在找剩下中能打成平手的。。。 // #pragma commen原创 2015-11-25 22:17:58 · 381 阅读 · 0 评论 -
lightoj1301Monitoring Processes
思路:有n个进程,开始时间s[i],结束时间t[i],我们要用监视器来监视这些进程,但是每个监视器同一时间只能监视一个进程,只有当这个监视器监视的进程结束后才能监视下一个,问需最少要多少个监视器才能监视完所有进程。 这题也是贪心,n个进程有2n个时间点,一个时间点要么是一个进程的开始,要么是一个进程的结束,开始的话就需要派监视器来监管,这个监视器有两个来源,一是前面已经监视完别的进程而空下来的,原创 2015-12-09 20:22:11 · 296 阅读 · 0 评论 -
lightoj1034 Hit the Light Switches
思路:开始想的就是普通的dfs就好了,但是样例再次神奇的过了,然后wa成傻逼了。 里面主要是有个贪心的思想,从最高的topo序开始dfs,,,,涨知识了。 // #pragma comment(linker, "/STACK:1024000000,1024000000") #include #include #include #include #include #include #原创 2015-11-16 19:53:53 · 353 阅读 · 0 评论 -
uva11997 K Smallest Sums
// #pragma comment(linker, "/STACK:1024000000,1024000000")/* 题意:有K个整数数组,包含K个元素。在每个数组中取一个元素加起来,可以得到k^k个和。 求这些和中最小的K个值 分析:这题有简化版本的,即2个整数数组A,B,包含K个元素,在每个数组中取一个元素加起 来,可以得到k^2个和,求这些和中最小的K个值。我们需要把这k^2个和组织成如原创 2015-11-09 13:56:23 · 361 阅读 · 0 评论 -
uva10720(Graph Construction)贪心+havel定理
思路:这题主要就是运用havel定理进行贪心,判断一个序列是否可图化。 // #pragma comment(linker, "/STACK:1024000000,1024000000") #include #include #include #include #include #include #include #include #include #include #inc原创 2015-10-23 10:07:08 · 476 阅读 · 0 评论 -
uva12325(greedy)
/***************************************** Author :Crazy_AC(JamesQi) Time :2015 File Name : 思路:分情况贪心; 1.N/S1 2.N/S2 3.S1,S2都非常小的时候就要比较S1 * V2 与 S2 * V1的大小了 注意,如果用一般的贪心做法会超时的;原创 2015-09-06 10:06:35 · 577 阅读 · 0 评论 -
codeforces460E(sb的贪心暴力)
/***************************************** Author :Crazy_AC(JamesQi) Time :2016 File Name : *****************************************/ // #pragma comment(linker, "/STACK:1024000000,10240原创 2016-03-25 17:08:40 · 1134 阅读 · 0 评论