08 2022 档案

摘要:厉害题。 考虑从大到小塞入背包,相当于塞入物品后令体积为 2 倍,然后背包容量也变为 2 倍。 然后问题变为原问题,可以一直塞 1。 有 dp[n][k]=dp[n1][k1]+dp[n][2×k],边界条件 dp[n][k]=0(nk)。 对应到 GF 阅读全文
posted @ 2022-08-25 17:02 Prean 阅读(32) 评论(0) 推荐(0) 编辑
摘要:去年模拟赛被薄纱的题,回来看看怎么做。。。 考虑设一个回合表示 A,B 不断开枪然后有人打中的情况。 不难发现一个回合有三种情况:(1,0),(0,1)(1,1)。 对于三种情况我们分别计算概率为 p1,p2,p3,考虑计算答案。 假设 B 已经被打到只剩下一滴血了,而此时 $ 阅读全文
posted @ 2022-08-25 11:44 Prean 阅读(16) 评论(0) 推荐(0) 编辑
摘要:萌萌多项式。 先考虑有根树指定根节点的拓扑排序方案数。 设 dp[u]u 为根子树的方案数,容易发现有 $$dp[u]=(\sum_{v\in son(u)}siz[v])!\prod_{v\in son(u)}\frac{1}{siz[v]!}=(siz[u]-1)!\prod_{v 阅读全文
posted @ 2022-08-24 20:42 Prean 阅读(15) 评论(0) 推荐(0) 编辑
摘要:思路很奇怪(?) 考虑是否合法的条件。注意到这个显然要求对称(即存在 i 必须存在 ni),如果不满足一定无解。 然后比较显然的是 1 不存在和存在 n 都无解。 然后注意到应该要满足一个 F=xFk 之类的 0/1 卷积。 然后发现,如果存在 1 那这个是 阅读全文
posted @ 2022-08-24 19:45 Prean 阅读(22) 评论(0) 推荐(0) 编辑
摘要:很厉害的题。 考虑将原本的座位串成一个环,然后加一个节点在 1 的前面 n 的后面。 原问题等价为新节点不被座到的方案数。容易发现所有节点被座到和不被座到的方案数相同,所以答案就是 (2n+2)m×n+1mn+1。 #include<cstdio> con 阅读全文
posted @ 2022-08-24 15:15 Prean 阅读(42) 评论(0) 推荐(0) 编辑
摘要:很久以前我的某个朋友给过我一道题: 给定 fi,a,b,c,h,定义 A 满足: Ai,j=i==0?0:j==0?fi:a×Ai1,j+b×Ai,j1+c 请求出 $\sum_{i=1}^{n}\sum_{j=1}^{m}A_{i, 阅读全文
posted @ 2022-08-23 19:00 Prean 阅读(15) 评论(0) 推荐(0) 编辑
摘要:被杀了,记录一下好了。 对于他那个数组是否相等,直接判断复杂度很高,考虑通过哈希映射之后判断是否相等。 对数组的 Hash 可以类似字符串 Hash那样去做。 于是判断一个区间是否和整个串相同就是 S[R]S[L1]pid[L1]=S[n],其中 id 是指针的 阅读全文
posted @ 2022-08-23 08:54 Prean 阅读(23) 评论(0) 推荐(0) 编辑
摘要:对于每个 k 分别算答案。 将 iki 配对,问题变成了每一组最多选一个。 假设现在有 x 组只包含两个数,y 组只包含一个数,问题等价于在 x+y 个数中任意选,被选到的 x 附带一个 2 的权值。 直接枚举有几个选到了 x,几个选到了 y,答案就是 阅读全文
posted @ 2022-08-20 16:44 Prean 阅读(20) 评论(0) 推荐(0) 编辑
摘要:写一篇自己能看得懂的题解。。。。。。 先考虑一个正难则反,用 a 序列出现过的次数减去在不好的序列里面的出现次数。 前者显然是 knm(nm+1),考虑后者的答案。 分三种情况讨论: a 是一个好序列 显然为 0a 中的数字互不相同 此时存在 m<k。 考虑一个 阅读全文
posted @ 2022-08-20 10:45 Prean 阅读(60) 评论(0) 推荐(0) 编辑
摘要:垃圾 O(3n) 做法/kk 对于每个 k 分别计算答案,注意到 i 一定是 k 的子集所以先枚举一个 i,此时 j 应该是被钦定 i1 的部分为 0,剩下 k 的子集部分可以随意取 0/1。 于是弄一个类似前缀和的东西 f[S]S 的第 阅读全文
posted @ 2022-08-20 08:30 Prean 阅读(21) 评论(0) 推荐(0) 编辑
摘要:感觉挺一眼的啊? 众所周知如果序列 i 要通过相邻两项交换变成 pi,那么交换次数就是 i<j[pi>pj],或者说线段 (i,pi) 相交的对数。 于是一个很 naive 的想法就是枚举最终序列的黑白状态,但是这样显然行不通。 一看数据范围,n=2000阅读全文
posted @ 2022-08-18 18:18 Prean 阅读(28) 评论(0) 推荐(0) 编辑
摘要:设 F[n] 表示钦定 n 个数出现次数不大于 1。 容易得到答案是 i=0n(ni)(1)iF[i]。 枚举一共被划分成了 i 个集合,但是因为可能不会被划分到任何一个集合,所以再加入一个元素表示和这个元素属于同一个集合就是没被划分,有: 阅读全文
posted @ 2022-08-18 10:41 Prean 阅读(22) 评论(0) 推荐(0) 编辑
摘要:首先对于一个点双内的点,一定可以将其边定向成一个强联通分量。所以可以将这个图缩点,问题变到了树上。 将这 k 个点在树上标记出来,我们需要选取一颗原图的子树满足叶子结点必须是这 k 个点中的点。(差不多就是建个虚树然后把父子边在原图上对应的边拉出来) 定义每个点的权值是自身与其连接的非选取树 阅读全文
posted @ 2022-08-18 08:10 Prean 阅读(21) 评论(0) 推荐(0) 编辑
摘要:看到题面的第一眼是这玩意儿关于 x 是单谷的,证明稍微想了一下: 设 f[k]g[k] 是原序列中长度为 k 的子区间的最大子区间和最小子区间,给定 x 时答案就相当于: $$\max_{i=1}^{n}\max(|f[k]-k\times x|,|g[k]-k\times x 阅读全文
posted @ 2022-08-17 19:29 Prean 阅读(35) 评论(0) 推荐(0) 编辑
摘要:脑抽了。考场上应该做掉这题的。 所以实际挂分从100pts变成了200pts/fn/fn/fn 考虑用一个二元组来维护链,(f,g) 表示这个集合的所有链的点权和为 f,有 g 条链,目的是方便转移。 定义两个二元组 x,y 的二元运算:x+y 表示合并两个集合,$x\times 阅读全文
posted @ 2022-08-17 16:01 Prean 阅读(14) 评论(0) 推荐(0) 编辑
摘要:设 A<BC=max(AB1,A),答案为: C1+AB1C+1 如果 A>B 时显然可以互换,接下来称 A 所在的比赛为第一场比赛,B 所在的比赛为第二场比赛。 显然一个人对应的两个名次相当于在匹配第一场和第二场比赛的两个名次。 阅读全文
posted @ 2022-08-16 20:00 Prean 阅读(25) 评论(0) 推荐(0) 编辑
摘要:对一条边 (u,v) 分两种情况讨论:在原图中是否属于强连通分量。 如果属于一个强联通分量: 考虑一对节点 (x,y),若 (x,y) 路径上 (u,v) 为必经之路,且 y 可以到达 x,那么反转后 (x,y) 必定不属于一个强联通分量。判定的时候令 x=u,y=v 阅读全文
posted @ 2022-08-16 18:05 Prean 阅读(29) 评论(0) 推荐(0) 编辑
摘要:很萌萌的数数题。 考虑设 dp[n] 表示 n 的答案。 考虑对于一个长度为 n 的排列,令排列的所有元素 +1,然后塞一个 1 进去。 容易发现,逆序对增加的数量和 1 塞的位置有关。如果 1 塞到 p[i],那么会增加 i1 个逆序对。 所以就有 $dp[n 阅读全文
posted @ 2022-08-15 13:20 Prean 阅读(26) 评论(0) 推荐(0) 编辑
摘要:把一个点拆成两个状态:入度是否为偶数和出度是否为偶数。 然后我们将边随机定向,上述状态都得以确定。 然后,对于一条边,若连接的两边状态都为奇数,那么将这条边反向,这样两边都是偶数了。 我们将剩下的为奇数的状态拿出来,一定有偶数个。可以注意到一定没有边连接其中任意两个状态。 我们新建边连接这些状态即可 阅读全文
posted @ 2022-08-13 16:55 Prean 阅读(38) 评论(0) 推荐(0) 编辑
摘要:想不到的高明构造。记录一下好了。 对于不同的 (x,y),很显然最麻烦的事情是我们并不知道路径上有多少个 x,y。 那就构造一个好了。设 f[i][j] 表示 (s,t) 路径上一共有 ixjy,路径上除去 x,y 的边权之和。 那么显然有 $d 阅读全文
posted @ 2022-08-12 18:30 Prean 阅读(27) 评论(0) 推荐(0) 编辑
摘要:整个年级好像就我不会做,退役算了。 设 f[i] 表示从 i 除法第一次走到 i 的父亲节点的期望,g[i] 表示从 i 的父亲节点出发第一次到达 i 的期望。 设 d[u]u 的度数,那么有: $$f[u]=\frac{1+\sum_{v\in son(u)} 阅读全文
posted @ 2022-08-12 14:53 Prean 阅读(20) 评论(0) 推荐(0) 编辑
摘要:这个去重给写麻了。。。。。。 显然对于两条非树边,其只能组成最多一条回路。构造方式是将两条非树边在树上的路径中重复的部分去掉,再加上两条非树边即可。 于是考虑如何统计重合的路径。 考虑将一条链拆成两条从祖先到孙子的链。统计这些链相交的情况。 可以注意到只有一个情况会算重:LCA 相同,且对于两组链而 阅读全文
posted @ 2022-08-11 16:25 Prean 阅读(16) 评论(0) 推荐(0) 编辑

var canShowAdsense=function(){return !!0};
点击右上角即可分享
微信分享提示