随笔分类 - abc
摘要:G - Ban Permutation 求长为 \(N(N\leq 100)\) 且满足以下条件的排列 \(P=(P_1,P_2,...,P_N)\) 的个数: \(\forall 1\leq i\leq N\),\(|P_i-i|\geq X(X\leq 5)\)。 考虑使用容斥 \(f[i][j
阅读全文
摘要:abc297F - Minimum Bounding Box 2 题意:n*m的网格,在上面随机选k个不重复的点,问能够包含这k个点的最小的矩形的面积的期望值。 我们可以考虑每个点对和的贡献,直接算并不好算,我们可以考虑哪些矩形不会包含它,就是在四个方向上选k个点(比如在横坐标小于x的点中选k个),
阅读全文
摘要:abc152F - Tree and Constraints 题意:给定一棵树,要求对每条边染成黑色或者白色,其中有m个限制,第i个限制形如ai,bi,表示ai到bi的路径上至少有一条黑色边,求方案数。 看到数据第一反应是状压,但是好像没办法搞。 于是考虑容斥,能想到容斥的话就差不多做完了,每次标记
阅读全文
摘要:D - Summer Vacation 题意:有n个任务,每一天可以选择一个未完成的任务i来完成,并在ai天后获得bi的利益。问在m天内最多可以获得多少利益。 首先我们可以考虑假如i,j两个任务都在我们最后的答案里面,那么让a比较大的排在前面一定是更好的。所以我们先按照a降序排序。 然后用一个set
阅读全文
摘要:abc227F 依次钦定x为路径上的第k大的数,然后dp即可。 #include<cstdio> #include<algorithm> #include<cstring> #include<map> #include<queue> #include<bitset> #include<cmath>
阅读全文
摘要:F - Teleporter Setting 题意: 给出n个顶点和一些边,其中一些边两个端点确定,另一些边只有一个端点确定,对于每个i,令其为所有这些不确定的边的另一个端点,问1到n的最短距离是多少。 建立一个虚点,然后f,g分别表示1,n到x的最短距离, 分别计算两种经过i的情况,以及可能不经过
阅读全文
摘要:E - Ring MST 有i种操作,第i种操作为选择一个数x,然后在x和(x+a[i])%N之间连边,代价为c[i],问是否能够让图联通,如果可以最小生成树的边权和是多少。 首先按照克鲁斯卡尔算法,我们肯定是按照边权从小到大连。 考虑前i种操作都操作完后的连通块个数。 若u,v在同一联通块, 则
阅读全文
摘要:abc333F - Bomb Game 2 设\(f_{i,j}\)表示在有i个人的队列中,第j个人成为第一个的概率。 \(f_{n,1}=\frac{1}{2}f_{n,n}\) \(f_{n,2}=\frac{1}{2}f_{n-1,1}+\frac{1}{2}f_{n,1}\) ... \(f
阅读全文
摘要:https://atcoder.jp/contests/abc280/tasks/abc280_f 对于每一个连通块单独处理,首先判断是否全为0环,可以用bfs判断。 从一个点出发计算其他点到它的最短距离,如果存在一个不唯一,说明存在非零环。 然后计算距离的时候直接-d[x]+d[y]即可 #inc
阅读全文
摘要:https://atcoder.jp/contests/abc327/tasks/abc327_f 我们将时间看作x轴,位置看作y轴,那么我们随着时间增加,维护新加的点对区间的贡献,同时减去过时的点,线段树区间加法维护最大值即可。 #include<cstdio> #include<algorith
阅读全文
摘要:F - Transportation 一天遇到两道生成树的题目,还都不会做,菜哭的一天。 这题的做法是另外建两个点n+1,n+2,然后做生成树,因为我们只要前n个点联通就行,后面两个点不一定,那么枚举一下就行。 #include<cstdio> #include<algorithm> #includ
阅读全文
摘要:E - Choose Two and Eat One 非常巧妙的一集 可以将整个局面看作一张图,选两个数获得的score就是它们的边权,然后做最大生成树,不难发现操作和建树之间是一一对应的。 #include<cstdio> #include<algorithm> #include<cstring>
阅读全文
摘要:F - Find 4-cycle 显然就是在一个集合中枚举两个点,然后看在另一个集合中是否存在两个点与这个集合中的两个点都相连。 假设x是v1中的一个点,设它的两条出边是(x,a),(x,b),那么记录下f[a][b]=x,根据鸽巢原理,这样做是n^2的 #include<cstdio> #incl
阅读全文
摘要:G - 222 如果知道阶的相关知识,那么就是道板题。 一个显然的结论是k最多只能有一个2的因子,同时不能有5的因子,直接特判即可 \[k| \frac{10^x -1}{9} \]那么剩余的情况我们可以保证(9p,10)=1,根据欧拉定理,在这种情况下一定有解。 那么问题转化为求最小的正整数x使得
阅读全文
摘要:G - Power Pair 如果知道了原根的话这题就会简单很多 r是p的原根 \(r^a=x, r^b=y\) 那么$$r^{an} \equiv r^b (mod\ p) $$ 根据原根的性质 \[an \equiv b(mod\ p-1) \]\[an-k(p-1)=b \]令n=p-1 由裴
阅读全文
摘要:E - Complete Binary Tree 首先我们只考虑x子树中的答案,非常明显,一定是一个连续的区间,那么我们只需要找到两个端点即可,左端点一直往左走即可,但是右端点要注意,如果走不了,如果左端点存在,说明n就是我们的右端点。 处理完子树之后往上跳即可,因为树高只有60 #include<
阅读全文
摘要:F - typewriter 直接容斥即可,每次选出它们的并集。 #include<cstdio> #include<algorithm> #include<cstring> #include<cmath> #include<queue> #define fo(i,a,b) for (int (i)
阅读全文
摘要:F - +1-1x2 做过好几道类似的题了,跟之前杭电的一道题很像。 反正就是在一个y的位置上下抖一抖再除2就行。 #include<algorithm> #include<cstdio> #include<cstring> #include<vector> #include<queue> #inc
阅读全文
摘要:F - Components 一眼经典的树上背包 \(f[x][s][0/1]\)表示在x的子树中有s个连通块,选不选x的方案数 那么转移的话就是按照背包的转移即可 然后隐约记得这个是\(O(n^2)\)的 但是一直TLE,后面发现是有一个地方写法有问题,应该在计算完当前子树后再更新的size,这样
阅读全文
摘要:F - Manhattan Cafe 暴力dp是显然的,f[s1][s2] 假设a,b是第i维中p,q两个向量分别对应的数。 那么分类讨论一下 不妨设 a<c<b \[f[i][s1][s2]= \sum f[i-1][s1-(c-a)][s2-(b-c)] \]\[=\sum f[i-1][s1+
阅读全文

浙公网安备 33010602011771号