04 2019 档案

摘要:T1 不要求联通,进行黑白染色的方案数 水题 T2 要求联通 不进行黑白染色的方案数 设S(x)为上一道题的指数生成函数,H(x)为这一道题的指数生成函数 T2 不要求联通 不进行黑白染色的方案数 把T2 exp过去即可 阅读全文
posted @ 2019-04-29 00:57 Creed-qwq 阅读(390) 评论(0) 推荐(0) 编辑
摘要:二轮省选前的最后一周了呢。 一路走到这里,真的很希望能继续走下去。 好好调整一下状态,争取能有机会买D吧(虽然现在似乎D也没什么用了 day1 多项式 多项式ln 多项式exp day2 数据结构 LCT 可持久化数据结构 day3 图论+dp 2 sat 圆方树 数位DP meet in the 阅读全文
posted @ 2019-04-29 00:21 Creed-qwq 阅读(266) 评论(0) 推荐(0) 编辑
摘要:生成函数好题! 搬一手铃悬的题解(侵删) 现在只需要考虑怎么求出g和逆变换即可,其实也就是对函数F(x)求F(x+1)和F(x 1)。 直接二项式定理展开发现是个卷积的形式,大力NTT即可。 cpp include define N 440000 define eps 1e 7 define inf 阅读全文
posted @ 2019-04-29 00:13 Creed-qwq 阅读(812) 评论(0) 推荐(0) 编辑
摘要:ZJOI2019最水的一道题,考场上想出了正解却死活调不出来。。 然后就一直咕到了现在(逃 题目求的那个东西可以转化为这样一个东西。 有一些操作,你可以决定每个操作是否执行,动态查询所有可能的情况中线段树上权值为1的节点个数的总和。 然后很自然的(虽然看起来有点奇怪,但真的就很自然的能想到!)想到把 阅读全文
posted @ 2019-04-27 22:57 Creed-qwq 阅读(130) 评论(0) 推荐(0) 编辑
摘要:这是一道麻将自动机的模板题(雾 其实这是一道dp套dp借助自动机实现的麻将好题! 首先把期望转化一下,拆成sigema p(x i) 现在要计算i张牌不胡的概率,也就等价于计算i张牌不胡的方案数。 如果我们能建立一个关于麻将的自动机,支持插入麻将,判断当前牌型是否能胡,既可以在麻将自动机上dp解决本 阅读全文
posted @ 2019-04-27 18:30 Creed-qwq 阅读(291) 评论(0) 推荐(0) 编辑
摘要:考虑拆位,计算每一个二进制位的贡献。 问题转化为求一个01矩阵的全0/1的子矩形个数。 考虑计算以第i行第j列为右下角的合法子矩形个数。 发现合法的左上角范围向左是单调下降的。 可以用一个单调栈来维护合法的范围。 这样做总复杂度O(n^2logn) cpp include define N 2200 阅读全文
posted @ 2019-04-26 08:05 Creed-qwq 阅读(176) 评论(0) 推荐(0) 编辑
摘要:感觉比ZJOI的麻将要休闲很多啊。 这个题就是一个最优化问题,没有面子的特殊牌型可以直接用复杂度较低的贪心判掉。 有面子的话就是一个经典dp。(曾经还在ZJOI写过这个毒瘤东西 大概就是存一下对子,面子,杠子的个数,再记一下上两个位置剩余的牌的个数,转移非常简单。 写起来挺爽的。 cpp inclu 阅读全文
posted @ 2019-04-26 06:34 Creed-qwq 阅读(402) 评论(0) 推荐(0) 编辑
摘要:就我感觉这道题很神仙吗/kel 仔细想想应该也是一种适用范围挺广的做法。 考虑我们可以通过dijkstra在O(nlogn)求出一个点集到另外一个点集的最短路。 那么我们可以通过一些划分点集的方式使得每一对点都被计算一次。 考虑按照二进制划分。 两个不同的数至少有一个二进制位不同。 按照每一个二进制 阅读全文
posted @ 2019-04-25 22:26 Creed-qwq 阅读(207) 评论(0) 推荐(0) 编辑
摘要:很像LNOI 2014 LCA那道题。 同样的套路,离线以后直接扫描线。 k=1的话就是原题。 考虑一般情况。 原本的做法是对x到根的这条链做一下区间+1操作,目的是为了是的在深度为i的位置得到的贡献是i。 因此,我们只需要构造出一个任意一个位置都满足前缀和为i^k的序列即可。 然后每次把这个序列加 阅读全文
posted @ 2019-04-25 20:24 Creed-qwq 阅读(227) 评论(0) 推荐(0) 编辑
该文被密码保护。
posted @ 2019-04-25 08:05 Creed-qwq 阅读(3) 评论(0) 推荐(0) 编辑
摘要:题目的含义可以看做是以权值为下标的一些柱子,每个柱子的高度就是这个权值的出现的次数。 然后把这些柱子向左推倒,一个高度为h的柱子的影响范围为i−h+1∼i。 那么答案就是查询1∼n的这段区间没有被覆盖的点的个数。 因为所有没有被覆盖的位置都需要且可以通过一次更改使得能被推倒。 考虑线段树维护这个东西 阅读全文
posted @ 2019-04-25 07:45 Creed-qwq 阅读(142) 评论(0) 推荐(0) 编辑
摘要:比较套路的DP优化高斯消元。 考虑射从里面射到第i面镜子的光线为F[i],外面为G[i]。 显然有 A[i]✖F[i]+B[i]✖G[i]=F[i+1] A[i+1]✖G[i+1]+B[i+1]✖F[i+1]=G[i] 然后如果一直F[i],G[i],就可以直接推出F[i+1]和G[i+1]。 但是 阅读全文
posted @ 2019-04-25 01:23 Creed-qwq 阅读(192) 评论(0) 推荐(0) 编辑
摘要:https://www.luogu.com.cn/problem/P5319 把题目要求最大化的那个式子,取一手对数,然后就变成了一个分数规划问题。 二分后AC自动机上DP即可。 // luogu-judger-enable-o2 #include<bits/stdc++.h> #define N 阅读全文
posted @ 2019-04-25 01:17 Creed-qwq 阅读(181) 评论(0) 推荐(0) 编辑
摘要:有点毒瘤的一个题。(主要原因还是我太菜 第一个问题求的大概是一个 sigema n C(F[n],K),其中F[n]是斐波那契数列。 考虑把组合数转成下降幂,用第一类斯特林数展开。 转化为 sigema n sigema i fn^i ✖ S(K,i)✖ ( 1)^(K i) 换一下求和顺序,把S和 阅读全文
posted @ 2019-04-25 01:15 Creed-qwq 阅读(281) 评论(0) 推荐(0) 编辑
摘要:给定一个序列,求出这个序列的k阶前缀和,模998244353,n 阅读全文
posted @ 2019-04-24 22:16 Creed-qwq 阅读(103) 评论(0) 推荐(0) 编辑
该文被密码保护。
posted @ 2019-04-18 17:04 Creed-qwq 阅读(2) 评论(0) 推荐(0) 编辑
该文被密码保护。
posted @ 2019-04-16 21:42 Creed-qwq 阅读(5) 评论(0) 推荐(0) 编辑
该文被密码保护。
posted @ 2019-04-11 16:09 Creed-qwq 阅读(3) 评论(0) 推荐(0) 编辑
该文被密码保护。
posted @ 2019-04-10 21:18 Creed-qwq 阅读(3) 评论(0) 推荐(0) 编辑
摘要:注意,题意的意思是已经有了一些椅子。 如果要加椅子的话,显然每次加入的椅子都应该是可以和任何一个人匹配的椅子。(即位置为1或者m) 考虑最少需要加入的椅子数量。 根据霍尔定理,假设现在有一个集合|s|和它的连边集合|t|。 如果|s| |t|=k的话,我们至少需要加k把椅子才能满足条件。 因此,最少 阅读全文
posted @ 2019-04-08 21:51 Creed-qwq 阅读(362) 评论(0) 推荐(0) 编辑
摘要:https://loj.ac/problem/6062 直接套用霍尔定理。 由于A有多个选择,考虑维护B是否合法。 首先B数组的顺序显然是没有用的,可以直接排序。 然后每个A就都变成了向一个后缀连边。 对于B,原本需要check每一个集合是否满足|u|=0 因此,只需要维护F【i】 的最小值即可。 阅读全文
posted @ 2019-04-08 21:07 Creed-qwq 阅读(276) 评论(6) 推荐(0) 编辑
摘要:先是几个比较简单的定理 最大匹配=最小点覆盖=n 最小边覆盖=n 最大独立集 最小点覆盖和最大独立集互补 霍尔定理 对于任意集合a,都满足|a| 阅读全文
posted @ 2019-04-08 20:58 Creed-qwq 阅读(150) 评论(0) 推荐(0) 编辑
摘要:非常神仙的一道题! 题意:给出某n个数字跑完全背包m容量的dp数组,求满足要求的字典序最小的n个元素,不知道n是多少。 首先考虑付公主的背包这个题。 对dp数组求一个ln,设它为F。 已知 e^(G1+G2+G3)=e^F,其中Gi是第i个物品的生成函数求ln。(重量为i的物品的Gi=∑ 1/i ✖ 阅读全文
posted @ 2019-04-03 06:54 Creed-qwq 阅读(118) 评论(0) 推荐(0) 编辑
摘要:https://loj.ac/problem/6072 虽然结合了很多算法,但是一步一步地推一下还不算太难的一道题。 首先考虑枚举枚举有用的苹果的集合,然后去算生成树个数。 先考虑怎么计算生成树个数。 发现可以使用matrix tree。 所有有用点可以和有用点以及坏点连边,所有不是坏点的无用点只能 阅读全文
posted @ 2019-04-02 11:29 Creed-qwq 阅读(288) 评论(0) 推荐(0) 编辑
摘要:好像没什么好说的。 生成树方案=abs【(度数矩阵-邻接矩阵)删掉任意一行一列】 设A为一个矩阵。 abs(A)等于对它跑高斯消元然后把对角线上的数字乘起来。 顺便提一下高斯消元的辗转相除法。(用于模数不为质数的情况) 在用第i行对第j行消元的时候,设A为a[i][i],B为a[j][i]。 然后用 阅读全文
posted @ 2019-04-02 06:58 Creed-qwq 阅读(165) 评论(0) 推荐(0) 编辑
该文被密码保护。
posted @ 2019-04-02 04:35 Creed-qwq 阅读(7) 评论(0) 推荐(0) 编辑
摘要:做法挺多的一道题 第一种做法就是直接考虑min max容斥。 然后可以转成一个n/logn sqrt(n)的dp。 不多做赘述。 第二种,ans=sigema x p(len =x)。 令f(i)=sigema x p(前x个数的gcd是i)。 则ans=sigema i=2 n f(i) 考虑对f 阅读全文
posted @ 2019-04-01 21:09 Creed-qwq 阅读(112) 评论(0) 推荐(0) 编辑
摘要:终于找到了一个只会用[gcd(i,j)==1] = sigema d|gcd(i,j) mu(d) 做不了的题。 考虑枚举gcd后。 此时,ans可以表示为一个 sigema x f(x)的形式。 考虑对反演f(x)。 然后发现f(x)也很容易在nlogn的复杂度内算出来,就做完了。 cpp inc 阅读全文
posted @ 2019-04-01 06:45 Creed-qwq 阅读(201) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示