12 2018 档案

摘要:题目大意: 有N堆石子,除了第一堆外,每堆石子个数都不少于前一堆的石子个数。两人轮流操作每次操作可以从一堆石子中移走任意多石子,但是要保证操作后仍然满足初始时的条件。谁没有石子可移时输掉游戏。问先手是否必胜。 要保证序列不下降,这个条件似乎有点困难,于是我们转化一下,令数列$c$为原序列的差分序列, 阅读全文
posted @ 2018-12-18 16:19 dummyummy 阅读(236) 评论(0) 推荐(0)
摘要:如果没有做过 "修车" (本题的弱化版),可以先去做一下。 大致思路就是把每个厨师拆成$p$个点,分别代表倒数第几个做哪道菜,然后从每种菜向厨师连边,倒数第几个的边权就是几倍的等待时间,最后跑一波费用流即可。 但本题的数据范围有些残酷,所以我们考虑动态加边。最多只会跑$p$次$spfa$,并且每次走 阅读全文
posted @ 2018-12-14 08:53 dummyummy 阅读(199) 评论(0) 推荐(0)
摘要:"原题链接" 这题貌似比较水吧,最简单的拆点,直接上代码了。 cpp include using namespace std; define N 1000 define M 5000 define INF 0x3f3f3f3f define mp make_pair define pii pair 阅读全文
posted @ 2018-12-13 16:46 dummyummy 阅读(148) 评论(0) 推荐(0)
摘要:神奇的建模。。。 "原题链接" 如果你真的把交换看成交换,就$GG$了。首先我们要把交换看成是白棋的移动。 然后,很容易的就想到建模的大致思路:建立超级源点 S 和超级汇点 T ,从 S 向初始局面每个白棋所在的格子连边,从目标局面每个白棋所在的格子向 T 连边,在相邻的格子中间加一些有限制的边,跑 阅读全文
posted @ 2018-12-13 11:01 dummyummy 阅读(218) 评论(0) 推荐(0)
摘要:这题的想法真的很妙啊。 看到题的第一眼,我先想到树链剖分,并把$DFS$序当成一段区间上主席树。但是会发现在询问的时候,可能会非常复杂,因为你需要把路径拆成很多条轻链和重链,它们还不一定连续,很难做(这个做法貌似可以用于子树第$k$大问题)。 于是我们换一个思路,让某个点的从它的父亲继承信息,也就是 阅读全文
posted @ 2018-12-12 07:44 dummyummy 阅读(258) 评论(0) 推荐(0)
摘要:"原题链接" 题目大意 在一个有$n\times m$个方格的棋盘中,每个方格中有一个正整数。现要从方格中取数,使任意$2$个数所在方格没有公共边,且取出的数的总和最大。试设计一个满足要求的取数算法。对于给定的方格棋盘,按照取数要求编程找出总和最大的数。 来看看怎么建图: 首先我们把棋盘红蓝二染色: 阅读全文
posted @ 2018-12-11 07:58 dummyummy 阅读(248) 评论(0) 推荐(0)
摘要:对偶图是一种神奇的东西! 对于一个平面图$G=(V,E)$(也就是能画在平面上,且边的交点都在顶点处的图),则它的对偶图$G^ $的定义如下: 1.$G^ $的每一个顶点对应$G$中的每一个面 2.对于$G$中的边$e$,若它的两侧为两个不同的平面$f_1^ $和$f_2^ $,则在$G^ $中有一 阅读全文
posted @ 2018-12-10 20:59 dummyummy 阅读(1363) 评论(0) 推荐(2)
摘要:近几天跟着dreagonm大佬学习了$dsu\ on\ tree$,来总结一下: $dsu\ on\ tree$,也就是树上启发式合并,是用来处理一类离线的树上询问问题(比如子树内的颜色种数)的不二法宝。它不仅好想好写,还有着$O(nlogn)$的优秀时间复杂度(__划重点__)。 结合一道例题来讲 阅读全文
posted @ 2018-12-09 13:29 dummyummy 阅读(853) 评论(1) 推荐(1)
摘要:"原题" 就是让你求$\sum\limits_{i=1}\sum\limits_{j=1}d(ij)$(其中$d(x)$表示$x$的因数个数) 首先有引理(然而并没有证明): $d(ij)=\sum\limits_{x|i}\sum\limits_{y|j}[gcd(x,y)=1]$ 带到原式里得到 阅读全文
posted @ 2018-12-06 20:30 dummyummy 阅读(234) 评论(0) 推荐(0)
摘要:没事写着玩玩,通过debian上的黑白棋测试,搜了10层,打hard应该问题不大 cpp include include using namespace std; template T min(const T &x, const T &y) { return x T max(const T &x, 阅读全文
posted @ 2018-12-02 18:52 dummyummy 阅读(2159) 评论(0) 推荐(0)