随笔分类 - OJ——CodeForces
摘要:题目链接 Clear The Matrix 题意 给定一个$4 * n$的矩形,里面的元素为$'.'$或$'*'$。现在有$4$种正方形可以覆盖掉$'*'$,正方形的边长分别为$1,2,3,4$。 求把整个矩形变成全$'.'$的最小代价。 考虑状压DP 设$f[i][j]$为前$i$列已经全部变成'
阅读全文
摘要:题目链接 Fishes 题意 在一个$n*m$的矩阵中,随机选择一个$r * r$的区域覆盖。 一开始我们可以在这个$n*m$的矩阵中选择$k$个点标记为$1$。 我们要选择一个最佳的标记策略,使得覆盖这个$r * r$的区域之后,被覆盖的$1$的个数的期望值最大。 求这个期望值。 $1 <= n,
阅读全文
摘要:题目链接 Prime Gift 题意 给定一个素数集合,求第k小的数,满足这个数的所有质因子集合为给定的集合的子集。 保证答案不超过$10^{18}$ 考虑二分答案。 根据折半的思想,首先我们把这个集合的数分成两组。 然后分别生成这两组质数所能表示出的正整数的集合。 然后把这个集合sort一下,我们
阅读全文
摘要:题目链接 Magic Matrix 考虑第三个条件,如果不符合的话说明$a[i][k] < a[i][j]$ 或 $a[j][k] < a[i][j]$ 于是我们把所有的$(a[i][j], i, j)$升序排序,然后检查当前的三元组$(a[i][j], i, j)$的时候, 先确保第一维值小于他的
阅读全文
摘要:题目链接 Mr. Kitayuta's Colorful Graph 把每种颜色分开来考虑。 所有的颜色分为两种:涉及的点的个数 $> \sqrt{n}$ 涉及的点的个数 $<= \sqrt{n}$ 对于第一种颜色,并查集缩点之后对每个询问依次处理过来若两点连通则答案加一。 对于第二种颜色,并查集缩
阅读全文
摘要:题目链接 Envy 题意 给出一个连通的无向图和若干询问。每个询问为一个边集。求是否存在某一棵原图的最小生成树包含了这个边集。 考虑$kruskal$的整个过程, 当前面$k$条边已经完成操作的时候(就是前$k$小的边已经进行并查集缩点,此时部分点已经形成了若干个连通块) 这个时候突然冒出来一些权值
阅读全文
摘要:题目链接 Tricky Function $f(i, j) = (i - j)^{2} + (s[i] - s[j])^{2}$ 把$(i, s[i])$塞到平面直角坐标系里,于是转化成了平面最近点对问题。
阅读全文
摘要:题目链接 Square Subsets 这是白书原题啊 先考虑状压DP的做法 $2$到$70$总共$19$个质数,所以考虑状态压缩。 因为数据范围是$70$,那么我们统计出$2$到$70$的每个数的个数然后从$2$考虑到$70$。 设$dp[x][mask]$为考虑到$x$这个数的时候,$x$这个数
阅读全文
摘要:题目链接 Eyes Closed 题意 两个人玩一个游戏,现在有两种操作: 1、两个人格子挑选一个区间,保证两个的区间不相交。在这两个区间里面各选出一个数,交换这两个数。 2、挑选一个区间,求这个区间的和的期望。 对于第一种操作,先求出两个区间的长度$len1$和$len2$,再求出两个区间的期望和
阅读全文
摘要:题目链接 Legacy 首先对于输入的$n$,建立一棵线段树。 显然线段树有大概$2n$个结点,每个节点对应一段区间 我们把这$2n$个结点加入我们的无向图中,一起跑最短路。 具体连边方案: 我们把这棵线段树复制一下,另外一棵倒过来。 首先第一棵线段树,每个结点向他的两个儿子连有向边,连到叶子结点的
阅读全文
摘要:题目链接 Maximum Element 题意 现在有这一段求序列中最大值的程度片段: (假定序列是一个1-n的排列) 显然这段程序是错误的……有很多可以X掉这段程序的排列 求这样的排列有多少个。 题目是让我们求符合这样条件的排列个数: 1、存在某个数,他比前面的数都大并且小于$n$; 2、他比他后
阅读全文
摘要:题目链接 National Property 给定n个单词,字符集为m 现在我们可以把其中某些字母变成大写的。大写字母字典序大于小写字母。 问是否存在一种方案使得给定的n个单词字典序不下降。 首先判断是否存在相邻的两个单词,后一个是前一个的前缀。(两者不相等) 如果出现这种情况则直接输出无解。 建立
阅读全文
摘要:题目链接 A Simple Task 题意 给出一个小写字母序列和若干操作。每个操作为对给定区间进行升序排序或降序排序。 考虑权值线段树。 建立26棵权值线段树。每次操作的时候先把26棵线段树上的所有在该区间内的信息清空。 然后再通过类似计数排序的方式从左往右(或从右往左)依次塞进去。
阅读全文
摘要:题目链接 Danil and a Part-time Job 题意 给出一系列询问或者修改操作 $pow$ $x$表示把以$x$为根的子树的所有结点的状态取反($0$变$1$,$1$变$0$) $get$ $x$表示求以$x$为根的子树中状态为$1$的结点数。 首先大力$dfs$序,然后线段树操作一
阅读全文
摘要:题目链接 Ciel and Flipboard 题意 给出一个$n*n$的正方形,每个格子里有一个数,每次可以将一个大小为$x*x$的子正方形翻转 翻转的意义为该区域里的数都变成原来的相反数。 求经过若干次操作之后整个正方形的所有数之和。 这题关键就是要知道这个结论。 假设$st[i][j]$为$a
阅读全文
摘要:题目链接 Yet Another Minimization Problem 题意 给定一个序列,现在要把这个序列分成k个连续的连续子序列。求每个连续子序列价值和的最小值。 设$f[i][j]$为前$i$个数分成$j$段的最优解 不难得出状态转移方程$f[i][j] = min(f[k][j - 1]
阅读全文
摘要:题目链接 Roads in the Kingdom 题意 给出一个环套树的结构,现在要删去这个结构中的一条边,满足所有点依然连通。 删边之后的这个结构是一棵树,求所有删边情况中树的直径的最小值。 显然能被删掉的边是环上的边。 首先预处理出这个环。环上的每一个点都是一棵树的根。 假设环上有$cnt$个
阅读全文
摘要:题目链接 Flights for Regular Customers 首先按照$d$的大小升序排序 然后分成$m$个时刻,每条路径一次处理过来。 $can[i][j]$表示当前时刻$i$能否走到$j$ $can$通过上一条路径后的$can$和当前的可行路径矩阵的$d$次幂得到。 这由$floyd$求
阅读全文
摘要:题目链接 Tree and Queries 题目大意 给出一棵树和每个节点的颜色。每次询问$vj, kj$ 你需要回答在以$vj$为根的子树中满足条件的的颜色数目, 条件:具有该颜色的节点数量至少为$kj$。 (莫队居然可以过) 首先转$DFS$序,这样就变成了区间查询。 然后直接套用莫队,求出每次
阅读全文
摘要:题目链接 Fire 题意 有n个物品,每个物品的挽救时间代价为ti, 消失时刻为di, 价值为pi。 如果要救某个物品,必须在他消失之前救出来。 同一时刻最多只能救一件物品。 当前耗时为当前已经救出的物品的ti累积。 你需要救出总价值尽可能大的物品,并输出方案。 考虑DP f[i][j]为考虑前i个
阅读全文

浙公网安备 33010602011771号