摘要: 最近状态太差,先补补结题报告吧这是一道好题设f[i,j]表示到第j个位置建了i个基站且第j个位置建了基站的最小花费不难得到f[i,j]=min(f[i-1,k]+cost[k+1,j])+c[j];首先为了方便计算假定在两端无穷远处还要建一个基站(方便统计)i我们是可以滚动的不管他,问题就是如何解决... 阅读全文
posted @ 2015-01-26 19:05 acphile 阅读(322) 评论(0) 推荐(0)
摘要: 稍微列个式子就知道是贪心 1 var w,h,c,a,f:array[0..50010] of longint; 2 m,b,h0,n,i,p,j,x,ans,s:longint; 3 4 procedure swap(var a,b:longint); 5 var c:longint... 阅读全文
posted @ 2015-01-26 19:05 acphile 阅读(169) 评论(0) 推荐(0)
摘要: 水题,画个图推一下低维的就什么都明白了从低维类推高维 1 var f:array[0..16,0..101] of int64; 2 n,m,j,i:longint; 3 4 begin 5 readln(m,n); 6 for i:=1 to n do 7 f[i,1]:... 阅读全文
posted @ 2015-01-26 19:04 acphile 阅读(143) 评论(0) 推荐(0)
摘要: 第一问类似最长上升序列,只不过因为要满足能修改所以不能直接求比如2 3 4 4 5 最长上升序列长是4,但是最少修改是2,因为一个这个最长上升序列不能保持不变因此我们对a[i]-i,然后求这个新序列ai的最长不下降序列即可第二问我们设f[i]表示以位置i结尾的最长不下降序列长度显然要满足修改最少的数... 阅读全文
posted @ 2015-01-26 19:03 acphile 阅读(176) 评论(0) 推荐(0)
摘要: 有起点终点的限制的路径覆盖首先tarjan缩点成DAG似乎不能按照二分匹配的做法做那么建立源汇拆点i,i',这两点之间连一条下界为1上界无穷的边,其它边都是下界为0,上界正无穷然后就是有源有汇的最小流,之前在bzoj2502介绍过 1 const inf=10000007; 2 type nod... 阅读全文
posted @ 2015-01-26 18:04 acphile 阅读(194) 评论(0) 推荐(0)
摘要: 水dp,状态表示三个司机当前在哪所用最小耗油,因为有一个一定在当前点所以可以压掉一维 1 var f,w,d:array[0..210,0..210] of longint; 2 a:array[0..1010] of longint; 3 x,y,i,j,k,n,ans:longint; ... 阅读全文
posted @ 2015-01-26 18:00 acphile 阅读(135) 评论(0) 推荐(0)
摘要: 水题,上trie,然后穷举每一位的时候判定一下三种编辑 1 var son:array[0..10010*20,1..26] of longint; 2 v:array[0..10010*20] of longint; 3 d:array[0..10010] of boolean; ... 阅读全文
posted @ 2015-01-26 17:59 acphile 阅读(198) 评论(0) 推荐(0)
摘要: 学习了一下可合并堆的一种写法——左偏树感觉左偏树是一种类似启发式的方法学习左偏树后这题就水过去了 1 var fa,l,r,a,d:array[0..1000010] of longint; 2 v:array[0..1000010] of boolean; 3 i,n,m,x,y,... 阅读全文
posted @ 2015-01-26 17:56 acphile 阅读(158) 评论(0) 推荐(0)
摘要: 这题做法很多可以通过类似noi超级钢琴那道题目的做法用可持久化+trie来做还可以直接在trie树上维护size域然后类似查找k大的做法做总之还是比较水的 1 type node=record 2 kth,num,ans:longint; 3 end; 4 5 v... 阅读全文
posted @ 2015-01-26 17:53 acphile 阅读(190) 评论(0) 推荐(0)