摘要: "原题链接" 经典贪心,转化为问题为,对于所有的区间,求最小的点数能使每个区间都至少有一个点。 cpp include include include include include include using namespace std; const int MAXN=100000+5; cons 阅读全文
posted @ 2017-10-17 17:10 chwhc 阅读(132) 评论(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 阅读(150) 评论(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 阅读(98) 评论(0) 推荐(0) 编辑