摘要:
极大团。即求一个最大点集,使得点集中的任意两个点u,v至少存在u->v,或者v->u的路径。是这样做的,求出所有的联通分量,然后整个图就变成了无环图,把原来若干个点缩点,点权为分量的点数。这样相当于找一条权值最大的路径,因为无环了,所以这个可以通过先拓扑排序然后dp解决。这里重点说一下自己遇到的坑吧... 阅读全文
摘要:
题意是告诉你有n个命题,m条递推关系,表示某个命题可以推出另外一个命题。现在问你至少在增加多少个递推关系可以保证所有命题两两互推。命题为点,关系为有向边,题目转化成为至少增加多少条有向边使得整个图强连通。首先对于有向图,求出所有的联通分量,并且将所有的联通分量缩成一个点,最终得出一个无环图。在新图里... 阅读全文
摘要:
好题。给一个无向图,求最少染黑多少个点后,使得任意删除一个点,每一个点都有与至少一个黑点联通。一开始的确不知道做。看白书,对于一个联通分量,如果它有两个或以上的割点,那么这个分量中间的任何一个点都是不需要染色的。如果这个联通分量恰好有一个割点,那么这个分量需要对其中任何一个非割点染色,如果分量没有割... 阅读全文
摘要:
圆桌骑士。有的骑士之间是相互憎恨的,不能连坐,需要安排奇数个骑士围着桌子坐着,大于3个,求哪些骑士不可能安排到座位。根据给定的关系,如果两个骑士之间没有憎恨关系,那么连边。最终就是求有多少个点无法位于奇圈之内。首先求所有联通分量,对于每个连通分量二分图染色,看看是否存在一个奇圈,如果有一个,那么这个... 阅读全文
摘要:
求掷骰子n次,点数之和超过m的概率有多大?分数表示。两种方法:1、直接DP。用两个数组分别表示分子和分母,注意计算过程中时时约分。2、将(x1+x2+x3+x4+x5+x6)n多项式展开,把大于m的幂的系数累加,比上所有项系数的总和就是答案了。这个理解也很容易。召唤代码君:#include #inc... 阅读全文
摘要:
给你一个无向图,求至少加入多少条边,使得整个图是双联通的。通过枚举题意,发现重边是不算的,直接去掉。首先把那些边是桥计算出来,把位于同一个连通分量里面的点缩成一个点(并查集),然后计算缩点后有多少个点的度数为1,只要处理这些点就好了。每次处理连接任意两个度数为1的点,增加一个联通分量,这样总共只要连... 阅读全文
摘要:
此题不错。给你一些字字符,要求你用这些字符构成一个回文串,求字典序第k大的回文串。首先通过给定的字符,我们可以直接判断能否构成回文串(奇数的字符不超过一种),其次可以统计每个字符在回文串的左边应该出现多少次。然后从左到右判断每一位应该放那个字母,一边放置一遍更新即可。我仅判断奇数次的个数为奇偶就ac... 阅读全文
摘要:
感觉这套比赛题目比较容易,没有以前做过的某次codechef那么凶残。题目还是很有意思的,最好的是有中文翻译。CSUB:签到题,直接从左往右扫一遍即可,维护前面出现过多少个1.#include #include #define maxn 100100using namespace std; char... 阅读全文
摘要:
题目很好很有意思。告诉你n个序列中,任意一个连续子序列的和与0相比较的结果。构造一个满足条件的序列。对于从x->y这一段的和,如果大于0,那么sum[x]>sum[y-1],显然我们可以得到每一个sum的大小关系。由于这个满足条件的sum关系已经考虑了所有的源系列的大小关系,所以只要我们生成了一个满... 阅读全文
摘要:
很简单,求欧拉回路。并且输出。只重点说一下要用栈来控制输出。为啥,如图:如果不用栈,那么1->2->3->1就回来了,接着又输出4->5,发现这根本连接不上去,所以如果用栈的话,就会保存一条完整的路径咯。因为是无向图,只要满足每个点的度数都是偶数的话就一定存在合法的欧拉回路了。召唤代码君:#incl... 阅读全文