摘要: 百度百科关于LCA的解释:LCA(Least Common Ancestors),即最近公共祖先,是指在有根树中,找出某两个结点u和v最近的公共祖先。(有多种变型例如求两点间的距离如HDU2586,求最大公共的长度如CodeForces - 832D 等等) 题目: POJ 1984 HDU 258 阅读全文
posted @ 2018-03-05 23:57 采蘑菇的小西佬 阅读(1802) 评论(6) 推荐(1) 编辑
摘要: 传送门:CodeForces - 938D 题意:n个城市,m条路,每条路都有自己的花费,每个城市看演唱会也有自己的花费,问从每一个城市到另一个城市(或就在自己城市)看演唱会的最小花费 题解:迪杰斯特拉,跑多源(每个源有权值)最短路。和一般的跑法不一样,要先给每个dis[]赋值成源的权值然后扔进di 阅读全文
posted @ 2018-03-03 13:36 采蘑菇的小西佬 阅读(213) 评论(0) 推荐(1) 编辑
摘要: 传送门:CodeForces - 937D 题意:两人进行一场走棋子的游戏,如果有人无法再继续走下去,那么他就输了。Petya先走,且如果petya的胜负优先级为:WIN>DRAW>LOSE。(即能赢就让他赢,不能赢就尽可能的平局,实在不行就输) 题解:先dfs搜索,开二位数组vis[][]第一维表 阅读全文
posted @ 2018-03-03 08:16 采蘑菇的小西佬 阅读(201) 评论(0) 推荐(0) 编辑
摘要: A 逆序数 题解:用树状数组进行计算有多少个前面比他大的数,只需要getsum(MAX)-getsum(a[i]),getsum(MAX)得到的是当前a[i]及出现在之前所有的数的个数,getsum(a[i])得到的是比a[i]在a[i]之前小于等于它的数的个数,相减就是比它大的个数; 1 #inc 阅读全文
posted @ 2018-02-26 16:11 采蘑菇的小西佬 阅读(155) 评论(0) 推荐(0) 编辑
摘要: 传送门:Poj 2186 题意:给你n头牛,m种关系,A牛认为B牛是popular的,B牛认为C牛是popular的,则A也认为C是popular的,问最终有几头被所有牛认为是popular的牛 题解:强连通缩点基础题(虽然我Tarjan和缩点都是对的,但是最终讨论判断的时候写垮了(写了3天。。。。 阅读全文
posted @ 2018-02-17 22:36 采蘑菇的小西佬 阅读(136) 评论(0) 推荐(0) 编辑
摘要: Hdu 1083 题意:给你一个p表示测试组数,给你n和m表示课的个数和学生的个数,接下来n行首数字i表示该堂课的学生代表人数,之后为i个学生编码,问能否为每堂课找到一个学生课代表且不冲突; 题解:匈牙利算法模版 另附简单易懂匈牙利算法讲解:传送门 阅读全文
posted @ 2018-02-12 15:57 采蘑菇的小西佬 阅读(164) 评论(0) 推荐(0) 编辑
摘要: Poj 1200 题意:给你一个n和m以及一个有m个不同字母组成的字符串,问有多少个长度为n的不同字符子串; 题解:以m为进制进行Hash。虽然是看了解题报告才会的但必须要理解并且学会运用:https://www.cnblogs.com/gj-Acit/archive/2013/05/15/3080 阅读全文
posted @ 2018-02-06 21:57 采蘑菇的小西佬 阅读(146) 评论(0) 推荐(0) 编辑
摘要: #include #include #include using namespace std; const int N=220010; using namespace std; char str[N]; char tmp[N]; int len[N]; int init(){ tmp[0]='$'; int i=0,nlen=1; while(str[i]!='\0'){... 阅读全文
posted @ 2018-02-05 19:59 采蘑菇的小西佬 阅读(89) 评论(0) 推荐(0) 编辑
摘要: Hdu 3374 题意:给你一个字符串,让你输出它移位后最小字典序的rank和循环节个数,最大字典序的rank和循环节个数。 题解:循环节好找,只要判断len%(len-nx[len])是否等于0,如果等于0说明含有循环节,则ans=len%(len-nx[len]),否则ans=1(即循环节为一整 阅读全文
posted @ 2018-02-04 21:48 采蘑菇的小西佬 阅读(132) 评论(0) 推荐(0) 编辑
摘要: Uva 10305 阅读全文
posted @ 2018-02-04 20:30 采蘑菇的小西佬 阅读(115) 评论(0) 推荐(0) 编辑