
练习
文章平均质量分 58
Joanh_Lan
喜爱编程的菜菜,现学习算法与工程课。热爱code,喜欢分享个人学习经验与解题!
展开
-
Codeforces Round 862 (Div. 2) -- D. A Wide, Wide Graph(树的直径 & 贪心 & 简单的树形dp)
树上两点uv,如果uv的距离大于等于k则在图Gk上uv有一条无向边。求当k等于 [1, n] 的时候,图Gk的连通块数量。原创 2023-04-18 10:16:13 · 247 阅读 · 0 评论 -
HDU - 4734 -- F(x)
数位DP原创 2023-04-14 18:00:17 · 348 阅读 · 0 评论 -
POJ - 2282 The Counting Problem(数位DP 计数问题)
数位DP -- 计数问题原创 2023-04-13 17:35:42 · 408 阅读 · 0 评论 -
4878. 维护数组(线段树维护区间和)
线段树维护两种区间和。原创 2023-04-13 15:38:21 · 98 阅读 · 0 评论 -
HDU - 3555 Bomb(数位DP)
我的方法是直接统计符合题意的个数,具体请参考下面的代码。原创 2023-04-12 17:02:53 · 554 阅读 · 0 评论 -
HDU - 2089 不要62(数位DP)
杭州人称那些傻乎乎粘嗒嗒的人为62(音:laoer)。杭州交通管理局经常会扩充一些的士车牌照,新近出来一个好消息,以后上牌照,不再含有不吉利的数字了,这样一来,就可以消除个别的士司机和乘客的心理障碍,更安全地服务大众。不吉利的数字为所有含有4或62的号码。都属于不吉利号码。但是,61152虽然含有6和2,但不是62连号,所以不属于不吉利数字之列。你的任务是,对于每次给出的一个牌照区间号,推断出交管局今次又要实际上给多少辆新的士车上牌照了。原创 2023-04-12 11:14:41 · 452 阅读 · 0 评论 -
AtCoder Beginner Contest 295 -- D - Three Days Ago(数学)
我们可以发现满足题意的子串长度一定为偶数。且每个数组出现的次数也必须是偶数次(或。只有奇偶性相同,减完才是偶数(或。我们寻找已存在且相同奇偶性的数量。位置每个数出现次数的奇偶性。所以我们把注意放在奇偶性上。原创 2023-04-11 20:43:25 · 179 阅读 · 0 评论 -
Educational Codeforces Round 146 (Rated for Div. 2) - B. Long Legs(思维 & 数学)
我们可以发现正推似乎看不出来什么东西,而反推可以发现一个性质!次就可以完成各自除剩余的那一部分。然后我们的腿长就会先变到。我们假设最终的腿长为。原创 2023-04-10 20:25:18 · 684 阅读 · 0 评论 -
选择客栈(枚举 & 方案数)
丽江河边有n家很有特色的客栈,客栈按照其位置顺序从1到n编号。每家客栈都按照某一种色调进行装饰(总共k种,用整数0k−1表示),且每家客栈都设有一家咖啡店,每家咖啡店均有各自的最低消费。两位游客一起去丽江旅游,他们喜欢相同的色调,又想尝试两个不同的客栈,因此决定分别住在色调相同的两家客栈中。晚上,他们打算选择一家咖啡店喝咖啡,要求咖啡店位于两人住的两家客栈之间(包括他们住的客栈),且咖啡店的最低消费不超过p。他们想知道总共有多少种选择住宿的方案,保证晚上可以找到一家最低消费不超过p。原创 2023-02-07 17:01:23 · 435 阅读 · 0 评论 -
豚鼠排名榜 + 推广至大数据量 (分类讨论 | 拓扑排序)
已知字符A.B,C。每个字符都有自己的权值q。现不知道权值q,只知道A,B,C的三次比较结果。原创 2023-01-27 11:20:12 · 136 阅读 · 0 评论 -
优快云竞赛11期 -- 圆桌(贪心)
这种问题我们先可以手玩一下,然后去思考如何最优策略。原创 2023-01-26 20:18:14 · 90 阅读 · 0 评论 -
AtCoder Regular Contest 154 -- B - New Place(二分答案)
通过重复将字符串开头的字符移动到所需位置的操作,我们希望找到与目标字符串匹配的最小操作数。原创 2023-01-23 15:40:51 · 259 阅读 · 0 评论 -
2023牛客寒假算法基础集训营3 -- E-勉强拼凑的记忆(贪心 + 二分)
我们可以发现:除了n==2无解, 其他情况答案至少为2n1答案在2n1到n之间我们可以假设 答案为ans求最大ansans∗3−2n1∗2≤n。原创 2023-01-21 19:54:48 · 1580 阅读 · 1 评论 -
2023牛客寒假算法基础集训营3 -- E-公平守望的灯塔(向量 简单几何)
向量 简单几何问题原创 2023-01-21 18:35:05 · 3287 阅读 · 0 评论 -
2023牛客寒假算法基础集训营3 -- C-忽远忽近的距离(DFS or 分情况构造)
小红希望你构造一个长度为n的排列, 满足对于每个ai, 有2≤∣ai−i∣≤3。你能帮帮她吗?注:数组下标从1到n。排列是指长度为n的数组,1到n每个正整数恰好出现一次。原创 2023-01-21 17:31:55 · 647 阅读 · 0 评论 -
2023牛客寒假算法基础集训营1 -- G-鸡格线(map + 内置二分写法)
线段树的写法这里就不再提了,我赛时是写的线段树,赛后发现 map 也可以做 并且 时间和代码量都比线段树更优 QAQ。修改就没有效果了,这也是这个题可以做的隐藏条件!可能很大,但是 如果。原创 2023-01-17 21:12:01 · 1638 阅读 · 0 评论 -
AcWing 4510. 寻宝!大冒险!(暴力枚举)
暴力枚举 + 判断合法原创 2023-01-17 11:05:19 · 825 阅读 · 0 评论 -
三而竭(数学函数求极限 & 蛮力)
一鼓作气再而衰三而竭。 小艺总是喜欢把任务分开做。 小艺接到一个任务,任务的总任务量是n。 第一天小艺能完成x份任务。 第二天能完成x/k。 。。。 第t天能完成x/(k^(t-1))。 小艺想知道自己第一天至少完成多少才能完成最后的任务。原创 2023-01-15 23:16:21 · 514 阅读 · 0 评论 -
1231. 航班时间(恶心的输入处理 + 简单的数学)
因为题目假设两次飞行时间是相同的,我们可以通过减法将时差消去。那么飞行时间就是:2time1+time2题目的难点是处理输入,我们可以使用 sscanf 来进行处理,这样会方便很多!原创 2023-01-03 17:37:47 · 543 阅读 · 0 评论 -
1229. 日期问题(枚举 + 模拟)
数据量很小,最大也就6种情况,可以直接暴力去模拟就行需要注意一下如何判断合法情况 & 去重,其他没有什么难点。具体请看代码。原创 2023-01-03 16:37:36 · 97 阅读 · 3 评论 -
D - Iroha and Haiku (New ABC Edition)(枚举二分)[AtCoder Beginner Contest 265]
【代码】D - Iroha and Haiku (New ABC Edition)(枚举二分)[AtCoder Beginner Contest 265]原创 2022-11-17 20:46:16 · 163 阅读 · 0 评论 -
F - Well-defined Path Queries on a Namori(标记环 + 并查集)[ AtCoder Beginner Contest 266]
找环 & 标记环 & 并查集原创 2022-11-17 16:08:42 · 154 阅读 · 0 评论 -
E - Throwing the Die(期望DP)[AtCoder Beginner Contest 266]
dp[i]+=max(dp[i−1],j∗1.0)/6.0i是轮数,j是骰子的点数。注:我们要求得是最大分数的期望, 并不是分数的期望, 所以我们需要取max。原创 2022-11-16 22:04:42 · 260 阅读 · 0 评论 -
D - Snuke Panic (1D)(DP)[ AtCoder Beginner Contest 266]
【代码】D - Snuke Panic (1D)(DP)[ AtCoder Beginner Contest 266]原创 2022-11-16 20:31:26 · 190 阅读 · 0 评论 -
E - Add and Mex(Mex问题,调和级数)[AtCoder Beginner Contest 272]
调和级数 nlogn我们就可以暴力去找!原创 2022-11-16 16:14:51 · 140 阅读 · 0 评论 -
D - Root M Leaper(BFS)[AtCoder Beginner Contest 272]
预处理出 可以加的(x,y)二元组 方便操作然后正常 BFS就行。原创 2022-11-16 15:19:26 · 221 阅读 · 0 评论 -
F - Erase Subarrays(DP)[AtCoder Beginner Contest 275]
其余状态初试为:0x3f3f3f3f。原创 2022-11-16 10:32:48 · 173 阅读 · 0 评论 -
E - Sugoroku 4(期望DP)[AtCoder Beginner Contest 275]
【代码】E - Sugoroku 4(期望DP)[AtCoder Beginner Contest 275]原创 2022-11-15 21:35:29 · 295 阅读 · 0 评论 -
D - Yet Another Recursive Function(记忆化搜索)[ AtCoder Beginner Contest 275]
0≤N≤1018数据范围很大所以不可能从前到后递推得到答案。原创 2022-11-15 20:42:33 · 293 阅读 · 0 评论 -
F - Double Chance(期望,数学,树状数组优化)[AtCoder Beginner Contest 276]
【代码】F - Double Chance(期望,数学,树状数组优化)[AtCoder Beginner Contest 276]原创 2022-11-15 12:16:02 · 543 阅读 · 0 评论 -
C - Previous Permutation(思维,逆序对思想 or STL全排列)
逆序对的定义:如果存在正整数 i, j 使得 1 ≤ i < j ≤ n 而且 A[i] > A[j],则 这个有序对称为 A 的一个逆序对,也称作逆序数。[a,a+1],a是位置r=an到aarswap(arr[l],arr[r])l∼r。原创 2022-11-14 21:15:00 · 535 阅读 · 0 评论 -
E - Crystal Switches(双端bfs or spfa + SLF) 附:SPFA + SLF个人板子
【代码】E - Crystal Switches(双端bfs or spfa + SLF) 附:SPFA + SLF个人板子。原创 2022-11-14 16:55:45 · 302 阅读 · 0 评论 -
B. Shoe Shuffling(蛮力)[CodeCraft-22 and Codeforces Round #795 (Div. 2)]
我们可以发现:只有连续相等的才可以进行互换,从而得到有解情况所有我们只需要对连续相等的进行处理如果该局部连续相等的数量 ≥ 2 \ge2≥2 提供旋转一下就可以旋转的含义:1 2 3 4 5 变成 2 3 4 5 1如果该局部连续相等的数量 = = 1 ==1==1 一定无解输出 − 1 -1−1 结束程序原创 2022-11-11 11:38:32 · 324 阅读 · 0 评论 -
C. Sum of Substrings(贪心)
我们发现不在序列首尾的 111 对整体得分的贡献一定是 111111 (作为个位和十位各出现一次),而 111 开头的对得分的贡献为 101010 ,末尾111的对得分的贡献为 111 ,所以我们希望能有中间的111移到开头或者末尾去,如果中间没有111 也可以把开头的 111 移动到末尾去,模拟这个过程即可,一个位置的 111 移动到另一个位置需要消耗的交换次数是这两个位置之间的距离.原创 2022-11-10 23:09:38 · 181 阅读 · 0 评论 -
F. Rats Rats(二分 or 预处理)[UTPC Contest 09-02-22 Div. 2 (Beginner)]
xk=ai我们可以去想办法去找到 最小的x为什么去寻找xmin521=83521=29一个数如果满足式子xk=ai至少我们可以找到一个x如果有多个x我们其实只需要记录最小的那个就行。原创 2022-11-08 17:13:58 · 326 阅读 · 0 评论 -
G. Carrot Thief (二分 or DP)[UTPC Contest 09-02-22 Div. 2 (Beginner)]
如果当前位置的值 小于 mid, 那么我们就吃这个萝卜。原创 2022-11-08 11:17:16 · 285 阅读 · 0 评论 -
I - Package Delivery(贪心 + 蛮力)堆暴力
所以 我们的关注点是r快递先sort一下可以用堆(小根堆)来进行维护如果当前快递l大于 堆top的r, 那么这个快递不会跟堆top的快递一起取走,此时把堆里的快递取走(或一部分)是最优的!原创 2022-11-03 16:13:21 · 104 阅读 · 0 评论 -
E. Expenditure Reduction(思维+预处理+蛮力)
sandtt是s的子序列找 最小长度字符串str使str满足 是s的子串 && 使t是str的子序列。原创 2022-11-03 09:48:18 · 350 阅读 · 0 评论 -
C. Equalize(贪心)
一共有两组操作选择 a 串 两个不同的位置,交换一下,代价是abs(i - j)选择 a 串 一个位置进行反转(异或1)1 - > 00 -> 1可以发现什么?用反证法:如果代价 大于 1我们可以完全只用 操作2 进行, 代价是2, 不会比 操作1 要差所以可以证明 只有代价为 1 的时候才会使用 操作1所以我们记录两串不同的位置进行贪心。原创 2022-10-31 23:40:50 · 161 阅读 · 0 评论 -
A. Ice Skating(分块 -- 并查集)
X 或 Y 相同的点可以直接相互到达,不需要添加额外的点进行“转向”所以可以用分块的思想去思考问题答案就是:块的个数 - 1。原创 2022-10-31 23:24:19 · 154 阅读 · 0 评论