- 博客(55)
- 收藏
- 关注
原创 概率期望题单
https://www.luogu.com.cn/problem/P1654 https://www.luogu.com.cn/problem/P4745https://www.luogu.com.cn/problem/P1291https://www.luogu.com.cn/problem/P4457https://www.luogu.com.cn/problem/P4206https://www.luogu.com.cn/problem/P1850https://www.luogu.com.cn/pr
2024-03-25 01:53:23
195
原创 十月杂题选做(贰)
按格转移状态,将行列、余数、选择个数全部压入状态中,四维数组转移即可,行与行的转移特判一下。带权并查集维护一下连通性和每个连通块的直径,合并的时候画个图处理一下就行了。,尝试连边转化为图论问题,建出基环树,手完一下发现一个环的和必定是。函数处理,由于一定走最短路,所以考虑从终点开始跑。练习题,正好卡空间卡不过去,要用滚动数组优化掉一维。用异或前缀和转化问题为,询问区间内两点异或为。的点对数,用桶记录出现次数,上莫队即可。的联通情况,前两种情况就是块内路径数。的中转点,搞一搞就好了。考虑开两个并查集维护。
2023-11-06 14:41:49
171
原创 十月杂题选做
给一棵树,每个点都是白色,每次可以将一个与黑点相连的白点染成黑色,获得所在联通块的收益,第一次可以任意选点,求最大收益。数据范围较小,存在若干限制条件,考虑费用流建模,把每个点拆成入点和出点,直接跑最小费用最大流即可。考虑点分治,每次把重心从大到小编号,所有经过重心的路径都可以满足条件,然后分治,最多不超过。板子题,考虑网络流建模,建超级源汇+虚拟源汇,每条边至少走一次,考虑限制下界为。考虑换根,每次将根交换到儿子,发现这两点的贡献会改变,计算下变化的量,转移即可。的转移,枚举存在这条边的图,二分找到从。
2023-10-24 01:42:59
286
1
原创 菜菜多校1 题解
考虑原图上两点u,v,在新图上 一次可以走原图的两步,如果dis(u,v) 是偶数,新距离为dis/2,如果dis(u,v)为奇数,新距离为(dis+1)/2合并所有答案 ans=(原图上所有点对dis的和 + 原图上dis为奇数的点对数量)/2前者我们通过枚举每条边的贡献,在一遍dfs中处理出来,后者我们可以将原树奇偶分层,距离为奇数的两点一定在奇偶不同的两层,计算出两层的点数,相乘即是点对的数量
2023-08-05 15:11:41
305
原创 线段树合并例题
将树看成有根树,取1作为根,每次发放粮食的操作 利用树上差分转化为4次单点发放粮食,直接修改即可,查询数量最多的粮食种类,我们采用 权值线段树 维护每种粮食的数量,建n棵线段树,最后通过 线段树合并+dfs 求出线段树的树上前缀和。求标号第k小的岛,我们考虑使用权值线段树,通过线段树上二分查找第k小,对于多个岛屿,我们考虑动态开点建 n 棵线段树,对于岛屿修路的操作 使用并查集维护连通块,并利用线段树合并实现岛屿合并。
2023-08-02 22:47:54
387
原创 bitset优化例题
用一个 bitset dp 维护 当前的数 可以组成哪几个 x ,用 bitset tmp 维护 当前的状态 可以转移到哪几个状态,滚动优化空间,复杂度为O(n^5 / 64)
2023-07-30 16:11:04
408
原创 P4053 建筑抢修(优先队列维护反悔贪心)
如果修不了的话,判断 修这个建筑的时间 和 堆顶元素(之前修建筑的最大时间),如果比之前时间小的话,进行反悔操作,即不修之前的那个建筑,改修现在的建筑,由于按照报废时间排序,当前建筑一定不会报废,实现反悔贪心。给 n 个建筑,每个建筑有一个维修时间 T1,如果在 T2 时间内还没维修完,就报废了,只能一个一个维护建筑,问最多为维修几个建筑。将所有建筑按照报废时间排序,然后一次遍历,如果可以修的话一定要修,并把修这个建筑需要的时间 T1 放进优先队列维护。
2023-07-26 19:28:55
203
原创 线段树题单
然后离线下来每次询问,把所有询问按左端点排序,然后再遍历询问,保证了每次查询的左端点递增,这样 小于 当前询问 l 的数值一定不会在后面的区间里出现,用一个 l 指针维护再也不会查询到的点,每次将 经过的 l 的下一个相同数字处 ans [ nxt [ i ] ] 赋值 INF,表示上一个相同的点不会访问到,这样便可转换为单纯的区间查询,复杂度为(n+q)log(n)给一个 n 个元素的数组 a ,m 次询问,每次询问区间 [ l , r ] 内 数值相等的两个数的最近距离,不存在则输出 -1。
2023-07-25 20:55:34
198
原创 Codeforces Round 838 (Div. 2)题解
枚举所有对答案有贡献的边,一定在1到n的路径上,这条边把树分成两棵树,一边是1,一边是n,设大小为 i 和 n-i ,树中的点共有C(n-2,i-1)种选择,树的形状个数为 i ^(i-2) 和 (n-i)^(n-i-2),每种形状边有 i*(n-i) 种选择,如果 i 为奇数,则边为-1,否则为1,枚举 i 统计答案。给一棵n个点的树,树上每条边有权值1或-1,每个节点所有的边的乘积为-1,求所有情况的树上,从1到n路径权值的和。如果n为奇数,-1的个数为奇数,每条边贡献2个-1,不符题意。
2023-07-07 01:25:10
227
原创 Codeforces Round 881 (Div. 3) 题解
树形dp,我们发现每个点的值是1或-1,所以 所有字段和 形成的区间是连续的,中间不会出现断点,我们用dp数组记录当前点必须选的最值,用 mx/mn 记录整体最值,状态转移方程为dpmax[cnt]=max(x,dpmax[v]+x) ,每个点v能取的区间就是 [mn,mx] ,判断即可。给一棵有根树,树上有两个苹果,沿着儿子往下掉落,最终位于叶子,求可能的掉落位置数对(pos1,pos2)的个数。给一个长为n的全为0的数组,给m个线段,有q次操作顺序执行,每次将位置x的数变成1。
2023-06-21 01:26:06
1887
3
原创 Codeforces Round 880 (Div. 2)题解
Consider all equalities of form a+b=c, where a has A digits, b has B digits, and c has C digits. All the numbers are positive integers and are written without leading zeroes. Find the k-th lexicographically smallest equality when written as a string like a
2023-06-20 11:55:50
566
原创 Codeforces Round 879 (Div. 2) AK题解
也可以这么理解:区间减去一个区间剩余的部分有三种可能,一种是剩左边,一种是剩右边,一种是两边都剩,前两种情况枚举找出最小值,第三种情况的最小值是maxlen - minlen。要使每一位上的差值最大,尽可能都是0和9,贪心,如果 L 和 R 的长度不同,则 L 用9补齐位数,取99999,R第一位不变,剩下取0,即 x00000,符合题意。然后枚举区间,区间剩余最大有两种可能,一种是减去maxl,一种是减去minr,一定是交叉的(如果包含,一定小于等于初始的ans)操作1:改变某个字符串的某个字符;
2023-06-20 00:32:19
1767
2
原创 Codeforces Round 867 (Div. 3) AK题解
Mushroom Filippov cooked himself a meal and while having his lunch, he decided to watch a video on TubeTube. He can not spend more than t seconds for lunch, so he asks you for help with the selection of video.The TubeTube feed is a list of n videos, indexe
2023-05-05 22:13:46
1184
4
原创 Codeforces Round 868 (Div. 2) 题解
Consider an array a1,a2,…,anconsisting of numbers 1 and −1. Define A-characteristic of this array as a number of pairs of indices 1≤i<j≤n such that ai⋅aj=1Find any array a with given length n with A-characteristic equal to the given value k.InputEach test
2023-04-29 21:33:20
799
原创 2022 ICPC Gran Premio de Mexico Repechaje 题解
BFS搜索,记录终点到起点的距离,搜到挨着终点的第一个点的时候停止这一方向的搜索,其它方向搜到死路为止。给一个长度为n的数组,在接下来m次查询x,x递减,所有大于x的值都会变成x,然后输出元素和。小明每天最多走3000步,一分钟最多走x步,最多走15分钟,问小明能走多少分钟。限制条件:(1)除了没有路可走的情况下,不能走已经走过的路(走到死路原路返回)先把数组排序,前缀和预处理,然后二分查找第一个大于x的数,直接计算即可。给一棵n个点的无根树,任意两点都联通,求从起点到终点最多可以走多少步。
2023-04-24 17:39:27
4307
原创 2023第14届蓝桥杯C/C++A组省赛题解
试题 I: 像素放置时间限制: 1.0s内存限制: 256.0MB本题总分:25 分【问题描述】小蓝最近迷上了一款名为《像素放置》的游戏,游戏在一个 n × m 的网格棋盘上进行,棋盘含有 n 行,每行包含 m 个方格。玩家的任务就是需要对这n × m 个方格进行像素填充,填充颜色只有黑色或白色两种。有些方格中会出现一个整数数字 x(0 ≤ x ≤ 9),这表示当前方格加上周围八个方向上相邻的方格(分别是上方、下方、左方、右方、左上方、右上方、左下方、右下方)共九个方格内有且仅有 x
2023-04-23 02:42:46
8450
2
原创 codeforces dp例题学习
状态转移方程,dp [ 1 ] [ i ] = max ( dp [ 1 ] [ i -1 ] , dp [ 2 ] [ i - 1 ] ) + a[ i ]dp [ 1/2 ] [ i ] 表示第 i 个元素 操作/不操作 后的最大前缀和。dp[ 1/2 ] [ j ]表示 第1/2行第 j 列能否作为画笔的终点。一列一列往后扫,如果是W,连不到当前点,如果是B,则由前一列状态转移来。初始化:如果第一列的字符是B,从这个点开始,同时它是第1列的终点。给一个2*m的字符数组,能不能一笔把所有的B连起来。
2023-04-21 15:41:05
844
原创 Educational Codeforces Round 147 div2题解
D. Black Cells(模拟)You are playing with a really long strip consisting of1018 white cells, numbered from left to right as0,1,2and so on. You are controlling a special pointer that is initially in cell00. Also, you have a "Shift" button you can press
2023-04-21 02:26:03
1587
2
原创 Codeforces Round 866 (Div. 2) 题解
After holding one team contest, boy Yura got very tired and wanted to change his life and move to Japan. In honor of such a change, Yura changed his name to something nice.Fascinated by this idea he already thought up a name s consisting only of characters
2023-04-17 01:32:38
1308
4
原创 大数据LIS (贪心+二分优化/树状数组优化)
n 的两个排列 P1 和 P2 ,求它们的最长公共子序列。接下来两行,每行为 n 个数,为自然数 1,2,…一个数,即最长公共子序列的长度。第一行是一个数 n。
2023-04-06 16:07:27
491
原创 Codeforces Round 862 (Div. 2) 题解
There is an array a consisting of non-negative integers. You can choose an integer x and denote bi=ai⊕xfor all 1≤i≤n where ⊕⊕ denotes the bitwise XOR operation. Is it possible to choose such a number x that the value of the expression b1⊕b2⊕…⊕bnequals 0?It
2023-04-03 00:37:48
754
原创 2023 年 华东师范大学“图森未来杯”校赛 题解
Cuber QQ 正在做 CuberOJ 上的一道难题。这是一道有着 n 组评测数据的传统算法竞赛题,每组测试数据的第一行都是一个整数,表示这组测试数据的编号:第一组数据的第一行是一个 1,第二组数据的第一行是一个 2,以此类推。每组测试数据的答案都是 0 或 1。CuberOJ 的评测机制与 ICPC 竞赛类似。它会按照编号逐一使用评测数据来测试提交的程序。如果选手的程序通过了一组评测数据,那么评测机会继续评测下一组数据;而如果选手的程序输出了错误的答案,那么评测机会反馈WA并且不再进行后续的评测。
2023-04-01 22:03:49
1690
1
原创 Codeforces Round 860 Div. 2 题解
You are given two arrays a1,a2,…,anand b1,b2,…,bnIn one operation, you can choose any integer i from 11 to n and swap the numbers ai and bi.Determine whether, after using any (possibly zero) number of operations, the following two conditions can be satisfi
2023-03-27 02:09:25
902
原创 Educational Codeforces Round 145 Div. 2 题解
否则先把所有都赋值为-2,从前往后第i个数可以构成n-i+1个子序列,如果这些子序列能全为正数则赋为正无穷大,否则赋为1+2*(k-1),k为剩下的正数个数。给你四个关闭的灯泡,每次打开或关闭一个,不能连续两次操作相同颜色的灯泡(数字相同为同色),问全部打开需要的最少次数。注意到实质为以(0,0)为圆心画正方形,顶点为(k,0),边长为 (k+1)*根号2 ,可以包含(k+1)^2个点。找规律,全部相同时,不能全部打开;构造一个长为n的序列,他的k个连续子序列和为正数,其他连续子序列和为负数。
2023-03-24 01:35:33
1230
2
原创 2023年中国传媒大学程序设计大赛 题解
小L同学最后一个出场,现在他知道了M个对手的得分ci,以及自己的得分S,他希望自己在完成下一个动作后的名次能够到达前K名(可以与其他人并列第K名)。所以选择编号为1的动作成功率最高。接下来的N行,每行输入P,Q,M,其中P是一个非负整数,表示袜子的图案;Q是一个字符,当Q取值为'L'时,表示袜子只适配左脚,当Q取值为'R'时,表示袜子只适配右脚,当Q取值为'*'时,表示袜子同时适配左右脚;其中,Diana 在第2天和第3天,都吃到了饱腹度之和为 5 的食物,而在第4天,吃到了饱腹度之和为 6 的食物。
2023-03-22 20:13:13
536
原创 Codeforces Round 859 Div. 4题解
还是前缀和,如果c[i]小于等于前缀和,就合法,加进去,否则跳出。如果有两个相同字母 间隔奇数单位,一定不能形成01串,否则可以。贪心,先全部偶数给A,再奇数给B,比较大小。前缀和,然后各部分相加取模即可。
2023-03-20 01:21:07
1264
4
原创 Codeforces Round 858 (Div. 2)题解
You are given an array a of length n. The score of a is the MEX†† of [a1+a2,a2+a3,…,an−1+an]. Find the minimum score of a if you are allowed to rearrange elements of a in any order. Note that you are not required to construct the array a that achieves the
2023-03-18 22:46:40
950
11
原创 2022 ICPC 杭州站 题解
有n个物品,背包容量为k,每个物品重量为pi,取的重量不同,获得的价值也不同,从1到pi分别为wij,如果当前背包容量足够,则必须取完整的重量,否则才可以取部分重量来填满剩余的背包容量,问能取得的最大价值是多少?最多一个物品取部分重量,其他全部取出,用0表示没有物品取部分重量,1表示取过部分重量。每次放一个物品,更新放部分重量和全部重量后的背包价值,全部物品放完后搜一遍即可得到答案。当时dp数组没有清为-INF,wa了整整一下午,恰好取完求最大值要全部清为负无穷,恰好取完求最小值要全部清为正无穷。
2023-03-17 14:03:43
1055
原创 ST表处理RMQ问题模板
ST表的实现利用了倍增思想,用于处理可重复贡献问题,例如区间最大值、区间最小值、区间最大公因数等(x opt x = x)问题。
2023-03-14 07:05:29
169
原创 背包dp总结(01,完全,多重,多维,混合,分组,树上背包)
辰辰是个天资聪颖的孩子,他的梦想是成为世界上最伟大的医师。为此,他想拜附近最有威望的医师为师。医师为了判断他的资质,给他出了一个难题。医师把他带到一个到处都是草药的山洞里对他说:“孩子,这个山洞里有一些不同的草药,采每一株都需要一些时间,每一株也有它自身的价值。我会给你一段时间,在这段时间里,你可以采到一些草药。如果你是一个聪明的孩子,你应该可以让采到的草药的总价值最大。如果你是辰辰,你能完成这个任务吗?
2023-03-13 20:17:18
131
原创 Nebius Welcome Round (div.1 + div.2)题解
注:病人可以看病的时间为[ ti , ti+w ],试剂盒可以用的时间为 [ x , x+d ] (x为拆开时间)移动规则:每秒可以向上、下、左、右、移动一步,或者保持不动,连续两秒不能往同一个方向移动。贪心直接算,先往离的远的地方走,然后两个方向交替行走,一边到达后,走一步停一步。有n个病人,每个人来医院的时间是ti,他们能等待的最长时间为w。每包试剂盒里有k个试剂,每盒试剂的有效期为d,到期后必须扔掉。国王从(0,0)点移动到(x,y)最少需要几秒。怎么安排病人看病,拆开的试剂盒最少。
2023-03-13 01:25:02
2249
原创 滑动窗口(双指针+单调队列)/(ST表)
第一行为滑动窗口从左向右移动到每个位置时的最小值,每个数之间用一个空格分开;第二行为滑动窗口从左向右移动到每个位置时的最大值,每个数之间用一个空格分开。第2行:N个整数,表示数组的N个元素(≤2×10^9);自己写的shi码(vector+deque实现)你的任务是找出窗体在各个位置时的最大值和最小值。对于100%的数据,K≤N≤10^6。对于20%的数据,K≤N≤1000;对于50%的数据,K≤N≤10^5;双指针+单调队列(数组实现)第1行:两个整数N和K;
2023-03-12 19:39:56
152
原创 离散数学知识总结(逻辑证明,集合矩阵)
p → q ≡ ¬p \/ q 蕴含等值式。p → q ≡ ¬q → ¬p 假言易位。instantiation UI规则。eneralization EG规则。stantiation EI规则。ralization UG规则。
2023-03-12 13:53:14
1199
原创 形式逻辑学习
A或真或假,不能真假两不可。两层含义:1)形式逻辑考虑的思想、概念、判断或其它思维形式有且仅有两种状况:一种称为“真”(是,be),一 种称为“假”(非,not be统一表述为“真”或“假”。2)任何思想、概念、判断或其它思维形式所处的状态必须二者居其一,含可此可彼。不能形成真假两不可的局面。不适合排中律的情形a.明显具有两种以上状态可能性的问题b.隐含某种假设的问题两种即不能同时发生,又不能同时不发生的状态,称为是相互矛盾的状态,简称矛盾状态。
2023-03-12 01:26:02
89
原创 2023年第14届蓝桥杯模拟赛
小蓝有 30 个数,分别为:99, 22, 51, 63, 72, 61, 20, 88, 40, 21, 63, 30, 11, 18, 99, 12, 93, 16, 7, 53, 64, 9, 28, 84, 34, 96, 52, 82, 51, 77。滑行的位置一次为 (2, 1), (2, 2), (2, 3), (3, 3), (3, 2), (4, 2), (4, 3)。输入第一行包含一个整数 w,表示给定的天是一周中的哪天,w 为 1 到 6 分别表示周一到周六,w 为 7 表示周日。
2023-03-11 15:23:45
405
原创 随机数详解(mt19937 , distribution)
本来以为随机数没什么用,昨天打cf才发现,竟然可以用于构造题暴力随机??,还是学习一下。
2023-03-10 14:03:01
3528
原创 Codeforces Round 857 div.2
小明有两个朋友,进了n家商店,每家商店有价格为a[i],b[i] 的两个商品,小明要么给1号朋友买a[i],要么给2号朋友买b[i],怎么买能使给1号朋友和给2号朋友买的最贵的礼物差值最小每家商店都要买礼物,每个朋友至少有一个礼物输出:两个最贵的礼物的差值
2023-03-10 01:33:57
885
原创 快速幂取模
基于二进制原理,ans初始为1,然后不断对power又移,如果power末位为1,ans乘上power这一位对应的base (每右移一位base乘2)将5写成2进制,即 101,从右往左第 i 位为base的 2 ^ i 倍。即3^5 = ( 3^(2^0) ) * ( 3^(2^2) )
2023-03-09 14:26:22
66
原创 并查集(查找合并优化及例题)
由于搜索路径可能很长,我们在返回时把每个i的父节点也顺便改为根节点,下次查询的复杂度就降为了O(1),由于合并时也用到了查询,路径压缩也优化了合并。经典例题有 连通子图、最小生成树Kruskal算法、最近公共祖先(LCA),之后再补。并查集:将n个对象划分为若干个不相交集合,每个集合用其中某个元素代表整个集合。为了避免退化,我们总是将高度小的树合并到高度大的数。
2023-03-09 00:49:46
134
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人