上一页 1 2 3 4 5 6 7 8 9 ··· 30 下一页

2015年4月2日

hdu4612 在无向图中加一条边使桥最少 :tarjan预处理求桥/缩点/树直径

摘要: 很显然加在缩点后的树直径首尾可以最大限度减少桥的数量==所以就是个无向图tarjan求桥和bfs求树直径裸题了明天继续看TUT 1 #pragma comment(linker,"/STACk:10240000,10240000") 2 #include 3 #include 4 #incl... 阅读全文

posted @ 2015-04-02 00:50 xiao_xin 阅读(158) 评论(0) 推荐(0) 编辑

2015年4月1日

hdu2460 tarjan无向图边双连通分量(桥)+lca

摘要: 题意需要求出每加一条边求出桥的数目,因为询问数不多,所以可以在tarjan预处理之后在每个询问后面暴力查询lca=和有向图强连通分量差不多,反正都是tarjan搞的TUThdu又需要手动扩栈== 1 #pragma comment(linker,"/STACk:10240000,10240000")... 阅读全文

posted @ 2015-04-01 18:56 xiao_xin 阅读(143) 评论(0) 推荐(0) 编辑

2015年3月31日

poj2762 Going from u to v or from v to u? (tarjan求有向图强联通分量/缩点)

摘要: 本来准备回去了,想想看了一晚上,还是过一个模板题吧==这题比赛时候其实就有思路了,就是将强连通分量缩点成一个DAG,然后判断是否成一条链,会个tarjan就是裸题啊==不说了图论实在太弱,tarjan竟然刚学,放个模板明天继续学图论= 1 #include 2 #include 3 #include... 阅读全文

posted @ 2015-03-31 01:36 xiao_xin 阅读(128) 评论(0) 推荐(0) 编辑

2015年3月29日

hdu5195 n个点m条边最多删k个边尽量使某种拓扑序最大:贪心+优先队列

摘要: 比赛时总感觉很混乱,其实昨天晚上仔细一想就很简单了==首先,我是知道我要拿最大id点且入度小于等于k的,那就拿,继而,需要将他相连边全部入度-1,如果入度小于等于k加入优先队列一直到队列为空,类似bfs那样找,代码实现也比线段树好多了==心塞,本来手速过A分挺高,手贱hack又是一夜回到解放前,又掉... 阅读全文

posted @ 2015-03-29 23:50 xiao_xin 阅读(270) 评论(0) 推荐(0) 编辑

邀请赛前计划(更新于3.29)

摘要: 算法继续(图+树): 数论:莫比乌斯反演 图论:强联通tarjan,最小费用流,2-SAT,DLX (再不学图论真要弱到爆炸了) 数据结构:树相关(划分树,伸展树spaly,动态树lct,平衡树treap,树的重心和直径)近期比赛又有好多呀== 阅读全文

posted @ 2015-03-29 01:16 xiao_xin 阅读(108) 评论(2) 推荐(0) 编辑

2015年3月28日

CodeForces 268D Wall Bars :n层的梯子,每层四个方向只能选择一个方向搭建梯子,爬梯只能一个方向,最高不能爬超过h,问使能爬上梯顶的方案 :dp

摘要: dp好题啊!首先如何暴力的去做?dp[now][i][j][k][l]表示当前爬到now层,四个方向分别距离当前层为i j k l的方案,原来大于等于h的直接赋为h这样就能直接递推,复杂度1000*30*30*30*30,妥妥的T 1 #include 2 #include 3 #include 4... 阅读全文

posted @ 2015-03-28 01:59 xiao_xin 阅读(177) 评论(0) 推荐(0) 编辑

CodeForces 148D Bag of mice :w个白鼠和b个黑鼠,公主和龙随机轮流取鼠,龙取完会随机掉出一个鼠,谁先拿到白鼠谁赢问公主赢概率 :概率dp

摘要: 我写的dp方程比较繁琐了,是很自然的想到的,应该有更优的转移方案==dp[i][j][k1][k2] 表示若有i个白鼠j个黑球: dp[i][j][0][1]:公主先走赢得概率 dp[i][j][0][0]:公主先走输的概率 dp[i][j][1][1]:龙先走赢得概率 dp[i][j][1... 阅读全文

posted @ 2015-03-28 01:43 xiao_xin 阅读(195) 评论(0) 推荐(0) 编辑

CodeForces 283B Cow Program :给定数组2-n的值,每次变化1的值,按照向佐向右轮流方向走,对于每次变化输出走出数组时走的路长 :记忆化dfs

摘要: 对于2-n每个点记录向左向右走完接下来要走的路长为什么可以搜?因为只变化第一个而每次又从第一个走,那我们显然只需要记录每个点向左向右两种值要记得每次搜索都要初始1节点向右为没走过== 1 #include 2 #include 3 #include 4 using namespace std; 5 ... 阅读全文

posted @ 2015-03-28 01:23 xiao_xin 阅读(214) 评论(0) 推荐(0) 编辑

CodeForces 274B Zero Tree :每次选包含1节点的一棵子树,将该子树所有值都+1或者-1最少多少步可以使树值全部为0 :树型dp

摘要: 将1设为树根节点,接下来就好想了,因为更新一个点对应到1的路全部都要更新对于一个节点u,dfs他的所有儿子节点,返回最大需要+1的操作和最大需要-1的操作再接合自身返回给父亲节点+1 -1的最大操作最后结果就是1节点+1和-1的最大操作和 1 #include 2 #include 3 #inclu... 阅读全文

posted @ 2015-03-28 01:12 xiao_xin 阅读(676) 评论(0) 推荐(0) 编辑

CodeForces 364B Free Market :每次可以从已有商品换取高于价值不超过d的没有选过的价值,选最高价值 :dp/贪心

摘要: 题目中规定要换来的物品必须要是目前没有的=其实如果有重复的就可以把重复的去掉。。所以是等价的所以可以在输入的时候预处理取与不取当前值能拿到的值放入dp中然后在0的基础上一直寻找最大可交换的物品,一直到找不到结束== 1 #include 2 #include 3 #include 4 using n... 阅读全文

posted @ 2015-03-28 00:24 xiao_xin 阅读(174) 评论(0) 推荐(0) 编辑

上一页 1 2 3 4 5 6 7 8 9 ··· 30 下一页

导航