bzoj1266
    
                
摘要:第一问不谈, 第二问首先我们要找出哪些是s到t的最短路上的边 由于是无向图,首先正反两遍最短路,求出是s到任意点的距离,任意点到t的距离(即t到任意点的距离); 然后穷举每条边判断是否在最短路上用d[x,y]表示x到y的最短路 则要满足d[s,x]+w(x,y)+d[y,t]=d[s,t], 然后以
        
阅读全文
                    posted @ 
2014-05-30 21:45 
acphile
        
阅读(194) 
         
        推荐(0)     
                 
                
                
    bzoj1497
    
                
摘要:这道题让我涨姿势了 对于这类问题,我们称作最大权闭合图问题 就是每个点都有一个点权,要求选择一个点集,其中每个点的指向的点也在点集中,使这样一个点权和最大 对于这种问题,我们添加源点s,汇点t 对于点i,如果点权w是正的,我们连边s >i,流量为w 如果点权w是负的,我们连边i >t,流量为-w 然
        
阅读全文
                    posted @ 
2014-05-27 22:42 
acphile
        
阅读(326) 
         
        推荐(0)     
                 
                
                
    bzoj1412
    
                
摘要:比较裸的最小割 注意狼和羊的领地可以通过空地相连 1 const inf=100000007; 2 dx:array[1..4] of integer=(0,0,1,-1); 3 dy:array[1..4] of integer=(-1,1,0,0); 4 5 type node=record 6
        
阅读全文
                    posted @ 
2014-05-27 22:31 
acphile
        
阅读(137) 
         
        推荐(0)     
                 
                
                
    bzoj3156
    
                
摘要:斜率优化dp,比较裸 注意int64的运算 1 var f,a,q:array[0..2000010] of int64; 2 i,n,h,t:longint; 3 x,y,z:int64; 4 5 function g(j,k:int64):double; 6 var p,q:double; 7 
        
阅读全文
                    posted @ 
2014-05-27 22:30 
acphile
        
阅读(184) 
         
        推荐(0)     
                 
                
                
    JSOI2014第三轮总结
    
                
摘要:这次发挥的比上次好很多 毕竟这次的话好歹上100了,也不是特别丢人 但更主要的是,该得的分没有丢(不禁想到了R1的线段树和R2的网络流,可惜啊) 不会做的题目积极去骗分了(如D1T1,2和D2T1) 首先考试给了我这么几个启示 引用XHR的话,“数据是死的,人是活的,出题人是懒的。” 像这次,D1 
        
阅读全文
                    posted @ 
2014-05-18 15:38 
acphile
        
阅读(356) 
         
        推荐(0)     
                 
                
                
    bzoj1855
    
                
摘要:让我们继续练习dp 首先这道题约束条件很多 但实际上方程还是很好写的,f[i,j]表示第i天时拥有j只股票的最大收益 令p=max(0,i-k-1) 上一次较交易 易得f[i,j]=max(f[i-1,j],f[p,j-b]-ap[i]*b,f[p,j+s]+bp[i]*s) b<=as[i],s<
        
阅读全文
                    posted @ 
2014-05-15 19:15 
acphile
        
阅读(215) 
         
        推荐(0)     
                 
                
                
    bzoj1044
    
                
摘要:好题 第一问不难,毕竟二分答案类的题目在USACO上都练了好多遍了 第二问充分的暴露了我dp渣的本性 一开始楞是没想出来 f[i,j]表示到第i根木棒切了j刀满足最长段小于等于ans的方案数 式子是这样的f[i,j]=sigma(f[k,j-1]) if sum[i]-sum[k]<=ans 然后发
        
阅读全文
                    posted @ 
2014-05-15 13:26 
acphile
        
阅读(132) 
         
        推荐(0)     
                 
                
                
    初探数位dp
    
                
摘要:数位dp有着很明显的特点,一般来说是给定区间[l,r]求满足某种条件区间中的数有多少个 朴素解法一般是O(n)的而n往往很大(10^8起步) 这时候我们就要想办法优化,于是就有了数位dp 数位有两个基本的原则 对于区间数的个数,我们转化为前缀和做(即ans=sum(r)-sum(l-1)) 逐位确定
        
阅读全文
                    posted @ 
2014-05-13 22:08 
acphile
        
阅读(194) 
         
        推荐(0)     
                 
                
                
    poj3692
    
                
摘要:首先这道题很容易想到二分图相关(给的很明确了); 但是我们发现,男孩之间都互相认识,女孩之间也互相认识 这样是不能划分点集的 但是男孩之间都互相认识,女孩之间也互相认识,所以男孩和男孩,女孩和女孩之间不存在不认识关系; 如果以不认识作为边的话,这样不就能划开点集吗? 于是我们换一个思维,要找最多的男
        
阅读全文
                    posted @ 
2014-05-11 15:18 
acphile
        
阅读(191) 
         
        推荐(0)     
                 
                
                
    poj3216
    
                
摘要:这是一道描述非常不清楚的题目 首先解释一下,题目中的ti是任务开始时间不是结束时间, 然后维修人员可以理解为可以再任意时间从公司出发; 好,首先不难想到用floyd预处理一下; 然后我们把每个任务看成一个点,显然有些维修员完成一个任务后还可以接着完成别的任务; 这样我们就可以构造出一张有向无环图; 
        
