随笔分类 -  题解

摘要:https://codeforces.com/gym/102870 题意: 给定数组a,定义一次操作为对a求异或前缀和数组,求出的数组作为新的a。求a进行k次操作后的值 \(n<=1e5,a_i<=2^{17},k<=1e18\) 解法: 找规律可以发现,不停进行求前缀和操作,a的值会循环变化,循环 阅读全文
posted @ 2021-02-10 19:54 UCPRER 阅读(199) 评论(0) 推荐(0)
摘要:题意: 给定n,在x轴[0,n]范围内画半径不超过5的圆,圆心在x轴上,要求任意两个圆不相交(可以相切),且已有固定的k个圆,求满足条件的画法方案数。 题解: 先不管已存在的圆考虑从左往右dp,dp[i]表示以i为右边界的方案数,显然从dp[i-1]到dp[i]的转移只和以i为右边界的圆有关,而圆的 阅读全文
posted @ 2020-11-12 20:46 UCPRER 阅读(550) 评论(0) 推荐(0)
摘要:题意: 给定一个图有m条边,边的序号为1-m,q个强制在线询问(假的强制在线,不过在线能做就是了),每次问第l到第r条边组成的子图是否存在环。 思路: 首先每次询问对应的图不一样,要建立一个新图的时间复杂度必然是不够的,考虑先进行预处理。思维一下,一个区间左端点固定了,右端点越大,图上有环的概率越大 阅读全文
posted @ 2020-08-14 13:34 UCPRER 阅读(306) 评论(0) 推荐(0)
摘要:题意: 多组输入。给定一棵树,每条边有两个可能的取值a和b,整棵树有k条边的值来自a,其余边的值来自b,问树的直径最小值为多少? 取值范围:k<=min(20,n-1),n<=20000,\(\sum n<=200000\) 解法: 和直径有关,一般要用到树上dp 发现直接求解直径的最小值难以实现, 阅读全文
posted @ 2020-07-29 13:52 UCPRER 阅读(152) 评论(0) 推荐(0)
摘要:牛客多校第三场 D- Points Construction Problem 链接: Points Construction Problem 题意: 在2D平面内,每个格点(整数点)有一个白点,可以将其中一些点涂黑。 问能否将n个白点涂黑,使得有m对相邻的白点和黑点(指哈夫曼距离为1) 解法: (1 阅读全文
posted @ 2020-07-20 16:56 UCPRER 阅读(226) 评论(0) 推荐(0)
摘要:Operating on a Graph 题意: 给定一个无向图,有n个点,点i初始时属于集合i。给出q个操作,每次操作针对集合oi,将与集合oi相邻的集合全部加入集合oi中(若集合oi已经不存在了就无事发生)。在q个操作结束之后,问每个点属于的集合。 解法: 显然应该用并查集维护每个点属于哪个集合 阅读全文
posted @ 2020-07-20 09:40 UCPRER 阅读(163) 评论(0) 推荐(0)
摘要:题意: 有n种物品,并且知道每种物品的数量。要求从中按顺序选出m件物品的方案数。例如有两种物品A,B,并且数量都是1,从中选2件物品,则排列有"AB","BA"两种。 思路: 显然是一个多重集排列数问题,需要用指数型生成函数。 多重集排列数: k种物品,个数分别为$a_1,a_2,a_3...a_k 阅读全文
posted @ 2020-02-06 16:57 UCPRER 阅读(264) 评论(0) 推荐(0)
摘要:K. Color Graph 题意: 给定一个简单图,点个数 using namespace std; const int maxn=105; const int maxm=1e4+5; struct edge{ int u,v; }E[maxm]; int tot=0; void addedge( 阅读全文
posted @ 2019-11-25 22:27 UCPRER 阅读(1378) 评论(4) 推荐(1)
摘要:网络流24题 1.飞行员配对方案问题 "题目链接" 二分图匹配模板题 阅读全文
posted @ 2019-11-13 16:58 UCPRER 阅读(172) 评论(0) 推荐(0)
摘要:题意: 已知一个序列a,问能否将a映射到序列b,使得相邻元素之间的大小关系不变(三种),且相邻元素不能相差超过k,且每个元素范围在[L,R]内。如果能,求字典序最小的b。 思路: 可以设b[1]的范围为[L,R],从前往后遍历求出b[2]~b[n]每个元素的上界和下界。如果其中有元素已经没有可以使之 阅读全文
posted @ 2019-11-05 20:37 UCPRER 阅读(254) 评论(0) 推荐(0)
摘要:题意: 给定一个H行W列的矩阵,在矩阵的格点上放带权值的卡片(一个点上能放多张)。 现在从每行每列各拿走一张卡片(没有可以不拿),求可以拿到的最大权值。 卡片数N using namespace std; typedef long long ll; const int maxn=2e5+5; str 阅读全文
posted @ 2019-11-05 19:29 UCPRER 阅读(242) 评论(0) 推荐(0)
摘要:思路: 本质是求一个树上的最大匹配能否覆盖所有的点。 dfs遍历,用qian[]数组记录当前节点的子树内有几个没有匹配的点(初始化为 1因为可以匹配掉一个子树中未匹配的点),pipei[]数组记录当前节点是否匹配。如果一个点u的子节点有未匹配的,那么u可以匹配掉一个点,但是有多个未匹配的点,就得累积 阅读全文
posted @ 2019-11-04 23:18 UCPRER 阅读(683) 评论(0) 推荐(0)
摘要:http://codeforces.com/gym/101206/attachments 题意: T组输入,每组给出m,n,k,m为能量总数,n为水晶种类数,k为合成方案数。有的水晶可以用能量制造,有的水晶不行,有的水晶可以通过其他水晶合成。每种水晶都有固定的价格。给出部分水晶的造价,所有水晶的价格 阅读全文
posted @ 2019-10-23 14:21 UCPRER 阅读(266) 评论(0) 推荐(0)
摘要:题意 : 给定数组a[n],用两种操作: 1.将数组中所有值为x的数移至开头 2.将数组中所有值为x的数移至末尾 问,经过最少多少次操作,能将数组a[n]变为非递减的有序数列? (1 using namespace std; const int maxn=3e5+5; int a[maxn],lis 阅读全文
posted @ 2019-10-16 14:55 UCPRER 阅读(215) 评论(0) 推荐(0)
摘要:题意 : 有两种操作:1.在[l,r]上插入一条值为val的线段 2.问p位置上值第k小的线段的值(是否存在) 特别的,询问的时候l和p合起来是一个递增序列 1=p的线段。由此可以想到将l,r,p合起来离散化,从左往右扫描,遇到l,就在权值线段树上插入对应的val,遇到r就删除对应的val,而遇到询 阅读全文
posted @ 2019-10-09 21:34 UCPRER 阅读(351) 评论(0) 推荐(0)
摘要:题意 : 定义:设M为数组a的子集(元素可以重复),将M中的元素排序,若排序后的相邻两元素相差不超过2,则M为a中的一个块,块的大小为块中的元素个数 给出长度为n的数组a,1 using namespace std; const int maxn=105; int a[maxn]; int dp[m 阅读全文
posted @ 2019-10-08 09:50 UCPRER 阅读(171) 评论(0) 推荐(0)
摘要:题意: 有n个水池,每个水池有a[i]单位水,有k次操作,每次操作将水量最多的水池减少一单位水,水量最少的水池增加一单位水,问最后水量最大的水池和水量最少的水池相差的水量。 思路: 二分最后的最大水量和最小水量,特别的,模拟一下可以发现如果总水量sum%n==0,则最大值的下界和最小值的上界均为su 阅读全文
posted @ 2019-09-18 19:01 UCPRER 阅读(222) 评论(0) 推荐(0)
摘要:题意: 给定一块n m的矩形区域,在区域内有若干点,每个顶点发出一条射线,有上下左右四个方向,问矩形被分成了几个区域? 思路: 稍加观察和枚举可以发现,区域数量=射线交点数+1(可以用欧拉定理验证,但是我不会),问题就转变为统计射线交点数量 可以将四个方向的射线分开,用左右的射线去查询与多少个上下的 阅读全文
posted @ 2019-08-21 12:49 UCPRER 阅读(200) 评论(0) 推荐(0)
摘要:原题:https://ac.nowcoder.com/acm/contest/889/H 题意: 给你一些竹子,q个询问,问你从第l到第r个竹子,如果你要用y次砍完它,并且每次砍下来的长度是相同的,问你第x次砍在哪。 思路: 先求前缀和,(l,r)区间要砍y刀,每刀总长度step=(sum[r] s 阅读全文
posted @ 2019-08-19 10:10 UCPRER 阅读(180) 评论(0) 推荐(0)
摘要:原题:https://ac.nowcoder.com/acm/contest/889/J 题意: 二维平面上有n个矩形,每个矩形左下角是(i−1,Li)(i−1,Li), 右上角是(i,Ri)(i,Ri),矩形一开始全是黑色,平面不被矩形覆盖的地方是白色,你要把某些黑色区域涂白(一个矩形可以内部颜色 阅读全文
posted @ 2019-08-16 12:07 UCPRER 阅读(220) 评论(0) 推荐(0)