摘要:
题意:给出一个n个顶点m条边的无向图,并给出两个点s,t和对应的度数,要求将图转变为一颗生成树,并且s,t的度数要满足要求。要点:生成树也就是把原图的边减少至n-1条边,并且所有的点都连通。这题的思路是将st除去的图进行连通操作,然后此时这些连通块可以分为二种:1.只... 阅读全文
摘要:
第一次打线上赛,1456分来着,感觉自己模拟题做的不怎么样,总是想复杂,而且写代码慢的要死,这套题说实话还算简单,但只A了两道,其他的题都很基础,这题欧拉通路我刚好不会,所以写一下。题意:n个城市之间m条双向道路,现在把双向道路变成单向,求让出入度相同的城市最多的路线... 阅读全文
摘要:
这套div2的题感觉难度比较低A:水题B:博弈论,但是很简单。最终必须把所有的数分解为1,所以只有考虑每个数要分解a[i]-1次,每次sum累加模2进行判断即可C:这题是div2的C题但是div1的A题,一不小心做了div1去了。题意:手机的app有通知,现在有n个a... 阅读全文
摘要:
题意:给出一些字母和这些字母之间的大小关系,要求输出所有满足大小的序列。要点:这题其实跟拓扑排序关系不是很大了,主要是输出所有序列比较麻烦,注意题目要求要输出所有的字母,也即是没有在大小关系中出现的字母可以插在任意位置上。我们可以这么想:所有当前入度为0的点可以作为起... 阅读全文
摘要:
题意:给出一系列石子堆,现在每次只能从一个堆中拿出固定石子数,问输赢结果。要点:跟Nim博弈很像,但是这次每次只能拿固定个数,所以要用sg函数,下面是sg函数的具体定义:sg(x) = mex ( sg(y) |y是x的后继结点 )其中mex(x)(x是一个自然是集合... 阅读全文
摘要:
题意:给出一个n*m的棋盘,在上面放k个棋子,求第一行,第一列,最后一行,最后一列每个都有棋子的组合数。要点:简单的容斥原理,对第一行,第一列,最后一行,最后一列没有棋子进行容斥,这样最后减去即可。注意进行容斥时如果是相减的可能出现负数,所以在前面+MOD。#incl... 阅读全文
摘要:
题意:有一个杨辉三角,现在从顶点到第n行第k列,只能向下或向右下,问最短路径和模p的值。要点:如果n>2*m,此时一直往斜左上走到边界,再一直向上,这样最短,权值总和为C(n+1,m)+(n-m);如果n#include#includeusing namespace ... 阅读全文
摘要:
题意:给出一个值n,问有几种不同的拆分方法。要点:可以用母函数或DP来做,这里说一下母函数,基本思路是:写成(1+x^2+x^3+x^4……x^n)*(1+x^2+x^4+……)*(1+x^3+x^6+……)……这样,然后利用循环从每个括号开始算起,用c1存储前一次算... 阅读全文
摘要:
这比赛比较坑啊,看了一下A题过了7000+人,B题直接只剩2000+人。这套题的B题非常坑,很多陷阱。A:水题B:这题就是一个幻方,但是非常坑,有这么几个坑点:1.如果n==1,随便输出一个数即可,但不能是0;2.算出的答案必须是正整数#include#include... 阅读全文
摘要:
题意:看白书要点:求出强连通分量后缩成点,内部点数作为权,进行DAG的DP。#include#include#include#include#includeusing namespace std;const int maxn=1010;vector g[maxn],m... 阅读全文