阅读全文
                    posted @ 
2014-05-11 15:07 
acphile
        
阅读(203) 
         
        推荐(0)     
                 
                
                
    bzoj2150,poj1422,poj1548
    
                
摘要:其实吧,bzoj2150还是比较水的, 在你知道什么是最小路径覆盖的前提下; 最小路径覆盖就是在有向无环图中,每个点只能被一条路径关联,问最少有多少条路能覆盖这个图 方法是,把对于原图每个点我们拆成左右两个点i1,i2,对于每条边i >j,那么我们连i1,j2之间连一条边 然后就是二分图,ans=原
        
阅读全文
                    posted @ 
2014-05-11 14:59 
acphile
        
阅读(273) 
         
        推荐(0)     
                 
                
                
    差分约束系统小探(未完)
    
                
摘要:之前看听zyh讲了一下差分,没大懂; 后来稍微研究了一下,大概懂了一些; 这应该是线性规划的一种,大概是 给定一堆形如xj-xi<=wij的约束条件,要求我们满足条件的最优值(最大或最小) 整理一下这个式子,得到xi+wij>=xj 发现这个东西很像spfa中的三角不等式(松弛操作) 于是我们可以构
        
阅读全文
                    posted @ 
2014-05-06 18:17 
acphile
        
阅读(157) 
         
        推荐(0)     
                 
                
                
    bzoj1856
    
                
摘要:这是一道无比涨姿势的题目 首先总结一下这种输入几个数的题目, 一般不是递推就是数学题 显然,这道题用递推是无法做到O(n)的复杂度的 那我们就考虑这是一道数学题了 我已开始纠结在正向思维了,正向求好像确实不容易; 某牛的报告点醒了我,我们设符合条件的序列为x,不符合的为y 则x+y=c(n+m,n)
        
阅读全文
                    posted @ 
2014-05-04 22:06 
acphile
        
阅读(232) 
         
        推荐(0)     
                 
                
                
    bzoj1305
    
                
摘要:让我们继续来练网络流; 很明显是一个最大流的问题; 二分枚举最多次数m,然后最大流判定; 具体就是男生女生都拆成两个点i1,i2,之间连一条流量为k的边(男生i1-->i2,女生i2-->i1); i2连不喜欢的人,i1连喜欢的人 最后,男生i1连源点流量为m,女生i1连汇点流量为m 最后判断最大流
        
阅读全文
                    posted @ 
2014-05-04 21:45 
acphile
        
阅读(195) 
         
        推荐(0)     
                 
                
                
    bzoj2456
    
                
摘要:有趣的题目 空间1mb,所以开数组的算法就不要想了(我一开始没看到……) 仔细读题,然后发现这里他限定众数为出现超过n div 2次 也就是说,这个数可以对应每一个不相同的数消掉,最终还剩下这个数 也就是说,我们遍历,遇到不相同的就两两抵消,最终剩下的一定是ans 得解, 1 var n,i,s,a
        
阅读全文
                    posted @ 
2014-05-02 23:59 
acphile
        
阅读(139) 
         
        推荐(0)     
                 
                
                
    逆序对的相关问题:bzoj1831,bzoj2431
    
                
摘要:先从简单一点的bzoj2431入手; n个数1~n已经限定了,所以 对于1~i-1,新加入i,最多可以增加i-1个逆序对,最少增加0个逆序对 f[i,j]表示1~i形成的序列逆序对为j的方案数 比较容易得出f[i,j]=Σf[i-1,k]; 用前缀和优化即可 1 const mo=10000; 2 
        
阅读全文
                    posted @ 
2014-05-02 23:56 
acphile
        
阅读(180) 
         
        推荐(0)     
                 
                
                
    bzoj3211,bzoj3038
    
                
摘要:线段树的裸题; 但是操作很奇怪,开方是不能lazy tag的 看来只能暴力修改了 但注意,开放开到1的时候就不用开,立一个flag就可以了 这可以大大的优化; 其实我是来复习线段树的 1 var tree:array[0..400010] of int64; 2 lazy:array[0..4000
        
阅读全文
                    posted @ 
2014-05-02 23:43 
acphile
        
阅读(198) 
         
        推荐(0)     
                 
                
                
    bzoj1066
    
                
摘要:练了这么久,应该就成了裸的最大流了吧 不1Y对不起自己 1 const inf=1000007; 2 type node=record 3 next,point,flow:longint; 4 end; 5 6 var edge:array[0..200010] of node; 7 a:array
        
阅读全文
                    posted @ 
2014-05-02 20:30 
acphile
        
阅读(175) 
         
        推荐(0)     
                 
                
                
    bzoj2668
    
                
摘要:对于这种题很容易看出是费用流吧…… 但这道题不容易建模; 首先是怎么表示目标状态和其实状态,看起来有黑有白很复杂 但实际上,不难发现,白色格子没什么用,起决定作用的是黑格子 也就是我们可以把问题简化:我们怎么把开始的黑格子移到目标位置 但这个移动不是一般的移动; 在一条路径中,不难发现,起始两点是只
        
阅读全文
                    posted @ 
2014-05-02 20:29 
acphile
        
阅读(301) 
         
        推荐(0)