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

spoj p104 Matrix-Tree定理

摘要: 这个问题就是经典的生成树记数问题,题目为spoj p104 highway。 首先我们引入Matrix-Tree定理,由kirchhoff证明,定理的概述为,对于图G,我们定义若干个矩阵, D[G],Dij=(i!=j)?0:vi;这里vi为节点i的度数。 A[G],Aij=存在边(u,v),即A为图G的连通01矩阵。 定义KirchhoffMatrix C[G]=D[G]-A[G],那么C[G]的任意一个n-1阶主子式的行列式的绝对值为图G生成树个数。这样这个问题就可以比较容易的解决了,行列式的求法为将矩阵用类似于消元的方法消成上三角矩阵(其实我也是记住的代码==)。... 阅读全文
posted @ 2014-02-16 23:05 BLADEVIL 阅读(312) 评论(0) 推荐(0) 编辑

bzoj 1016 深搜

摘要: 首先我们知道MST的一些性质,对于这道题来说就是,假设我们先求出一颗MST设为G,由已知边权相同的边最多会有10条,那么假设我们在这10条边中选取size条边∈G,那么我们在这边权相同的边集E中任意选取size条有意义的边,这里的有意义的边的定义为每条边都会造成新的连通性的增加,那么边集E中所有的size条有意义的边的方案我们可以通过dfs求出,然后我们将不同边权的边的方案求连乘,就是MST的方案数。 ps:我们没有必要求一遍MST,我们可以一边做kruskal,一边维护图的连通性,然后每找到一个权值不同的边集E时深搜。 反思:做dfs的时候使用并查集维护图的连通性,但是加了路径压缩,... 阅读全文
posted @ 2014-02-16 22:16 BLADEVIL 阅读(305) 评论(0) 推荐(0) 编辑

WC后记

摘要: 这次去WC本来就是抱着玩儿玩儿的心态去的,结果真算是玩儿了。。。 我们去的内天北京正好下雪,结果后来等我舅接我们去八十中的时候还在外面等了半个小时,其实雪天在外面挺好的,除了旁边都是一些男程序员。后来吃饭的时候还见到了我表姐们和表弟,好长时间没见也没怎么变。 后来就到了八十中,报道的时候排队就等了一个多小时,后来去了宿舍,开始觉得宿舍挺好的,起码还有自己的桌子,还有插头。。。然后收拾了半天之后发现没有网,然后就觉得笔记本带的多余了。。。然后去看了开幕式,最后抽奖竟然还抽到了我,给了一个8G的小U盘,听说去年的是ipad,真是感动。。。晚上回宿舍之后还好,等十一点多的时候突然灯灭了,后来... 阅读全文
posted @ 2014-02-14 15:00 BLADEVIL 阅读(357) 评论(0) 推荐(0) 编辑

bzoj 1301 后缀数组

摘要: 比较裸的后缀数组。/************************************************************** Problem: 1031 User: BLADEVIL Language: Pascal Result: Accepted Time:808 ms Memory:5304 kb****************************************************************/ //By BLADEVILvar s, str :array[0... 阅读全文
posted @ 2014-01-23 17:10 BLADEVIL 阅读(381) 评论(0) 推荐(0) 编辑

bzoj 1067 特判

