自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(169)
  • 收藏
  • 关注

原创 Educational Codeforces Round 152 (Rated for Div. 2) D题 1849D Array Painting

传送门 https://codeforces.com/contest/1849/problem/D。

2023-07-28 02:52:18 496 4

原创 CodeTON Round 5 (Div. 1 + Div. 2, Rated, Prizes!) A-D

丁真和珍珠宝可梦对决, 每个宝可梦都有x战力, 假设有两个宝可梦, 其战力分别为a和b(a>b), 战力为a的宝可梦获胜后战力-b, 而战败的宝可梦会消失最后还有宝可梦的人获胜问你丁真和珍珠谁赢了。

2023-06-26 20:05:21 1981 9

原创 Codeforces Round 871 (Div. 4) G 记忆化搜索+二分 你没见过的解法!

记dp数组为答案数组首先dp[2]=2212dp[3]=3212dp[5]=223212不难发现dp[5]=dp[2]+dp[3]-dp[1]同理dp[25]=dp[18]+dp[19]-dp[13]接下来就是愉快的找公式时间观察到题目中给的每一层塔的级数 (易得级数公式为2n∗n1​找到当前数字x所对应的级数为pos, 此时x−pos就是这个数字头上左边的数字, 易得x−pos1就是头上右边的数同理可得x−p。

2023-05-12 02:15:18 458 1

原创 五一欢乐赛!题解

有点一言难尽, 这次本来想的给大火减减压放了很多区域赛和省赛的签到题(还有一些是写过的题), 没想到打的并不是很理想, 还用了分数值想减少一些差距, 结果看起来好像让差距更大了, 尴尬。

2023-05-01 20:06:10 920 2

原创 The 2021 China Collegiate Programming Contest (Harbin) D. Math master

因为每一位数都有两种状态, 使用二进制数表示每个状态, 正好能全部表示, 在二进制位数下1表示保留, 0表示删除(反过来也一样)求出分母后, 与原分母进行对比, 用一个数组存储所有被删除的数字, 与分子中被删除的数字比对, 如果符合条件就更新答案。使用二进制暴力搜索每一个符合条件的分子, 先判断删除后是否符合条件, 然后通过。那么一共有19位需要讨论, 每一个位数各有保留和删除两种状态, 全部状态就是。得到分母, 这一步需要使用gcd优化。

2023-04-18 15:47:23 480 2

原创 Count Interval AtCoder - abc233_d

一个简单的哈希算法运用不学哈希算法的有难了!

2023-04-16 14:06:24 208

原创 2022河南省CCPC省赛H题旋转水管

那一天,21回想起了,在旋转水管支配之下的恐怖,还有那被囚禁于中的那份耻辱😭那个绝对不能忘记的题😭😭重要的题😭😭不能忘记的题😭😭不想忘记的题😭😭你😭😭是谁😭😭复活吧!😭😭我的题解😭那一天,21回想起了,在旋转水管支配之下的恐怖,还有那被囚禁于中的那份耻辱。

2023-04-16 13:42:07 325 5

原创 2021四川省icpc省赛H题 Nihongo wa Muzukashii Desu 日本語は難しいです!

日本語は難しいです!

2023-04-16 02:47:15 278

原创 最长上升子序列(线性dp/LIS)专题总结

本来大一就学了的线性dp, 正好这几天遇到了这样的问题也忘得差不多了, 而且学弟们也都在学这个内容, 我花了一天多的时间刷LIS的题, 写一写我刷这种题的感想。

2023-03-30 21:07:50 428

原创 “统信杯”第十七届黑龙江省大学生程序设计竞赛 AFHIL

以样例2为例黄色区域为可以容纳下的书, 让我们分开来计算因为a书不可被减少, 所以a书顶上至少能够装得下bn−m​∗h−a然后再考虑b书头上, 设x为减少的b书那么b书头上能够容纳bm−x​∗h−b根据样例很明显a书在装了bn−m​∗h−a本b书后可能还会存在空位, 此时可以将空位让给b书, 所以b书头上可以多计算a书剩下装不下b书的区域, 这个多出来的区域就是n−bn−m​∗b最后得到b头上的结果为bm−x。

2023-03-23 14:51:25 341

原创 23.3.14打卡 2022年江西省大学生程序设计竞赛(正式赛)ABL

就写了签到, 其他题没写, 这场好像3题就银了纪念一下3.14原粥率日比赛链接:https://ac.nowcoder.com/acm/contest/43898。

2023-03-14 21:33:43 1899 2

原创 23.3.10补卡 Codeforces Round 857 (Div. 2) A~D

题外话:又到了一年两度的玩gbf时间了。

2023-03-12 15:34:21 179

原创 23.3.9打卡 AtCoder Beginner Contest 259

对于x特判一下就好。

2023-03-09 20:59:48 444

原创 23.3.8打卡 AcWing 1072. 树的最长路径 树形dp

在每次dfs时, 遍历此节点的所有儿子, 获取其儿子到叶子结点的最长路径, 每次遍历都更新维护一个最长路径和次长路径。所以对于每个子节点, 必须和他的父亲节点相连, 我们要找的是最长路径, 从根节点开始搜的话需要找到。直接讲dfs的过程, 存图用前向星, 前向星的基础知识就不讲了。当dfs回到根节点时, 此时维护的最长路径和次长路径就是。整理一下输出最大值(是最长路径和次长路径的最大值)即可。注意最后一个最长路径和次长路径的和不一定是最大的。因为是树的最长路径, 所以中间不能断开(

2023-03-08 20:35:15 327

原创 23.3.6打卡 AtCoder Beginner Contest 277 A~D

E题最短路有点生疏了先不写, 之后再补。

2023-03-06 14:53:59 279

原创 23.3.4打卡 AtCoder Beginner Contest 291(Sponsored by TOYOTA SYSTEMS)A~E

F题题面都看不懂嘞!开摆!

2023-03-04 16:29:40 773

原创 23.3.3打卡 Codeforces Round #855 (Div. 3) A~E

这场字符串真多啊

2023-03-03 15:51:32 492

原创 23.3.2 Codeforces Round #834 (Div. 3) A~E

FG明天补给定 ttt 个字符串,请判定这些字符串是否分别是 YesYesYesYes…\texttt{YesYesYesYes\dots}YesYesYesYes… 的子串。是则输出 ,否则输出 ( 和 大小写不定)。Translated by @JYqwqThe first line of input data contains the singular $ t $ ( $ 1 \le t \le 1000 $ ) — the number of test cases in the test.Each

2023-03-02 20:30:31 516

原创 22.3.1 Educational Codeforces Round 144 (Rated for Div. 2) A~C

感觉就是阅读理解题, 3和5的公倍数出现有规律(嫌麻烦可以直接先算出1~1000的s)然后直接一个string的find函数就解决了, 注意一下find函数如果搜不到返回之是npos(-1)B题题目链接: https://codeforces.com/contest/1796/problem/BC题题目链接: https://codeforces.com/contest/1796/problem/C题解:首先按照贪心的思想, 2n2^{n}2n肯定是能最多的, 那么第一个答案就很好求出来了,

2023-03-01 22:44:37 452

原创 22.2.28打卡 Codeforces Round #851 (Div. 2) A~C

给你一个数列a1​a2​an​. 数列中的每一个数的值要么是1要么是2找到一个最小的正整数k1≤k≤n−1a1​⋅a2​⋅⋅ak​ak1​⋅ak2​⋅⋅an​。

2023-02-28 20:37:58 449

原创 22.2.27打卡 Codeforces Round #852 (Div. 2) A~D

A共 ttt 组数据,每组数据中,你需要买 nnn 公斤苹果,第一天单价为 aaa ,但每买 mmm 公斤赠送一公斤;第二天单价为 bbb 。求最小花费。第一行一个正整数 ttt ,对于每组数据输入包含两行,第一行两个正整数 a,ba,ba,b ,第二行两个正整数 n,mn,mn,m 。对于每组数据,输出一行一个正整数,表示最少花费。1⩽t⩽104 , 1⩽a,b,n,m⩽1091 \leqslant t \leqslant 10^4 \ , \ 1 \leqslant a,b,n,m \leqslant

2023-02-27 21:26:40 322

原创 22.2.26打卡 Codeforces Round #853 (Div. 2)

A题极端考虑, 只要存在一个前缀数组的最大公约数小于等于2, 将其放在数组最前端, 那么保证能够满足题目要求数据范围这么小, 果断暴力。

2023-02-26 18:23:27 446

原创 nyist最终淘汰赛第一场

这里最难写的我只能说是堆优化dijkstra, 寒假只让你们学了dijkstra没让你们学堆优化版本, 自觉性可见一斑, 学长说了才去干, 咱们这个社团只能自学, 到了大一下学长也不怎么会管你们了你们是不是就不学了?看了下代码个个都是只考虑到了高位数字贪心更大, 没有考虑最多位数, 说到底还是没认真思考, 我是不信没有人不知道如何使得一个数字最大, 说了不要急不要急不要急, 错了几次还交, 根本问题没找出来在那碰运气有什么意义?D题签到写的人比H中等题还少, 一个特判卡掉一堆人, 抽象。

2023-02-25 17:58:43 682

原创 codeforces 20C

在每次更新dist数组的时候都会有其对应的点, 将每个点的最优选择存为to数组中。我们可以知道终点肯定是n, 用v数组存储答案, 倒序打印v数组即可。最后to数组中的值的含义是: 值的点来到to数组下标点为最近路线。这题就是堆优化最短路的板子啦, 从y总那抄来的代码改改就能用。这个神奇的操作, 请自行理解。

2023-02-25 17:51:34 207

原创 22河北省赛 F

根据上文的模拟, 我们可以粗略得出一个结论: 当兔子和我们搜索的位置奇偶性相同时, 兔子一定会被逼到末端-1的位置被捉住, 而不同时, 兔子可以在末端的位置正好与我们错过(兔子这里考虑的是最坏情况), 但改变了奇偶性, 当我们回头再来的时候, 将被我们捉住。假设兔子在3位置, 我们先搜索了2, 兔子在3位置可以跑到我们搜过的2位置去, 就正好错过了, 此时继续向右搜索来到3位置, 兔子可以走到1位置或者3位置, 和我们的位置奇偶性相同了。交了之后就会发现wa在了一个神奇的样例: n=1和n=2。

2023-02-25 17:50:07 552

原创 atcoder abc217 D

那么需要实现这个思路可以用set来做, 在set中存入端点, 进行2操作的时候使用库函数二分搜索即可。按照这个思路来想, 那么存入每个被剪断的标点都可以作为一段绳子的两个端点, 得到端点即得到长度。首先要得到一段绳子的长度, 最先想到的是末端标点-起点标点。一条长为n的绳子, 每一个整数位置都有一个标点。2: 输出在标点x处的绳子长度。1: 在标点x处剪断这条绳子。可以进行以下两种操作。

2023-02-25 17:49:51 182

原创 Atcoder abc257 E

然后给你1~9每个经营额所需要的成本, 设总经营额为x, 当前使用的经营额为y, 则每一次使用经营额时都有x=10*x+y。我们先算出成本在1~9的经营额下最小的成本能使用的最多次数(也就是考虑多的位数)再选择5的经营额: 现在有x=9*10+5 此时n=2-2=0。算出次数之后考虑数字能否在保持位数最大的同时在高位数字贪心。问, 如何在使用不大于成本数量的金额下, 使得经营额最高。先选择9的经营额: 现在有x=0+9 此时n=5-3=2。次数=总成本/经营额下的最小成本。接下来为1~9的经营额。

2023-02-25 17:49:41 425

原创 codeforces 1669F

但这种做法有个缺点, 因为前缀和对应相等的后缀和下标不一定是i与n-i的关系, 做起来还是需要用双指针, 那既然用了双指针, 而且前缀和 和 后缀和的访问次数只需要找到第一个(或者说, 最后一个)相等的就行。每当alice吃的糖果小于bob的糖果时alice多吃, 否则bob多吃。创建双指针l和r, 创建q和p分别储存alice和bob吃的糖果重量。要求alice和bob吃的糖果重量必须一样, 输出能吃几个糖果。alice和bob从数组两边的吃糖果, 数组的值就是糖果重量。模拟一个前缀和 和 后缀和。

2023-02-25 17:49:24 721

原创 22河北省赛 K

题意: 给你score和score modifier算出定数。实际上很简单, 就是算arcaea这游戏里多少分对应的定数。按照商标输出就好了, 注意类型转换。

2023-02-25 17:49:15 101

原创 atcoder abc218 B

输出 x+'a'-1。

2023-02-25 17:47:55 67

原创 atcoder abc284 E

只要懂得一点图论知识和dfs就能做, 这题考察的就是图的遍历。到1e6的时候及得return了, 不然会t。这题需要注意的只有一点。

2023-02-25 17:47:32 168

原创 23.2.23 22湖北省赛 B

注意, 样例中的2:6实质上约分后为1:3 , 需要对数据进行约分。混合之后再加入a水或者b水 比例变为3:5 或者7:1。再加入a水或者b水将容器填满 比例现在变为 3:1。倒出一半的混合物, 因为ab水互溶, 比例不变。所以可以找到固定规律, 通过手动模拟可以发现。以2的次幂为规律判断是否符合题目条件即可。先倒入a水 1:0 倒入b水 1:1。好久没打卡了, 随便找的个水题写。可以发现, 比值加起来是2的次幂。这样推下去我们可以发现一个规律。假设两种水叫做a水和b水。

2023-02-23 21:23:56 977

原创 23.2.18打卡 Educational Codeforces Round 143 C题两种做法

在优先队列内存入ai+前缀和[i-1], 每次搜索时将队头+前缀和[i-1]即为当前ai的剩余量。因此对于每个a[i]应该在前缀和数组中搜索a[i]+前缀和[i-1]找到他在什么时候会被喝完。首先就行b的前缀和处理, 对于每一个a[i]二分搜索到i处时的剩余量。剩余量i=a[j]+b的前缀和[j-1]-b的前缀和[i-1]将其与b进行对比后(若剩余量

2023-02-18 23:03:31 106

原创 22.2.4+22.2.5打卡 Codeforces Round #849 (Div. 4)

换个角度来看这题, 假设这题如果一次转换一个, 那么显而易见将全部负数都转化为正数即可, 如果用上文的思路来看这题, 因为这题一次必须转换两个数字。双指针遍历一遍字符串, 当遇到0 0或者1 1(指头尾两个指针所指向的值)时就退出输出此时i+1的值。如果搜不到 或 搜到的比r还要大, 说明在l~r的这段范围已经无法通过1更新了, 直接break出去。首先我们要知道, 因为这题是无限制的翻转数字, 所以负数的位置是可以随时变换的。首先当一个数为个位数的时候, 他将无法通过1操作更新值。这题直接贪心是不行的。

2023-02-04 23:29:55 309 1

原创 23.2.2打卡 2023牛客寒假算法基础集训营5 ABCDHKL 最详细的一集

因为要使得字典序最小, 谁也不愿意多拿, 到自己拿的时候必须拿所以拿一个最小的1。当n=3时, 先手拿一个后手拿一个, 下一回合先手拿一个拿完了 ,此时后手胜利。这题因为排列是不确定的, 所以能够给我们判断的就是第一位数的数字是不是0。当n=2时, 先手拿一个后手拿一个结束了, 双方字典序一样平局。还有两个特判, 需要特判a和b是否相等, a和b的位数是否相等。当n为奇数时, 先手必输, 当n为偶数时, 只能必定平局。比较去掉前导0的位数, 再比较a和b有效位数中的最高位0。

2023-02-02 18:02:37 192

原创 22.1.31打卡 2023牛客寒假算法基础集训营4 ABCDEFLM

来到过程的实践阶段, 我们先手直接开头砍了一刀, 然后对剩余的血量计算每个t间隔的扣血量(at*av), 用剩余血量除扣血量, 在看一下能不能整除, 不能整除就+1。最后 valn - val就是差值了, +1是因为题目中说了要让i成为"必选", 当i = 最大值时, 不是必选情况。因为攻击是从时刻1开始的, 所以要+1, 又因为当最后一刀斩杀时, 不计算后摇时间, 所以ans要-1。狂wa8发被整了心态就润了, 最后发现特判出了问题, 改了就对了, 好似喵。*t是因为要计算后摇时间(或者说冷却时间)

2023-01-31 23:36:48 191

原创 22.1.29打卡 2023牛客寒假算法基础集训营1 ACDHKLM

因为一个拼图的总成本是固定的, 那我们只要减去其他已知拼图的成本就能得到这最后一个拼图的成本了。题目一大串的, 读起来麻烦还要理解, 但静下心来仔细读一读就发现这题很简单。f [ i ] [ j ] 表示给分了 i 个人 j 个仙贝收获的好感度值。那么每个讲师每人随便拿一个论文就行了, 只要hi不为0都有1的贡献。网上高质量题解太多了, 我这就作为打卡日报随便写写。和dfs没什么关系, 求的是最后一块拼图的成本。一个论文为答案提供的贡献最大值就是1。c d记录两队最多还能获得的得分。这是来自官方题解的图。

2023-01-29 21:58:38 536

原创 22.1.28打卡 Codeforces Round #847 (Div. 3) A~E

这题其实也是一样的, 但当arr[i]和arr[i-1]存的元素不一样时, 不成立了上文说的贪心, 因为不连续了, 按照题意应当直接加上arr[i]从列的角度来看, 除了原排列的最后两个元素, 每当出现了n-1个此元素时, 这一列就是此元素的位置。最后一列出现之前从未出现过的元素一定在最后一列的位置, 再将剩余的那个元素放在n-1位就好了。不能出现连续的1, 所以1后的第一个0构造为11, 其他的0都构造为00。首先我们知道a^b=(a+b)/2, 将其变形为2*a^b=a+b。

2023-01-28 17:53:27 271

原创 23.1.27打卡 Codeforces Round #846 (Div. 2) A~D

我们每次都减去1, 如果返回的cnt比原来n的cnt要大, 说明在1的这个位置原先是0, 依照多出来的1的数量可以判断lowbit的位置, 让答案ans|上这个位置的数即可, 依次循环cnt(原先n的cnt)次就能找到答案了。第一次做交互题, 题都读不太懂, 看了ygg的题解后恍然大悟, 感觉也不是那么的难, 做多几次估计就会了。给定初始n的cnt, 然后你可以让这个n减去任意的数, 题目会给出n减去这个数之后的cnt。题目中隐藏一个数n, 定义一个概念cnt, cnt为n的二进制数中1的数量。

2023-01-27 16:42:08 723

原创 22.1.23打卡 Codeforces Round #845 (Div. 2) and ByteRace 2023 A~B

只要看上一个是否和当前的数组元素奇偶性是否相同, 不相同就ans++自己手动计算一下逆序数就好了。

2023-01-23 17:04:22 178

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除