
二分
取竹
Hai capito?
展开
-
[bzoj] 1082: [SCOI2005]栅栏
预处理掉无用状态,二分查找可以切出多少木板。dfs搜索可行性,加上剪枝优化。 #include #include using namespace std; int n,m,tot,ans,l,r,mid; int a[55],b[1005],sl[1005],bl[1005]; bool f; long long sum; void dfs(int ak,int bk,int w) {原创 2017-05-23 21:16:57 · 295 阅读 · 0 评论 -
[bzoj]1046: [HAOI2007]上升序列
题目要求我们求出以每个数开头的最长上升序列,那么我们就倒着做最长下降序列。 best[i]数组记录以i开头的最长上升序列的最大值。 处理时记得是位置的字典序。 #include using namespace std; const int N=100005; int n,cnt,m; int a[N],f[N],best[N]; inline int find(int x) { int原创 2017-06-29 21:36:32 · 234 阅读 · 0 评论 -
[bzoj]4590: [Shoi2015]自动刷题机
二分答案,暴力验证。找到一个最小满足的值与一个最大满足的值。 记得最后判断二分的是否正确。 #include #include #define ll long long using namespace std; int n,k; ll w[100005]; ll sum,x,y; inline ll pd(ll x) { register int i; ll now=0,ret=0;原创 2017-07-06 21:43:36 · 395 阅读 · 2 评论