10 2020 档案
摘要:一个排列,每次可以将一个字符提到开头或结尾,问进行至多$k$次后能够形成的排列的方案数。 $k$从$0$到$n-1$的答案都要计算。 \(n\le 1000\) 显然,答案为包含着至少一个长度大于等于$n-k$的子段的排列的方案数。 现在变成了统计多少个排列,每个上升子段的长度都小于$k$。 以前见
阅读全文
摘要:表达式由x,(,)组成,一个合法的表达式为一个括号序中任意插入x。 求长度为$n$的合法表达式中x的个数之和。 \(n\le 10^7\) 多组询问。 推了一个晚上的式子。。。 首先可以设$f_n$表示长度为$n$的表达式的方案数,$g_n$表示贡献和。 可以分别写出递推式,进而推出其生成函数:\(
阅读全文
摘要:https://codeforces.com/contest/1434/problem/D 一棵树,每条边有边权,长度为$1$。 询问这棵树最长的、边权和为偶数的路径长度。 支持修改。 \(n,m\le 5*10^4\) 有个结论:最优解的路径其中的一个端点必然在直径端点上。 简略证明:直径边权和为
阅读全文
摘要:一个序列$a_i$,每次询问$(l,r,t)\(,表示询问\)[l,r]\(内出现了大于\)\frac{r-l+1}$次的最大的数是什么。 \(n\le 10^5\) 感觉这题之前CF见过,直接搬那题的做法。。。TLE。。。 事实证明这题正解比CF那题高到不知道哪里去了。 维护权值线段树,建主席树,
阅读全文
摘要:有$n$个$x$和$m$个$y$,每次选$k$个数,删掉它们并加入它们的平均数。 问最后形成的数不同的方案数有多少个。 \(n,m,k\le 3000\) 如果$x=y$显然;如果$x\neq y$,结果和$x,y$的具体取值没有关系。 证明:操作的过程可以用一棵树来表示。设$x_i,y_i$分别表
阅读全文
摘要:长度为$n$,字符集为$K$的字符串,两个人博弈:每次要么删去一个字符,要么重新排列(要求排列后的字符串之前没有出现过)。 问先手必胜的字符串的方案数。 \(n\le 2*10^5,K\le 26\) 分析一波: 假如字符串的排列数为偶数: 如果存在删去一个字符使得先手必胜,则先手必胜。 否则,先手
阅读全文
摘要:长度为$n$的序列,序列的每个位置有$4$种取值。$i$出现在一位的概率为$p_i$。 你需要对$4^n$个序列编码,使得期望的序列长度最小。 编码满足任意一个序列的编码不是另一个序列的编码的前缀。 \(n\le 20\) 把$4^n$个序列的出现概率求出来,然后合并果子。 优化这个过程:我们只关注
阅读全文
摘要:两个人博弈:一排格子,每个格子有一定的价值$a_i$。操作:如果上一次操作的位置旁边有空位,选择其中一个空位占据;否则任选一个空位。 每个人最大化自己的价值和。输出结果。 \(n\le 3*10^5\) 博弈吼题。 先手一定不希望在一堆操作之后被占据先机: 稍微举例说明。 假如$2|n$,如果先手选
阅读全文
摘要:一棵树$T$和一张图$G$,现在对图进行加边操作:每次找到$(a,b,c)\(满足\)(a,b),(b,c)\in E_G$,且$a,b,c$任意顺序在$T$上排列在一条链上。 问对图$G$操作到不能操作时,$|E_G|$是多少。 \(n,m\le 2000\) 神仙题。。。对着三个标切的,下次遇到
阅读全文
摘要:一棵树,每个点有个权值$v_i$。 从根节点开始,每次遍历与走过的点联通的未走过的点,使得$v_i$的前缀和的最小值大于等于$0$。 问是否能够到达$T$。 \(n\le 10^5\) 经典贪心。。。然而由于不知道怎么处理终点而搞了几天。。。 可以将一个点看成$(a_i,b_i)\(的形式,表示前缀
阅读全文
摘要:你和另一个人在玩石头剪刀布,双方的出招策略都按照各自的有限状态自动机进行(下一步对方通过这一步我方出什么决定到达哪一个状态)。 现在给出对方的自动机,但是你不知道对方的初始状态。你要造一个自动机使得对于任意对方的初始状态,$10^9$场中你的胜率为$99%$。 自己的初始状态是你自己钦定的。 \(n
阅读全文
摘要:有一个排列。有$m$个三元组$(a_i,b_i,c_i)$,表示$b_i$的位置在$a_i$的位置和$c_i$的位置之间(不确定$a_i$和$c_i$的位置关系),满足这个排列。 你现在需要尽可能地还原这个排列,使得有至少一半的三元组被满足。 \(n,m\le 10^5\) 做不出来的神仙构造。。
阅读全文
摘要:题意(简化):对于每个$S$统计满足$S=ax+by$的不同的四元组$(a,x,b,y)$的个数。 \(S\le 5*10^5\) 统计每个数的因数。设其生成函数为$F$,则答案为$F^2$。 经过估算和打表发现答案没有超过$998244353$,放心NTT。 using namespace std
阅读全文
摘要:一个带引号的字符串,引号有多级,第$i$级引号用$i$个'来表示。 现在给你一个字符串:$a_i$表示有$a_i$个'连在一起,$a_i$和$a_{i+1}$间有分隔。 合法的$k$级引号串为:最外层为$k$-引号,其中包含的串要么为普通串,要么为$k-1$-引号串。$k>1$时内部不能为空。 \(
阅读全文
摘要:题目相当于:有个序列${a_i}$,一开始全$0$。有$d$次操作,每次随机地选一个$i$,概率为$\frac{\sum a_i}$,然后将$a_i$变成$a_i+1$。 求最终前$r$个期望是多少。 答案输出小数。 早就想到了大概的思路,但因为答案输出小数而不是取模迟迟不敢下手。因为这题在计数过程
阅读全文
摘要:给你一个二分图,问满足下列条件的点集$V$的个数: 存在一个匹配覆盖\(V\)。 $V$中所有点的权值和大于等于一个定值。 \(n,m\le 20\) 对Hall定理的奇妙推广。 Hall定理:如果一个二分图存在完备匹配,当且仅当:对于一边的所有点集,临集大小大于等于点集大小。 必要性显然。充分性考
阅读全文
摘要:切T1+T2+T4。尤其T4我是唯一一个写正解切了,但一血被一个NTT卡常选手占了。 T1 发现答案只有$3,5,7$。 具体证明考虑$p,p+2,p+4$模$3$意义下互不相同,所以肯定存在一个为$3$的倍数。 T2 lj题目大意。 按照物理课上学的知识来分析一下。 跑个最短路求出每个点的电势,再
阅读全文
摘要:https://ac.nowcoder.com/acm/contest/8051/D 一个长度为$n$的数列满足$\sum a_i\le m$,它的贡献为$(m-\sum a_i)(\prod (a_i+K)2-K2)$ 求所有的这样的数列的贡献和。 \(n,m,K\le 10^6\) 生成函数吼题
阅读全文
摘要:一个DAG,你可以加至多$k$条边,使它的字典序最小的拓扑序最大。 \(n\le 10^5\) 维护两个集合$S$和$T$分别表示零度点和加了某条入边的点。 贪心地钦定即可。 using namespace std; #include <cstdio> #include <cstring> #inc
阅读全文
摘要:有$n$个人,第$i$个人要在$[a_i,b_i]$时间内于$d_i$点处出现。你要消灭掉这些人,每个时间可以选择一个值$R$使得位置不超过$R$的人蒸发,代价为$R$。 问消灭所有人的最小代价。 \(n\le 300\) 离散化,DP设$f_{i,j}\(表示处理完全在\)[i,j]$区间内的人的
阅读全文
摘要:给你$n$个数,每次可以将一个数乘任意正整数。对于$k\in[0,n]$,求进行$k$次操作得到的数列中不同的数的最小值。 \(n\le 3*10^5\) 统计每个数的出现次数。将数分成两类:$A$类,存在另一个数为它的不为$1$的正整数倍;$B$类,不存在另一个数为它的不为$1$的正整数倍。 一种
阅读全文
摘要:题目 一个无向图,一个路径的代价为经过的边的代价的前$k$大和(不足就全部)。问最短路。 \(n,m\le 3000\) 枚举第$k$大的边权$lim$,把小于$lim$的边连着的点缩起来,大于$lim$的边连上。然后跑恰好$k$长度的最短路。 恰好$k$长度的最短路不好做,可以将每个边权$w$变成
阅读全文
摘要:题目 在一个平面直角坐标系上有$n$个矩形的左下端点和$m$个矩形的右上端点。 找到一个左下端点和一个右上端点,使得形成的矩形面积最大。 \(n,m\le 5*10^5\) 似曾相识。 首先将一些显然不会最优的点去掉,那么就会得到两个点的序列,都是从左上到右下排布。 考虑对于一个右上端点$a$,假如
阅读全文
摘要:题目 给你一个排列,定义一个连续段为一个子区间,其中包含的数是连续的。 对于一个子区间,求出包含它的本源连续段,即包含它的最小的连续段。 需要处理若干个询问。 \(n,m\le 10^5\) 正解 一眼看下去这不就是析合树吗? 于是调了半天析合树,最终艰难地通过了。 当然有些比较阳间的做法:可以发现
阅读全文
摘要:IOI2021集训队作业 150题中完成135题……对于我这种又菜又要学文化课的选手怎么可能办得到啊…… 不过能做一点是一点吧……毕竟有那么好的机会不能浪费啊…… upd:由于偷懒只在博客园更新了。 本次泛做试题来自于 21 场 ICPC 竞赛,所有竞赛均在 Codeforces 的 GYM 中可以
阅读全文
摘要:题目 有个非负整数集合$S$,大小为$m$。 接下来会有$n$个询问,每次询问对于一个数列,给出$a_0,a_1,k$,递推式为$a_{i+2}=ka_{i+1}+a_i$,$\max_{x\in S} a_x$为多少。 \(n\le 3*10^5\) \(m\le 10^5\) 比赛的时候直接推通
阅读全文
摘要:有关1<<64。测试: using namespace std; #include <iostream> int main(){ cout<<(1<<64)<<endl; cout<<(1ll<<64)<<endl; cout<<(1ull<<64)<<endl; int k=64; cout<<(
阅读全文
摘要:题目 有若干个国家,第$i$个国家有$a_i$个部落。 国家之间会随机地发生战争,对于两个国家$A$和$B$(分别表示其部落的数目),发生战争后: 有$p$的概率变成国家$A+1$和$B-1$个国家$1$。 有$p$的概率变成国家$B+1$和$A-1$个国家$1$。 有$1-2p$的概率变成$A+B
阅读全文
摘要:题目 有个排列$p$。 对于两个位置$i$和$j$,如果有边从$i$连向$j$,当且仅当$p_i>p_j$且对于任意$k\in (\min(i,j),\max(i,j))$,\(p_k<p_j\)。 你要选择一些点,选择某个点之后这个点以及其连向的点会被覆盖。 求要覆盖所有点最少需要的点。 支持交换
阅读全文
摘要:题目 给你一棵树,每个点有点权。 一个点的贡献为:所有以它为编号最小的(即如果有两个重心,它是编号小那个)重心的大小为$k$的树连通块的方案数乘点权。 问贡献和。 \(n\le 5*10^4\) \(k\le 500\) 首先$O(nk2)$的没有人想不到吧,直接树上背包(这里时间复杂度$O(nk)
阅读全文

浙公网安备 33010602011771号