摘要: [Toc] 被吊打了 先鸽着 JOI的本质:数 据 结 构 优 化 建 图 D1T1 https://loj.ac/problem/3271 爆零辣 显然的dp:设f\[i]\[j]\[0/1]表示当前到i放了j个A当前是A/B 是否合法 发现对于每个i和0/1,合法的j是一个连续段 证明可以归纳, 阅读全文
posted @ 2020-03-29 21:57 gmh77 阅读(308) 评论(0) 推荐(0) 编辑
摘要: 题目描述 多项式求逆 第一次写就是这么毒瘤的题目 已知 $A(x)B(x)\equiv 1(mod\;x^n)$ 要求 $A(x)C(x)\equiv 1(mod\;x^{2n})$ 两式相减可得 $A(x)(B(x) C(x))\equiv 1(mod\;x^{n})$ $B(x) C(x)\eq 阅读全文
posted @ 2020-03-20 21:49 gmh77 阅读(304) 评论(0) 推荐(0) 编辑
摘要: 备忘 用总数 非法,一种非法的对应一种从(0,0)走到(n, 2)的方案(把第一次走到y= 1之后部分翻转即可一一对应) 所以是$C(2n,n) C(2n,n+1)$ 阅读全文
posted @ 2020-03-19 00:22 gmh77 阅读(388) 评论(0) 推荐(0) 编辑
摘要: 题目描述 题解 比赛时的想法:离线,把相关的区间找出来,再向下拓展一个儿子以便向上合并,然后维护区间是否全满 吹风等于把y翻转 主席树,每次吹风时只维护源线段树,单点修改时复制整棵树,每棵树维护区间最小方便二分,修改就是改成0或y 比较好写 code 阅读全文
posted @ 2020-03-14 22:42 gmh77 阅读(249) 评论(0) 推荐(0) 编辑
摘要: 题目描述 题解 区间合并dp,之前做过但是忘了 两个子树合并时,一定是若干段区间交错,如果有相邻两段来自不同子树的区间就可以合并,此时的深度贡献为d\[t] 设f\[i]\[j]表示根i段j,g\[i]\[j]\[k]\[0/1]表示当前合并时剩余总段i,两个子树的段jk,结尾为什么 看似O(n^4 阅读全文
posted @ 2020-03-14 22:39 gmh77 阅读(177) 评论(0) 推荐(0) 编辑
摘要: 题目描述 题解 设%P 0为1,=0为0,则一个不合法的三元组必然存在有两条路01相同,也就是两条路01不同 点分治求出每个点向外&从外到内的不同01的路径条数(从每个点分中心向下走时统计兄弟子树中的点),之后随便算算即可,要考虑uvt中有两个相等的情况 注意p为质数,所以k^x≠0(mod p), 阅读全文
posted @ 2020-03-14 22:24 gmh77 阅读(189) 评论(0) 推荐(0) 编辑
摘要: 题目描述 这是一道 通信题 。 UOJ 又来到了新的一年,今年鸽子们不出意外的把比赛鸽到了12月月底。今年鸽子们决定玩点不一样的:它们要来打(tong)雪(xin)仗(ti)。 小 $A$ (Alice),小 $ B $ (Bob) 和小 $ C $ (Cplusplus) 计划进行一场打雪仗比赛, 阅读全文
posted @ 2020-03-12 19:58 gmh77 阅读(221) 评论(0) 推荐(0) 编辑
摘要: 这nm是普及 T1 枚举最小值,考虑另外两个的答案 系数较大的个数每次可以减较小的系数,总数最大的话就一定在较小系数 1以内 exgcd反而麻烦 O(n),分类讨论可以O(1) T2 n^2显然,f\[i]\[j]表示有i个x总数为j 发现大于√n的不超√n个,对于小于等于√n的枚举具体数dp,大于 阅读全文
posted @ 2020-03-11 16:29 gmh77 阅读(325) 评论(0) 推荐(0) 编辑
摘要: 题目描述 题解 二分半径,每条直线变成圆上的一个区间,圆内交点数就是相交区间对数,只要区间不穿过x轴正半轴就不会算错 得到半径后暴力统计即可,10^7 log很稳 注意不要统计圆上的点(会被卡成n^2),圆上的点距离都为r code 阅读全文
posted @ 2020-03-10 22:28 gmh77 阅读(289) 评论(0) 推荐(0) 编辑
摘要: 题目描述 题解 考虑用总数 不合法数 因为相同情况只有轮换和翻转,所以总数=$n^{\underline{K}}/2K$ K=3时,不合法的情况只有三元组的一个点有两条向外的边,并且每个三元组中只有一个这样的点,统计一下即可 K=4时减只有一个向外的加有两个向外的,K=5同理,只不过两个向外的点连了 阅读全文
posted @ 2020-03-10 22:24 gmh77 阅读(232) 评论(0) 推荐(0) 编辑
摘要: 题目描述 题解 不是题解做法 生成树计数问题一般考虑统计重心,然后判掉两个重心的情况 设f\[i]\[j]表示大小为i深度为j的个数,满足任何时候最长链 define fo(a,b,c) for (a=b; a=c; a ) define min(a,b) (a1 && i1) f[i][n/2] 阅读全文
posted @ 2020-03-10 22:17 gmh77 阅读(174) 评论(0) 推荐(0) 编辑
摘要: €€£居然不收钱了?震惊 8:00才想起来有比赛,一看只剩0.5h了 熟悉的土豆服务器,10min后才看到题(离线版) T3: https://www.cnblogs.com/gmh77/p/12353253.html ,后来dyp说可以预处理 T1有、东西,发现二类边可以连成块,只要块的综合等于目 阅读全文
posted @ 2020-03-07 22:44 gmh77 阅读(173) 评论(0) 推荐(0) 编辑
摘要: 题目描述 题解 ~~da☆ze~~ 人类智慧题 假如当前可能所在的集合为S,等价于~~以光速在每个可能的房间之间来回闪现~~ 题目中的门是不同的,并且人物也能够看出具体是ABCD中的那扇门,但是不能通过门看到走到的房间情况,可以当成~~传送门~~ 假设走入A门,根据所在具体房间的不同可能从ABCD四 阅读全文
posted @ 2020-03-07 01:00 gmh77 阅读(258) 评论(0) 推荐(1) 编辑
摘要: 题目描述 ~~假的,n define fo(a,b,c) for (a=b; a=c; a ) define abs(x) ((x) 0?(x): (x)) define ll long long define file using namespace std; ll a[100001],b[100 阅读全文
posted @ 2020-03-07 00:41 gmh77 阅读(208) 评论(0) 推荐(0) 编辑
摘要: 题目描述 题解 结论:存在一种合法方案当且仅当所有联通块大小为偶数 证明:随便做一个生成树,然后每次断掉一条两边大小都为偶数的边 断完之后变成若干棵树,每棵树大小为偶数且每条边两侧的块大小都为奇数 选取当前的所有边,若存在度数为偶数的点,那么总点数为偶数\ 断开后块大小(奇数)+1,结果为奇数,与条 阅读全文
posted @ 2020-03-07 00:27 gmh77 阅读(200) 评论(0) 推荐(0) 编辑
摘要: 题目大意 完整题目: http://uoj.ac/problem/76 n只狗n个人,有至少一只病狗,每个人能看出其他一些人的狗是否是病狗(成一个有向图) 每天早上所有人会集会,如果一个人判断出了自家的狗是病狗下午就会把狗毙了,当听到枪声之后所有人都不再集会 已知全部人都绝顶聪明且知道有至少一只病狗 阅读全文
posted @ 2020-03-03 22:35 gmh77 阅读(203) 评论(0) 推荐(0) 编辑
摘要: 题目描述 题解 镇♂男则反 容斥下界,上界开到大概505位,数位dp最终的和V 设边界(要大于边界)之和为S,那么答案为C(V S 1,n 1) 根据范德蒙恒等式,C(n+m,k)=∑C(n,i)\ C(m,k i) 如果nm都是正数很好证明,把n+m分成n和m两部分,枚举n部分选择个数组合一下 这 阅读全文
posted @ 2020-03-03 09:40 gmh77 阅读(276) 评论(0) 推荐(0) 编辑
该文被密码保护。 阅读全文
posted @ 2020-03-01 23:14 gmh77 阅读(0) 评论(0) 推荐(0) 编辑
摘要: 题目描述 题解 感觉枚举两个点之后二分半径不满足二分性,因此枚举了两个点之后对于剩下的点找圆心在这两个点的中垂线上的区间 然后常数就炸了( 二分答案,枚举一个在边界上的点,考虑把圆绕着该点转一圈 那么对于其他的点就可以表示成一个区间,在区间内会被计算到 排序判断即可,注意判断完全碰不到的情况 cod 阅读全文
posted @ 2020-03-01 23:00 gmh77 阅读(146) 评论(0) 推荐(0) 编辑
摘要: 题目描述 题解 每次可以找一维折半,所以答案不超2log 反着做,变成每次把两个相邻的区间合并 枚举答案,维护f\[i]\[j]\[k]表示当前第i行j\~k列最多能向下到哪一行,g\[i]\[j]\[k]表示列 每次先自己转移自己,然后考虑用另一个数组转移 比如对于当前的f\[i]\[j]\[k] 阅读全文
posted @ 2020-03-01 22:56 gmh77 阅读(211) 评论(0) 推荐(0) 编辑