procedure2012
It's not worth it to know you're not worth it!
摘要: APIO2012只拿回来了一个铜牌,貌似是二中的第三块APIO铜牌。这次是在清华考,终于见到了传说中的清华:从教室到食堂都要走10分钟;完全是一个大公园,绿树成荫;除了看上去很高科技的建筑就是民国几几年的建筑;饭也不错,便宜而起比二中的好多了……考前还去看了一场智能体比赛,何朴藩、杨弋、吴翼各路神牛悉数到场,比赛中间抽奖(是一个类似touch的东西),本人425号,抽出来426号,当我听到“6”时……晚上住在一个四星级的酒店里,我们四个人居然被分到3个双人间,这什么情况!我和一个石家庄二中的在一起(高一王子辰不知有没有人认识啊),晚上我们各种扯淡,各种dota,还去膜拜了一下神牛(Orz)。闲 阅读全文
posted @ 2012-05-14 22:59 procedure2012 阅读(1601) 评论(4) 推荐(0) 编辑
摘要: [关键字]:数学 矩阵乘法[题目大意]:有n个车站,k路车。每个车站只能被一路车停,且同一路车的相邻的两站之间不能超过p,求方案数。//===============================================================================================================================[分析]:首先因为同一路车的相邻的两站之间不能超过p,所以除前k个每p车站内都要有所有的公交车。这样可以p个p个的转移,用状态压缩dp,p中第一位必须被一辆车占所以方案数一共有c(9,4)=126个。首先处理出 阅读全文
posted @ 2012-04-18 16:24 procedure2012 阅读(331) 评论(0) 推荐(0) 编辑
摘要: 用斜率优化的动态规划需要满足:1、转移方程应该是这样的形式:f[i]=Max/Min{f[j]+G(j)}其中G是一个j有关系的函数(有可能包含其他未知数)。2、设Vx=f[x]+G(x),Vy=f[y]+G(y).如果在可以推出:求最大值时根据x<y&&Vx>Vy:W(x,y)<U(i)其中W(x,y)是和x、y有关的函数U(i)是只和i有关的函数且单调递增求最小值时根据x<y&&Vx<Vy:W(x,y)>U(i)其中W(x,y)是和x、y有关的函数U(i)是只和i有关的函数且单调递增快速的转移出这样的方程需要用单调队列来维 阅读全文
posted @ 2012-04-17 11:58 procedure2012 阅读(812) 评论(0) 推荐(2) 编辑
摘要: [关键字]:数学 置换群[题目大意]:给出一组置换,然后要求出把给出的文字按位置置换k此后的信息。//==========================================================================================================================================[分析]:首先求出这个置换的循环,并记录循环的长度环每个位置上的值。找到每个位置所属的循环然后它在循环中的位置加k再对循环长度取模就是它的最终位置。[代码]:View Code #include<iostream&g 阅读全文
posted @ 2012-04-17 11:40 procedure2012 阅读(181) 评论(0) 推荐(0) 编辑
摘要: [关键字]:数学 异或方程组[题目大意]:有n各工人n各水管,每个工人可以对某几个水管进行反操作(开变关关变开),问需要操作那些人才会大开所有水管。//==================================================================================[分析]:看懂题目后不难可以列出下面这个方程组: x1*a[1,1] xor x2*a[1,2] xor x3*a[1,3] xor …… xor xn*a[1,n]=1 x1*a[2,1] xor x2*a[2,2] xor x3*a[2,3] xor …… xor xn*a[2, 阅读全文
posted @ 2012-04-16 20:54 procedure2012 阅读(398) 评论(0) 推荐(0) 编辑
摘要: [关键字]:图论 网络流[题目大意]:给出一个矩阵没行和和每列的和,并给出每个格子的上下界,求出一个合法的矩阵。//============================================================================================================[分析]:就是首先建立一个图,源点到每个行的边的容量上下界都为该行的和,每列到汇点连一条容量上下界都为该列和的边,每行的点到每列的点连一条容量上下界为这一行和这一列所代表的格子的上下界。然后对着个图判断它是否有最大流并求出。对一个图求容量有上下界的最大流的方法是:1、 阅读全文
posted @ 2012-04-16 15:47 procedure2012 阅读(1487) 评论(0) 推荐(0) 编辑
摘要: [关键字]:次小生成树[题目大意]:求出给出图的最小和次小生成树。//=============================================================================[分析]:http://www.cppblog.com/MatoNo1/archive/2011/06/25/147627.html#149420讲的又清楚又详细,ORZMato大神![代码]:kurscal#include<iostream>#include<cstdio>#include<cstdlib>#include<cst 阅读全文
posted @ 2012-04-14 00:50 procedure2012 阅读(174) 评论(0) 推荐(0) 编辑
摘要: [关键字]:图论 第k短路[题目大意]:求出严格次短路。//===================================================================================[分析]:首先先说K短路的求法。利用A*去求,首先先spfa处理出T到每个点的距离作为A*中的h[],在从起点开始进行搜索,g[]是从起点到当前点已经走过的距离,f[i]=g[i]+h[i]。每次选取最小的f出队并更新其他节点。可以证明一个节点出队k次它的f值就是从s到它的第k短路的长度(非严格)。每次出队是已经出的超过k次的就忽略,如果t点出过k次就算求出了第k短路。如 阅读全文
posted @ 2012-04-14 00:39 procedure2012 阅读(265) 评论(0) 推荐(0) 编辑
摘要: [关键字]:最小生成树[题目大意]:在一个图里找到一颗生成树,要求选定一个根后从这个根到每一个点都走一边每经过一个点i需要停留di分钟每条边需要ei分钟根还要额外加两遍所得值最小。//====================================================================================================[分析]:因为每加入一条边(x,y),所增加的代价就是ei+dy+ei+dx,又因为所有边都加入后作为根的那个点少加了一次为了让最终结果最小需要选取最小的点作为根并让ans加上它的权值。所以可以以权值最小的点位起点, 阅读全文
posted @ 2012-04-14 00:29 procedure2012 阅读(468) 评论(0) 推荐(0) 编辑
摘要: [关键字]:splay hash 二分[题目大意]:给出一个字符串,求出给定的两个后缀的的最长公共前缀。在求的过程中会有改变或在某个位置添加字符的操作。//============================================================================================[分析]:一听最长公共前缀马上想到后缀数组,但因为是动态维护所以后缀数组也无能为力。可以把字符串想象成一个数组,于是变成了动态插入和改变一个序列,还要能快速找到两个子区间——splay。求最长公共前缀可以用二分答案加验证的方法,二分长度先提取出这个区间然后判断 阅读全文
posted @ 2012-04-13 00:14 procedure2012 阅读(1037) 评论(0) 推荐(0) 编辑