Description Solution 首先,每个节点上的权值可以等价于该节点上有(它的权的二进制位数+1)个石子,每次可以拿若干个石子但不能不拿. 然后就发现这和NIM游戏很像,就计算sg函数em(然而我并不会推) 如果您恰好看到这篇博,又恰好有空的话,欢迎探讨~ Code #include<iostream> #include<cstdio> #include<cstring> #include<cmath> using namespace std;…
1188: [HNOI2007]分裂游戏 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 973  Solved: 599[Submit][Status][Discuss] Description 聪聪和睿睿最近迷上了一款叫做分裂的游戏. 该游戏的规则试: 共有 n 个瓶子, 标号为 0,1,2.....n-1, 第 i 个瓶子中装有 p[i]颗巧克力豆,两个人轮流取豆子,每一轮每人选择 3 个瓶子.标号为 i,j,k, 并要保证 i < j ,…
Description Solution 如图,假如我们知道了以任何一个点为顶点的135-180度的前缀和和90-180度的前缀和,我们就可以搞出三角形的面积. 差分.add[i][j]和dev[i][j]都表示相对点[i][j-1],点[i][j]应该+或-的大小.这样只要我们需要,可以在O(n2)的时间里求出整个图的前缀和. 然后,不可能每一次查询都求一次前缀和的.考虑分块.记录当前添加的修改的操作数cnt.如果cnt=2500,则把图的前缀和全部求出来,对cnt,add,dev初始化. 假…
Description Solution 设y[i+k]=y[i]+n. 由于我们要最优解,则假如将x[i]和y[σ[i]]连线的话,线是一定不会交叉的. 所以,$ans=\sum (x_{i}-y_{i+s}+c)^{2}$ 拆开得$ans=\sum (x_{i}^{2}+y_{i+s}^{2}+c^{2}-2x_{i}y_{i+s}+2x_{i}c-2y_{i+s}c)$ 其中,$x_{i}y_{i+s}$是卷积形式. 我们把经过处理的y数组reverse一下,和x数组进行卷积(这里用ntt…
Description Solution 将(u,v,l,r)换为(1,u,v,l)和(2,u,v,r).进行排序(第4个数为第一关键字,第1个数为第二关键字).用LCT维护联通块的合并和断开.(维护联通块的大小,要维护虚边) 答案统计:每当四元组的第一个数为1(这时候合并点u,v所在连通块,反之拆开),在合并前ans+=size[u]*size[v]即可. Code #include<iostream> #include<cstdio> #include<cstring&g…
Description Solution bitset是个好东西啊..强行压位什么的真是够orz. 由于所有的蘑菇上房间的长相是一样的,我们针对每个房间,算出它到根节点的bitset和以它为根的子树的bitset. 每次新开一个蘑菇,为了防止被卡空间,我们只是把指针指向蘑菇u的bitset,并且cnt[u]++.只有当对这个新蘑菇进行操作的时候,才给它单独开一个 bitset. 本题的题解一句话-优雅的暴力. Code #include<iostream> #include<cstdio…
Description A 联邦国有 N 个州,每个州内部都有一个网络系统,有若干条网络线路,连接各个 州内部的城市. 由于 A 国的州与州之间的关系不是太好,每个州都只有首府建立了到别的州的网络.具体来说,每个州的首府都只主动地建立了一条网络线路,连接到距离最近的州的 首府.(欧氏距离.如果有多个,选择标号最小的去连接) B 国探知了 A 国的网络线路分布情况,以及攻陷每条网络线路所需花费的代价,B 国首脑想知道断开 A 国某两个城市之间的网络连接,所需的最少代价.请你计算出来告 诉他. 注:…
Description Solution 本博客参考yww大佬的博客,为了加深理解我就自己再写一遍啦. 以下的“无向图”均无重边无自环. 定义f0[n]为n个点构成的无向图个数,f1[n]为n个点构成的无向图的总边数,f2[n]为所有(n个点构成的无向图的边数的平方)之和. g0[n]为n个点构成的连通无向图个数,g1[n]为n个点构成的连通无向图的总边数,g2[n]为所有(n个点构成的连通无向图的边数的平方)之和. 设$m[i]=i*(i-1)/2$ 每条边可以选或不选,所以$f0[i]=2^…
Description Solution 神仙操作orz. 首先看数据范围,显然不可能是O(n2)的.(即绝对不是枚举那么简单的),我们考虑dp. 定义f(x,k)为以x为根的子树中与x距离为k的节点数:g(x,k)为在以x为根的子树中选择两个点,使得另一个点应在x子树外且离x距离为k的方案数(或者距离为0).但是这样子暴力转移怕是会崩em,考虑优化. 这里的树是棵静态树,考虑树链剖分,点分治之类的思想. 最后,由于很多时候它的复杂度和树的高度有关,考虑长链剖分. 转移的话,暴力枚举所有轻链(啊…
Portal --> broken qwq Description 有个口袋,一开始里面有\(N\)个球,接下来进行\(M\)次操作,每次可以选择往里面放一个球或者从里面拿一个球出来,在这\(M\)次操作之后,要取\(K\)个球出来,对于每一种操作方式,都有取出\(K\)个球的方案数(球两两不同),求方案总数 ​ 数据范围:\(T<=500,N<=10^9,M<=10^9,K<=300\),保证\(N>=M+K\) Solution ​ 首先考虑最朴素的做法,我们可以考…