
acm
acm
wlhz2017
这个作者很懒,什么都没留下…
展开
-
Educational Codeforces Round 137E 1743E FTL
有两艘飞船,分别有攻击力p和攻击充能时间t,初始未充能。敌船的血量为h防御s, 一个船独自打 伤害p1-s,俩船一起 伤害p1+p2-s求击败敌船最小时间因为血量5000范围小 按此dpdp 维护总计造成i伤害时最后一次是两个炮共同攻击需要最小时间枚举下一次共同开炮中间的独立开炮数。更新一遍后面的点复杂度n*n原创 2022-11-01 18:37:42 · 267 阅读 · 0 评论 -
Educational Codeforces Round 137C 1743C Save the Magazines
题意有n个箱子,第i个箱子里面装着ai个杂志。现在正在下雨,有一些箱子上面盖着盖板(如果一个箱子上盖了盖板,那么这个箱子里的杂志就不会被雨淋),并且可以将盖在第i个箱子上的盖板移到第i−1个箱子上(同一个盖板至多移动一次)。求不会被雨淋的杂志数量的最大值。思路dpij维护当前位置ij表示最后i是否有板时的最大值原创 2022-10-31 21:08:37 · 329 阅读 · 0 评论 -
【无标题】Educational Codeforces Round 137B 1743B Permutation Value
题意给定一个n,需要构造一个长度为n 的数列,使得数列中所有子段中有特殊性质的子段数量最小。特殊性质:设子段长度为k,则该子段需包含1∼k的所有数思路只要1和2距离最远 特殊性质就只有1和all满足原创 2022-10-31 21:01:22 · 252 阅读 · 0 评论 -
Educational Codeforces Round 137 A 1753A Password
题意密码 长度4 只有数字0到9且不在题目输入的数列中数组成 并且是两个a两个b组成的 ab不同思路设第一个数是a 另外一个数是b 那么只有aabb abab abba三种如果题目输入的黑名单数量x 剩余可选数y=10-xans=y*(y-1)*3原创 2022-10-31 20:57:37 · 106 阅读 · 0 评论 -
Codeforces Round #828F CF1744F MEX vs MED
给一个排列 问多少区间满足mex>medmex为最小未出现非负整数med中位数也就是需要中位数之前的数都出现对于数字0 包含它的长度为12的串都满足对于数字1 包含01的长度为34的串都满足对于数字x 包含0到x的最小长度为a[x] 如果a[x]<=2x+1 那么结果ans+=2x+1-a[x]+1a[x]在遍历x时 一直维护最左最右位置算一下即可原创 2022-10-31 18:42:15 · 266 阅读 · 0 评论 -
Codeforces Round #828E 1744E Divisible Numbers
题意给abcd 求满足a<x<=cb<y<=d且xy%(ab)=0思路a的因子a1a2设x为a1的倍数 y为a2倍数b也类似 b1 b2枚举a1 滑动窗口 计算x 能对应的b1区间得到对应的b2区间 b2把 bd处理成区间看新区间能否有a2的倍数原创 2022-10-31 16:19:21 · 127 阅读 · 0 评论 -
Codeforces Round #828D CF1744D Divisibility by 2^n
数组长度n 你可以给ai乘一次i最后要求mul(a)被2^n整除 最小操作次数统计一下初始2的因子数然后算1~n里面 每个数贡献2的数量对于2幂数x=2^k 有( n/x+1)/2个原创 2022-10-31 12:51:47 · 260 阅读 · 0 评论 -
Codeforces Round #828C CF1744C Traffic Light
循环字符串 只有三种字符 ryg询问一种字符比如r要求r到后面第一个g的距离最远比如rggry 选第二个r 距离g为3找一个g的位置做为开始反向扫一遍(扫0时回n)原创 2022-10-31 12:42:49 · 182 阅读 · 0 评论 -
Codeforces Round #828B CF1744B Even-Odd Increments
数组长度nq次操作1 x给数组内所有奇数加上x或者0x给数组内所有偶数加上x初始ans=sum(a)num=奇数数量ans+=num*x 或者 (n-num)*x如果x是奇数 更新num原创 2022-10-31 12:29:57 · 203 阅读 · 0 评论 -
Codeforces Round #828A CF1744A Number Replacement
题意长度n的字符串 和数组数组选择一种数变化为字符 问数组能不能转化成字符串思路数组和字符是多对一的关系所以记录map[num]=char限制num不能对应多个char原创 2022-10-31 12:22:19 · 224 阅读 · 0 评论 -
Codeforces Global Round 23G CF1746G Olympiad Training
题意n个任务 每天只能处理一个有价值 最晚处理时间 类型分三种求解决三种任务分别abc个情况下的最大价值思路之前思路会t 占坑待续原创 2022-10-31 12:15:09 · 309 阅读 · 0 评论 -
Codeforces Global Round 23 F CF1746F Kazaee
正整数数组n 单点更新 区间查询 区间内的数的按数位分离 每种正整数的个数是不是都是k的倍数 比如1234 23 两个数 算作 一个1 两个2 两个3 一个4维护9个树状数组 分别更新1~9的数目原创 2022-10-28 10:09:44 · 295 阅读 · 0 评论 -
Codeforces Global Round 23 E CF1746E Joking (Hard Version)
题意 互动题 你需要猜一个数 范围e5询问在不在数集中 限最多52次猜测是不是某个数 最多两次其中询问反馈你的答案未必是对的,只保证2次连续询问至少有一次是对的猜测都是对的思路对同一个数集连续询问有真假真 假真假 真真 三种情况其中第三种可以发现是真数组平均分左右 假设query左区间 结果101在query左区间的左儿子 和右区间的左儿子(左儿子就是此区间再均分)这时 如果得到101 如果第一个问题是真 那么应该是左儿子的右儿子 否则是右儿子的左儿子如原创 2022-10-28 10:04:10 · 723 阅读 · 0 评论 -
Codeforces Global Round 23 D CF1746D Paths on the Tree
树节点变化1~n 根为1 带点权从1开始发出k个路径 每个节点被路径经过一次 贡献一次点权 同一个父节点的兄弟节点 路径数差值不能超过1 求总权值最大的最优路径集思路树dp 权值k 太大 而且没必要 因为限制兄弟节点路径数差值最多1 所以如果父节点路径数可能是x或者x+1 兄弟节点的路径数也不会演变成3种 只需要维护两个值dfs算一遍即可原创 2022-10-27 13:23:36 · 163 阅读 · 0 评论 -
Codeforces Global Round 23 C CF1746C Permutation Operations
长度n的排列 n次操作 第i次选择一个后缀长度都+i 要求最后数组严格递增 求一种方案思路 扫一遍 如果ai比前面小 那么找一个没有用过的数x 满足ai+x>ai-1记录x位置为ix默认位置为1原创 2022-10-27 10:03:27 · 376 阅读 · 0 评论 -
Codeforces Global Round 23B 1746B Rebellion
思路:因为只是要求数组不降,没必要形成大于1的数,只要把左面的1转移到右面的0上,统计0的个数为x,前x个数中1的个数 都需要移动,即为答案(也就是错误的1的个数,题目中删除这个数和把这个数置零应该是一样的)题意: 长度n的01数组,每次操作可以删除一个数,值加到另一个数上。最后要求数组不严格递增(a[i+1]>=a[i]) 求最下操作次数。原创 2022-10-27 02:06:40 · 197 阅读 · 0 评论 -
Codeforces Global Round 23 A CF1746A Maxmina 简单题
题意:长度n的01数组,每次操作消除2个连续数保留最小值 或者消除k个连续数保留最大值,最后问能否消除到只剩1。思路:不难发现 多次消除2个数,省下k个数 中有一个1就可以。那么如果k >=n 数组有1 就YES。如果 k原创 2022-10-27 01:57:06 · 199 阅读 · 0 评论 -
Educational Codeforces Round 138F 1749F. Distance to the Path 更新最近n点+树链剖分
题意n个点的树 初始点权1m个更新两种操作1更新u到v这条链上距离d以内的点 权值+k2查询点权d范围只有20思路树上更新链树链剖分很好搞更新距离d没见过 想到可查询的时候再处理周围d个点 但是不好搞 因为链上两个点如果都距离d以内 其实是只贡献一次的 不能简单划分查了一下树上距离d以内更新的优化方法原创 2022-10-26 18:46:19 · 188 阅读 · 0 评论 -
Educational Codeforces Round 138E 1749E. Cactus Wall
题意:样例中x为障碍 一些障碍已经给出障碍的4方向 不能再设置障碍障碍的对角4方向可以设置 并且算联通问能否设置左右联通的障碍 阻碍最上走到最下思路国象主教位置 既黑白格 区分只能是黑格连通或者白格分别dfs计算两种情况看能否连通原创 2022-10-26 18:24:17 · 140 阅读 · 0 评论 -
Educational Codeforces Round 138D 1749D. Counting Arrays
题意 原题说法比较绕正整数数组n每次可以移出一个数组一个数ai 满足 i和ai互素(gcd1) 然后后面的数左移 直到全部移除数组移空的方案数不唯一 视为特殊数组求长度小于n(3e5)值域范围m(e12)的特殊数组个数思路题目转化一下因为第一个位置一直可以移除所以方案唯一的数组很难达成方案唯一实际上 要求ai需要和小于i大于1的数全都不互素 才能不被提前消除所以ai必须是2~i的lcm的倍数更新lcm 算出来可能数 用总的sum(m^i )去减就行了原创 2022-10-26 16:52:49 · 155 阅读 · 0 评论 -
Educational Codeforces Round 138C 1749C. Number Game
题意:博弈 n个数先手选择一个kwhile k--先手消灭一个小于k的数 后手给一个数+k求最大的k思路 后手肯定每次选择一个1填值所以1的数量就是k的数量原创 2022-10-26 12:21:39 · 314 阅读 · 0 评论 -
Educational Codeforces Round 138B 1749B. Death‘s Blessing
题意a,b两个数组 可以花费 ai消除第i个数 给左右两侧a加上bi 数组收尾并不相连思路a数组其实每个都要花费 而且只有一次 所以直接求和做为答案基础b数组 实际上先选择一些断点双倍b代价 然后每个段有一个最高值不取 把b看做一个波浪线可以有k个波峰不取 k个波谷取2倍原创 2022-10-26 11:32:22 · 247 阅读 · 0 评论 -
Codeforces Round #829E 1753E. N Machines
题意按顺序给n个因子 加或乘比如+a 或×a可以花费代价p和m 移动两种因子到任意位置总花费限制b保障结果在2e9以内思路首先如果移动加一定移动到最前 移动乘到最后想了一下区间dp 但是左右区间互相影响 无法消除发现这个保证很有用 他确保了乘法因子的总大小为1的乘法因子不必考虑 >1的乘法因子不超过30个那么可以dfs枚举哪些乘法因子要移动枚举时有一个很重要的剪枝 就是如果前面的×a1 枚举了不移动 那么后面的×a2 如果a2<=a1 也是必定不移动的复杂度原创 2022-10-25 18:57:32 · 227 阅读 · 0 评论 -
Codeforces Round #829D CF1753D The Beach
把所有空点放入bfs的优先计为(pos,cost=0)队列枚举cost最小枚举当前点 如果当前cost>=min_cost 可以return如果当前点已经访问过 continue记录当前点花费做为空出此点最小花费然后检查当前点4方向存在空点 更新min_cost(ans)移动周围障碍到当前点,看是否能新形成空点入队列。原创 2022-10-24 14:47:48 · 95 阅读 · 0 评论 -
Codeforces Round #829C CF1753C Wish I Knew How to Sort
bool数组要排序,每次随机选2数来冒泡,求期望次数。假设数组里有x个0,那么需要最后数组里左侧x个数都是0,以x数右侧为线,两侧本身内的移动对结果没有意义,左侧有x个数,初始有y个1,右侧就会有y个0,也就是y对的数需要swap,计为dp[y];如果要消除一个对, 概率为左侧y种选择* 右侧y种选择 / 选出1对数 = y * y / C(n,2)期望为反比 C(n,2) * inv(y) *inv(y)for(i,1,y) ans += c(n,2)* inv(y) * inv*原创 2022-10-24 14:27:37 · 105 阅读 · 0 评论 -
Codeforces Round #829B CF1753B Factorial Divisibility
问数组a,sum(a!)%(x!)==0首先大于x的a无需考虑 会被约掉低于的 可以逐渐合并 1!+1! = 2!2!+2!+2!=3! 看能否合并成多个 x!map计数统计/ sort一下 从小到大扫一遍即可实际上有个前提 是合并剩余的部分 一定会小于x! 比如 4! + 4! + 4! + 3! + 3! < 5!因为5! = 4!+4!+4!+4!+4! > 4! +4! +4! + 4! + 3!+3! +3! + 2! + 2! + 1!阶乘这种形式 如果右原创 2022-10-24 13:44:24 · 150 阅读 · 0 评论 -
Codeforces Round #829 cf1753A Cowardly Rooks
一个值域{0,-1,1}数组切分序列后每个序列乘 {1,-1,1,-1...} 要求最后总和为0实际上 只切出若干个{1} {1,-1} 两种其中1的位置是任意的 可以全取1-1左侧必1先假设全1 算出总值,比如总值是4 那再看能不能把两个1 改成-1 从左到右依次贪心改即可。代码回去补原创 2022-10-24 13:14:58 · 184 阅读 · 0 评论