上一页 1 ··· 7 8 9 10 11 12 13 14 15 ··· 25 下一页

bzoj 1150 贪心

摘要: 首先选取的线段一定是相邻两个端点线段,那么我们贪心的考虑这个问题,我们先在这n-1条线段中选出最短的一条,然后将这条线段的值改为左面的线段的值+右面的线段的值-自己的值,用这条线段取代原来这三条线段,继续做,那么这个取m次出来之后的就是答案,对于证明,我们可以大概的去想,选了新的线段代表不选这条原本的线段,然后选另两条相邻的线段,这样选的线段的条数只是+1,相当于又取了一条线段,正确性的证明可以大概感知。 至于选最小的用堆来维护就行了,因为需要删除精确到点编号,对堆用的不熟悉,所以用sbt代替。/********************************************... 阅读全文
posted @ 2014-01-20 16:47 BLADEVIL 阅读(660) 评论(0) 推荐(0) 编辑

bzoj 1412 最小割 网络流

摘要: 比较明显的最小割建模,因为我们需要把狼和羊分开。 那么我们连接source和每个羊,流量为inf,代表这条边不能成为最小割中的点,同理连接每个狼和汇,流量为inf,正确性同上,那么对于每个相邻的羊和狼,连接边,流量为1,代表隔开这两个点需要1的代价,对于每个空地和狼或者羊,连接边,流量为1,代表隔开这个两个点的代价为1,同时需要注意的是,对于空地之间的连边也应该是1,因为很有可能狼和羊通过空地相遇。这样做最大流就行了。 反思:手残将空地之间的连成inf了。。。/************************************************************** ... 阅读全文
posted @ 2014-01-17 12:49 BLADEVIL 阅读(404) 评论(0) 推荐(0) 编辑

bzoj 3212 线段树

摘要: 裸的线段树/************************************************************** Problem: 3212 User: BLADEVIL Language: Pascal Result: Accepted Time:100 ms Memory:19756 kb****************************************************************/ //By BLADEVILtype rec =record ... 阅读全文
posted @ 2014-01-15 19:16 BLADEVIL 阅读(348) 评论(0) 推荐(0) 编辑

bzoj 1942 斜率优化DP

摘要: 首先我们贪心的考虑,对于某一天来说,我们只有3中策略,第一种为不做任何行动,这时的答案与前一天相同,第二种为将自己的钱全部换成a,b货币,因为如果换a,b货币,代表在之后的某一天卖出去后会赚钱,那么当时手中的a,b货币越多,盈利越多,所以全买。第三种策略为将自己的货币全部卖出,贪心正确性和第二种类似。 那么我们设w[i]为到第i天,手中最多有多少钱,那么就可以比较容易的列出转移方程w[i]=max(w[i-1],第j天将所有的货币卖出,第i天卖掉的钱),这样的时间复杂度为n^2,显然不能通过全部测试数据,那么我们考虑优化。 w[i-1]比较容易考虑,那么我们现在要求的就是对于固定的i,... 阅读全文
posted @ 2014-01-14 17:16 BLADEVIL 阅读(313) 评论(0) 推荐(0) 编辑

bzoj 1876 高精

摘要: 首先我们知道,对于两个数a,b,他们的gcd情况有如下形式的讨论 当a为奇数,b为偶数的时候gcd(a,b)=gcd(a div 2,b) 当b为奇数,a为偶数的时候gcd(a,b)=gcd(a,b div 2) 当a为偶数,b为偶数的时候gcd(a,b)=2*gcd(a div 2,b div 2) 当a为奇数,b为奇数的时候,根据欧几里德定律,有gcd(a,b)=gcd(a-b,b)(a>b)时 那么这道题就变成了不断地缩小a,b的范围了。直接高精就行了。当然数据为1,10^1000的时候会tle,题目比较良心没有这样的数据。高精写渣了。/******************... 阅读全文
posted @ 2014-01-13 15:54 BLADEVIL 阅读(369) 评论(0) 推荐(0) 编辑

bzoj 1880 最短路

摘要: 我们首先知道,答案肯定是最短路图中的某段公共链,那么设(x,y)为x到y的最短路,那么答案为((s1,t1)+(s2,t2)-min((s1,s2)+(t1,t2),(s1,t2),(s2,t1))) div 2,这两种情况分别可以画成下面的图 这样就可以十分明显的看出了。因为中间的一段算了两遍,所以要div 2。/************************************************************** Problem: 1880 User: BLADEVIL Language: Pascal Result: Accepted ... 阅读全文
posted @ 2014-01-13 09:17 BLADEVIL 阅读(272) 评论(0) 推荐(0) 编辑

斜率优化DP讲解

摘要: 对于斜率优化的DP转移方程,一般以w[i]=max(w[j]+(sum[i]-sum[j])*v)的1D1D形式为主,直观看来就是前j个为若干个阶段,第j+1到第i个为一个阶段,每个阶段有自己的代价或价值。 我们从一道题来入手,bzoj 1911 http://61.187.179.132/JudgeOnline/problem.php?id=1911这是一道典型的斜率优化题,作为练手的入门题再适合不过。 这道题的大概意思为将1-n个数划分为若干区间,每个区间有一个价值=a*Σ(a[i])^2+b*Σ(a[i])+c,最后使代价和最大。 设前缀和为sum,那么很容易写出转移方程w[i... 阅读全文
posted @ 2014-01-12 22:00 BLADEVIL 阅读(946) 评论(0) 推荐(1) 编辑

bzoj 1996 DP

摘要: 我们可以发现,对于最后队列的一段区间[i,j],不论这一段区间如何插入,除了最后一个插入的对象外,剩下的对后续插入没有影响,这启发我们可以用DP来解决这一问题。 w[i][j][0..1]代表区间[i,j],最后一个插入的元素是i(0)或者j(1)的方案数,那么就可以根据判断当前插入元素与上一元素的大小关系很容易的转移了。 /************************************************************** Problem: 1996 User: BLADEVIL Language: Pascal Result: Acc... 阅读全文
posted @ 2014-01-11 21:16 BLADEVIL 阅读(236) 评论(0) 推荐(0) 编辑

bzoj 1083 最小生成树

摘要: 裸的最小生成树。/************************************************************** Problem: 1083 User: BLADEVIL Language: Pascal Result: Accepted Time:44 ms Memory:344 kb****************************************************************/ //By BLADEVILvar n, m :longint; ... 阅读全文
posted @ 2014-01-11 19:32 BLADEVIL 阅读(173) 评论(0) 推荐(0) 编辑

bzoj 2039 最小割模型

摘要: 比较明显的网络流最小割模型,对于这种模型我们需要先求获利的和,然后减去代价即可。 我们对于第i个人来说,如果选他,会耗费A[I]的代价,那么(source,i,a[i])代表选他之后的代价,如果不选他,我们会产生Σw[i][j] 1b then min:=b else min:=a;end;procedure connect(x,y,z:longint);begininc(l);pre[l]:=last[x];last[x]:=l;other[l]:=y;len[l]:=z;end;procedure init;vari, j :longint;x :longint;sum :longi... 阅读全文
posted @ 2014-01-11 09:03 BLADEVIL 阅读(374) 评论(0) 推荐(0) 编辑
上一页 1 ··· 7 8 9 10 11 12 13 14 15 ··· 25 下一页