摘要: 这道题的大题思路就是模拟 假设给定的年份是x,y,首先分为4个大的情况,分别是 x的信息已知,y的信息已知 x的信息已知,y的信息未知 x的信息未知,y的情况已知 x的信息未知,y的情况未知 然后对于每一种情况可以根据x到y区间是否存在空位,最大值是否唯一,以及x,y,区间最大值的关系来判定。 所以对于区间的问题的合并与处理我们用线段树来存就行了。 反思:开始对情况的优先级判断不清,没有整理好思路就开始写。最后发现线段树的合并函数写错了。/************************************************************** Pr... 阅读全文
posted @ 2014-01-22 19:27 BLADEVIL 阅读(216) 评论(0) 推荐(0) 编辑

bzoj 2819 博弈论

摘要: 我们可以把n为偶数的时候,n*n的棋盘看成若干个不相交的2*1的格子,那么对于每个2*1的格子,如果先手选了其中的一个,另一个人都可以选另一个,所以最后使先手没有可以选的格子,先手必败(这里的先手并不是原题中的先手,原题我们可以看做bob为先手,且已经选了左上的格子),否则n为奇数的时候,先手必胜。 /************************************************************** Problem: 2463 User: BLADEVIL Language: Pascal Result: Accepted Time... 阅读全文
posted @ 2014-01-20 19:27 BLADEVIL 阅读(234) 评论(0) 推荐(0) 编辑

bzoj 1022 SJ定理

摘要: 与传统的SG游戏不同的是,完成最后一个状态的人是输的,我们把这一类问题称作Anti-SG,这类问题的解决我们需要引入一个定理—SJ定理: 对于任意一个Anti-SG游戏,如果我们规定当局面中所有的单一游戏的SG值为0时,游戏结束,则先手必胜当且仅当:(1)游戏的SG函数不为0且游戏中某个单一游戏的SG函数大于1;(2)游戏的SG函数为0且游戏中没有单一游戏的SG函数大于1。 (引自2009年国家集训队论文贾志豪论文《组合游戏概述——浅谈SG游戏的若干拓展及变形》) 这样对于这个问题我们就可以很好的解决了: 1、所有堆的石子数都为1且游戏的SG值为0; 2、有些堆的石子数大于1且游戏... 阅读全文
posted @ 2014-01-20 17:38 BLADEVIL 阅读(541) 评论(0) 推荐(0) 编辑

bzoj 2151 贪心

摘要: 几乎完全类似于1150的思路,直接参考那个就行了。 http://www.cnblogs.com/BLADEVIL/p/3527193.html/************************************************************** Problem: 2151 User: BLADEVIL Language: Pascal Result: Accepted Time:3224 ms Memory:15092 kb****************************************************... 阅读全文
posted @ 2014-01-20 17:24 BLADEVIL 阅读(273) 评论(0) 推荐(0) 编辑

bzoj 1060 贪心

摘要: 设根到每个叶子节点的距离为dis,比较容易的看出来,我们需要把这颗树的所有叶子节点的值都变成其中最大的内个,我们设为max,那么对于一颗子树来说,设其中dis值最大的为x,我们需要将这个子树根节点和子树根节点的父亲节点的边的值增加max-x,这时从贪心的角度来考虑,因为不论如何,对于当前最大的这个点来说,我们都需要将他的值增加max-x,那么我们只需要让这增加的更有价值,也就是使更多需要增加的点都被增加些,那么因为不能加多,所以取得是最大的点的dis值。那么dfs一遍就行了。 反思:过程中申请变量没有赋初值。 ps:这道题的数据有问题,生成输出数据的标程没有开longlong,开的是i... 阅读全文
posted @ 2014-01-20 17:22 BLADEVIL 阅读(305) 评论(0) 推荐(0) 编辑

bzoj 1076 状压DP

摘要: 我们设w[i][s]为当前到第i关,手中的物品为s的时候,期望得分为多少,其中s为二进制表示每种物品是否存在。 那么就比较容易转移了w[i][s]=(w[i-1][s']+v[j])*(1/k),其中j为枚举当前关可能出现的物品,s‘为s的子集且s’与s只可能相差第j位的物品,且s'包括j物品的所有前提物品,因为每个物品都是随机出现的,所以乘上出现的概率(1/k),因为我们采取的是最优策略,所以对于每个物品的出现我们还需要和w[i-1][s]取一个max,代表这个物品即使我们能取,也可能不取。 /***************************************** 阅读全文
posted @ 2014-01-20 17:10 BLADEVIL 阅读(540) 评论(0) 推荐(0) 编辑
上一页 1 ··· 6 7 8 9 10 11 12 13 14 ··· 25 下一页