随笔分类 -  贪心

摘要:NOIP2012 疫情控制 题解(LuoguP1084) 不难发现,如果一个点向上移动一定能控制更多的点,所以可以二分时间,判断是否可行。 但根节点不能不能控制,存在以当前时间可以走到根节点的点,可使向下走到深度为2的节点控制 其他点,此时又可以进行另一个贪心,优先选择走到根节点还能再走的时间小的去 阅读全文
posted @ 2017-10-24 19:33 chwhc 阅读(171) 评论(0) 推荐(0)
摘要:Sorting a Three Valued Sequence IOI'96 Day 2 Sorting is one of the most frequently performed computational tasks. Consider the special sorting problem 阅读全文
posted @ 2017-10-20 20:33 chwhc 阅读(231) 评论(0) 推荐(0)
摘要:"原题链接" 经典贪心,转化为问题为,对于所有的区间,求最小的点数能使每个区间都至少有一个点。 cpp include include include include include include using namespace std; const int MAXN=100000+5; cons 阅读全文
posted @ 2017-10-17 17:10 chwhc 阅读(144) 评论(0) 推荐(0)
摘要:拦截导弹 题意:求最长不上升子序列长度;求一个序列最少分成几个非增子序。 第一问易求,已知序列a,令f[i]为a前i个元素的最长非增子序的长度,则有 f[i]=max{f[i],f[j]+1} (1=h[i]). LIS另有nlogn做法,设g[i]为长度为i的最长不上升结尾最小是什么,二分查找更新 阅读全文
posted @ 2017-10-17 13:23 chwhc 阅读(167) 评论(2) 推荐(0)
摘要:一开始是不会的,不知道如何处理相等的情况,瞎贪心一直WA。 于是就递归处理是让相等的平局还是输掉,如下,拿到了50分。 cpp int solve(int a,int b,int i,int l,int r) { int ans=0; for(;ib[l]) ans+=2,++l; else if( 阅读全文
posted @ 2017-10-17 07:56 chwhc 阅读(113) 评论(0) 推荐(0)