07 2019 档案

摘要:1198 C Matching vs Independent Set 大意: 给定$3n$个点的无向图, 求构造$n$条边的匹配, 或$n$个点的独立集. 假设已经构造出$x$条边的匹配, 那么剩余$3n-2x$个点, 若$x<n$, 则$3n-2x\ge n$可以构造出独立集. #include 阅读全文
posted @ 2019-07-31 10:25 uid001
摘要:大意: 若一个序列存在两个数的积为完全平方数, 则为好序列. 给定序列$a$, 每次询问求子区间$[l,r]$最少修改多少次可以成为好序列, 每次修改可以任选素数$p$, 任选一个数乘或除$p$. $dp_{x,y}$表示状态为$x$删除$y$个因子的最大位置 阅读全文
posted @ 2019-07-30 21:08 uid001
摘要:方程$ax\equiv b(mod\space p)$有整数解的充要条件为$gcd(a,p)|b$,若有解则解的个数为$gcd(a,p)$. 若$x_0,y_0$为方程$ax+by=c $的一组解, 则任意解为 $ \begin{cases} x=x_0+\frac{bt}{gcd(a,b)} \\ 阅读全文
posted @ 2019-07-30 19:08 uid001
摘要:大意: 给定树, 每个点有一个十进制数位, 求有多少条路径组成的十进制数被$k$整除. 点分治, 可以参考CF715C, 转化为求$10^a x+b\equiv 0(mod\space k)$的$x$的个数. 要注意 $tmp$不要设成全局!! 如果$\text{y%z==0}$的话, 那么$\te 阅读全文
posted @ 2019-07-29 22:51 uid001
摘要:分块优化树状数组操作. $O(1)$单点修改, $O(\sqrt{n})$区间查询. $O(1)$单点查询, $O(\sqrt{n})$区间修改. 阅读全文
posted @ 2019-07-28 22:06 uid001
摘要:大意: 给定无向图, 点$i$点权$b_i$, 边$(x,y,z)$对序列贡献是把$A[b_x \oplus b_y]$加上$z$. 多组询问, 一共三种操作: 1. 修改点权. 2.修改边权. 3. 求序列$A$区间和. 图按度数分块. 对于轻点的贡献直接树状数组维护, 复杂度$O(17\sqrt 阅读全文
posted @ 2019-07-28 20:31 uid001
摘要:struct _ { unsigned a[32]; _ () {memset(a,0,sizeof a);} void ins(unsigned x) { for(int i=31;i>=0;--i) if (x>>i&1) { if (a[i]) x ^= a[i]; else { a... 阅读全文
posted @ 2019-07-28 10:46 uid001
摘要:大意: $n*m$棋盘, 初始位置$(1,1)$, 横坐标为$\frac{m+1}{2}$时可以向下走, 否则只能左右走, 每走一步花费$1$秒. 有$k$管奶, 第$i$罐位置$(r_i,c_i)$, 要花费$t_i$的时间去喝. 对于所有的$1\le i\le k$, 求出喝完$i$管奶最短用时 阅读全文
posted @ 2019-07-26 12:45 uid001
摘要:大意: 给定$n(n\le 10^{21})$, 求$\sum\limits_{i=1}^n gcd(\lfloor\sqrt[3]{i}\rfloor,i)\mod 998244353$ 首先立方根可以分块, 转化为 $\sum\limits_{i=1}^{\lfloor\sqrt[3]{n}\r 阅读全文
posted @ 2019-07-26 11:07 uid001
摘要:大意: 给定$N^3$立方体, 每个单位立方体权值为三个坐标异或, 每次沿坐标轴切一刀, 得分为两半内权值和的乘积, 求切成$n^3$块的最大得分. 可以发现得分与切法无关, 假设每个点权值为$a_i$, 就有$ans=\frac{(\sum a_i)^2-\sum a_i^2}{2}$. 从而转化 阅读全文
posted @ 2019-07-25 23:04 uid001
摘要:大意: 给定序列$a$, 元素范围$[1,C]$, 求一个最长子序列, 满足每个元素要么不出现, 要么出现次数$\le K$. 枚举右端点, 考虑左端点合法的位置. 显然一定是$C$种颜色合法位置的交, 可以用线段树维护合法颜色的种类数, 每次二分出最小的满足合法个数为$C$的位置更新答案. 考虑右 阅读全文
posted @ 2019-07-25 20:20 uid001
摘要:大意: 给定无向连通图, 求任意两点间第$k$小的最短路. $k$比较小, 那么答案一定不超过第$k$大边权, 取前$k$大边跑$floyd$即可. 阅读全文
posted @ 2019-07-25 11:44 uid001
摘要:大意: 长为$n$的数组, 每个位置范围$[0,3]$, $m$个限制$(l,r,x)$表示$[l,r]$内有$x$种数, 求方案数. 维护每个数字最后一次出现位置, 暴力$DP$ 实现时有个技巧是把还没有选择的数位置设为$0$ 阅读全文
posted @ 2019-07-22 21:35 uid001
摘要:大意: 给定序列$a$, 给定$m$个操作, 求最后序列每一项的值. 一共$3$种操作, 其中第$k$种操作将序列变为$b_i=\sum\limits_{j=i-kx}a_j$, $(0\le x,1\le j\le i\le n)$ 可以发现$\sum b_ix^i=(\sum a_i x^i)( 阅读全文
posted @ 2019-07-22 19:58 uid001
摘要:大意: 给定$nm$大小的$01$矩阵, $1\le n\le 20,1\le m\le 1e5$, 可以任选行列翻转, 求最终$1$总数最少为多少. 显然有$O(m2^n)$的暴力算法 也就是枚举翻转哪些行, 然后对于一列, 若$1$的个数多于$0$的个数就翻转. 可以发现对于相同的列, 翻转行对 阅读全文
posted @ 2019-07-20 11:25 uid001
摘要:大意: 给定序列, 求所有异或和为$0$的子序列大小之和. 先求出线性基, 假设大小为$r$. 对于一个数$x$, 假设它不在线性基内, 那么贡献为$2^{n-r-1}$ 因为它与其余不在线性基内数的任意组合后均可以与线性基异或后变为$0$, 产生$1$的贡献. 所以问题就转化为求多少个数可以不在线 阅读全文
posted @ 2019-07-19 21:52 uid001
摘要:大意: 给定$n$个凸多边形, $q$个询问, 求$[l,r]$内闵可夫斯基区间和的顶点数. 要用到一个结论, 闵可夫斯基和凸包上的点等于向量种类数. 阅读全文
posted @ 2019-07-18 11:04 uid001
摘要:大意: 给定两个字符串$a,b$, 每个字符为$0-9$, 每次操作将$a$中相邻两位加$1$或减$1$, 操作后每个数仍要为$0-9$, 求最少操作使$a$变成$b$. 先不考虑范围, 判断是否成立. 然后暴力输出方案即可 阅读全文
posted @ 2019-07-16 23:16 uid001
摘要:大意: 给定字符串, 每次删除一个回文子串, 求最少多少次删完. 阅读全文
posted @ 2019-07-16 22:07 uid001
摘要:大意: 给定矩阵$p$, $p_{i,j}$表示每一秒点$i$到点$j$有一条边的概率, 每秒钟可以走一条边, 或者停留在原地, 求最优决策下从$1$到$n$的期望用时. $f_x$为从$x$到$n$的期望用时, 每次肯定尽量选取$f$值小的后继走 假设每个点按$f$值排序后的序列为$a_1,a_2 阅读全文
posted @ 2019-07-16 21:08 uid001
摘要:大意: 给定$n$张卡$(a_i,b_i,c_i,d_i)$, 初始坐标$(0,0)$. 假设当前在$(x,y)$, 若$x\ge a_i,y\ge b_i$, 则可以使用第$i$张卡, 使用后达到坐标$c_i,d_i$. 求最少使用多少张卡后才能使用最后一张卡. 直接$BFS$的话是$O(n^2) 阅读全文
posted @ 2019-07-16 19:31 uid001
摘要:大意: 给定$n$堆石子, 两人轮流操作, 每次操作两种选择 $(1)$任选非空堆拿走一个石子 $(2)$任选石子数为$2x(x>0)$的一堆, 替换为$k$堆$x$个石子. ($k$给定) 最后无法操作则输, 求谁能赢. 根据$SG$定理可以得到 $sg(x) = \begin{cases} me 阅读全文
posted @ 2019-07-16 15:51 uid001
摘要:按照这篇博客 学了一下长链剖分. 1. CF 1009F Dominant Indices 大意: 给定树, 定义$d_{x,i}$为$x$子树内到$x$距离为$i$的点的个数. 对于每个点$x$, 输出使$d_{x,i}$最大的$i$, 有多个输出最小的. 2. COGS 2652 大意: 给定树 阅读全文
posted @ 2019-07-15 21:04 uid001
摘要:大意: $n$个题, 按照第$i$题随机$t_i$或$t_i+1$秒钟完成, 最多做$T$秒, 求做题数期望. 期望转为做题数$\ge x$的方案数之和最后再除以总方案数 这是因为$\sum\limits_{x}x{cnt}_x=\sum\limits_{x}\sum\limits_{y\ge x} 阅读全文
posted @ 2019-07-15 11:37 uid001
摘要:大意: 有一段$n$千米的路, 每一次走$1$千米, 每走完一次可以休息一次, 每连续走$x$次, 消耗$a[1]+...+a[x]$的能量. 休息随机, 求消耗能量的期望$\times 2^{n-1}$. 简单计数题, 枚举每种长度的贡献. 阅读全文
posted @ 2019-07-14 20:02 uid001
摘要:大意: 给定$n$个平面点, 定义集合$S(l,r,a)$表示横坐标$[l,r]$纵坐标$[a,\infty]$内的所有点. 求可以得到多少种不同的集合. 从上往下枚举底层最右侧点, 树状数组统计贡献. 阅读全文
posted @ 2019-07-14 12:46 uid001
摘要:大意: 给定01串, 两人轮流操作, Tokitsukaze先手. 每次操作可以选择长为$k$的区间, 全部替换为$0$或$1$, 若替换后同色则赢. 求最后结果. 先判断第一步是否能直接赢, 不能的话若所有后继都是必败则必败, 否则平局. 正确性很显然, 因为一次操作不能直接赢的话, 只要模仿对手 阅读全文
posted @ 2019-07-14 10:38 uid001
摘要:大意: 给定序列$a$, 给定整数$x$. 两种操作(1)单点修改 (2)给定区间$[l,r]$,求有多少子区间满足位或和不少于$x$. 假设不带修改. 固定右端点, 合法区间关于左端点单调的. 可以预处理出最近的合法的左端点位置.那么每次询问答案就为$\sum\limits_{\substack{ 阅读全文
posted @ 2019-07-12 21:04 uid001
摘要:大意: 给定无向连通图, 定义两个点$s,t$个价值为切断一条边可以使$s,t$不连通的边数. 求最大价值. 显然只有桥会产生贡献. 先对边双连通分量缩点建树, 然后求直径即为答案. 阅读全文
posted @ 2019-07-12 12:17 uid001
摘要:大意:定义一个长为$k>1$且首项为$k-1$的区间为好区间. 定义一个能划分为若干个好区间的序列为好序列. 给定序列$a$, 求有多少个子序列为好序列. 刚开始一直没想出来怎么避免重复计数, 看了别人题解才会. 设$dp[i]$为以$a_i$开头的个数, 枚举$a_i$所在好区间的最后一个数$j$ 阅读全文
posted @ 2019-07-12 11:17 uid001
摘要:有一个n个点的无向图,有m次查询,每次查询给出一些(xi,yi) 令dist(x,y)表示x和y点在图中最短距离,dist(x,x)=0,如果x,y不连通则dist(x,y) = inf 每次查询图中有多少个点v与至少一个这次询问给出的(xi,yi)满足dist(v,xi)<=yi 阅读全文
posted @ 2019-07-08 16:24 uid001
摘要:大意: 给定矩阵, 求选出一个最大矩形, 满足矩形内每个元素互不相同. 考虑枚举上下左三个边界, 求出最大右边界的位置. 注意到固定上边界, 下边界递推时, 每个左边界对应最大右边界是单调不增的. 所以只需考虑下边界所在行的影响, 与之前的取最小即可. 用$set$求的话复杂度是$O(n^3logn 阅读全文
posted @ 2019-07-07 19:45 uid001
摘要:大意: 给定数组$a$, 求划分为$m$段的最少费用 第$i$段费用$c_i$为异或和, 总的费用为每段费用的或和 从高位到低位贪心, 若第$i$位$1$的个数为奇数, 费用一定会加上$2^i$. 否则的话, 可以求出所有可以分割的位置个数, 若不少于$m$则可以不用增加费用. 阅读全文
posted @ 2019-07-05 20:51 uid001
摘要:大意: $n$对情侣, $2n$个座位, 对于一个方案, 若$k$对情侣相邻, 则喧闹值增加$D^k$, 求喧闹值期望. 跟CF 840C一样, 设$dp[i][j]$为$i$个人, 有$j$对情侣相邻, 枚举每个人转移即可. 阅读全文
posted @ 2019-07-05 19:03 uid001
摘要:大意: 给定无向图, 边权只有两种, 对于每个点$x$, 输出所有最小生成树中, 点$1$到$x$的最短距离. 先将边权为$a$的边合并, 考虑添加边权为$b$的边. 每条路径只能经过每个连通块一次, 直接状压的话有$O(n2^n)$个状态. 但是注意到点数不超过$3$的连通块内部最短路不超过$2a 阅读全文
posted @ 2019-07-04 19:25 uid001
摘要:大意: 给定括号序列, 每次询问交换两个括号, 求括号树的直径. 用[ZJOI2007]捉迷藏的方法维护即可. 阅读全文
posted @ 2019-07-04 17:37 uid001
摘要:大意: 给定树, 要求维护一个点集, 支持删点添点, 询问点集直径. 本题做法比较多. 一个显然的做法是, 线段树维护区间直径, 然后根据点集直径的性质, 合并后直径端点一定是四个端点其中两个, 枚举取最大即可. 如果用树剖求$lca$, 复杂度就为$O(nlog^2n)$. 还有一种做法是利用括号 阅读全文
posted @ 2019-07-04 13:37 uid001
摘要:大意: 给定$n$个数, 任意两个$gcd>1$的数间可以连边, 求是否能构造一棵BST. 数据范围比较大, 刚开始写的$O(n^3\omega(1e9))$竟然T了..优化到$O(n^3)$才过. 思路就是先排个序, 记$L[i][j]$表示区间$[i,j]$是否能组成以$i-1$为根的$BST$ 阅读全文
posted @ 2019-07-03 23:08 uid001
摘要:二. 变压器 磁阻$R_m=\frac{l}{\mu s}$ 三相变压器星形联结 $U_\Phi=\frac{U_N}{\sqrt{3}},I_\Phi=I_N$,三角形联结$U_\Phi=U_N,I_\Phi=\frac{I_N}{\sqrt{3}}$ 额定容量$S_N$, 功率因数$cos\ph 阅读全文
posted @ 2019-07-03 19:56 uid001
摘要:大意: 无向图, 其中k条边是你的, 边权待定, m条边是你对手的, 边权已知. 求如何设置边权能使最小生成树中, 你的边全被选到, 且你的边的边权和最大. 若有多棵最小生成树优先取你的边. 先将$k$条边合并, 然后按边权从小到大添对手的边, 若连通, 则树链取最小值, 否则合并一下. 正确性其实 阅读全文
posted @ 2019-07-03 18:01 uid001
摘要:1. 给定$d,k$, 求最小的被$d$整除, 且各数位仅有$k$和$0$组成的数. $(1\le k\le 9,1\le n\le 1e6)$ 从高位到低位$BFS$, BFS求出字典序最小的方案. 2. 被$d$整除, 数位和为$s$的数. (CF 1070A) 3. 给定$k$种浓度的水, 每 阅读全文
posted @ 2019-07-02 11:12 uid001
摘要:大意: $n$个城市, $m$种核电站, 第$i$种假设要建在第$x$个城市, 必须满足$[x-i,x+i]$范围内无其他核电站, 求建核电站的方案数. 简单$dp$题, 设$dp[i][j]$为位置$i$建第$j$种核电站的方案数. 枚举上一个核电站的位置来转移, 有: $dp[i][1]=1+d 阅读全文
posted @ 2019-07-01 23:41 uid001