摘要: 链接:https://codeforces.com/contest/2052/problem/E 题目: 思路: 一道模拟。重点在于:移动每个数字;判断是否成立。 问题一:选中每个数码,枚举需要移动到的位置,使用swap函数。 问题二:格式问题+算术问题。不能有前导0,不能两个非数字相连,同时位数不 阅读全文
posted @ 2024-12-23 17:42 WHUStar 阅读(3) 评论(0) 推荐(0) 编辑
摘要: 链接:https://www.luogu.com.cn/problem/P1438 题面: 思路: 差分+线段树。 刚开始的想法是建立一个双tag线段树:basetag和addtag。然后传递的时候basetag就是l的基准,addtag不变。求的话就是求节点值。 但是这样容易溢出。。。 所以考虑差 阅读全文
posted @ 2024-12-22 21:19 WHUStar 阅读(2) 评论(0) 推荐(0) 编辑
摘要: 链接:https://www.luogu.com.cn/problem/P1268 原题: 思路: 原本的思路是通过最长边构建一棵树,然后通过记录每个横坐标的值来模拟每个边的分支。但是这样做太繁琐而且容易分类讨论失误。 看了题解的一个非常巧妙的办法:类似于求LCA的思路。 事实上感觉就像状态转移?类 阅读全文
posted @ 2024-12-21 16:15 WHUStar 阅读(3) 评论(0) 推荐(0) 编辑
摘要: 链接:https://codeforces.com/problemset/problem/2018/B 题目: 思路: 刚开始的思路是对的,就是每个点确定范围求交集。然后还要判断一下会不会无解,比如[5,6,4,1,4,5],就是说∃t∈[1,n],st:a[x]<=n,a[y]<=n,max(x) 阅读全文
posted @ 2024-10-18 19:24 WHUStar 阅读(9) 评论(0) 推荐(0) 编辑
摘要: 链接:https://codeforces.com/contest/2025/problem/D 题目: 思路: 动态规划。dp[i]记录当前0分配了i个给智力所能达到的最大分数。利用strength[N],intel[N]表示小于等于i的个数,所以加上前缀和赋值给dp[i],然后清空两个数组,方便 阅读全文
posted @ 2024-10-15 10:34 WHUStar 阅读(18) 评论(0) 推荐(0) 编辑
摘要: 链接:https://codeforces.com/problemset/problem/2014/E 题面: 思路: 最短路首选dijkstra,这题也是这样,但是难点在于如何记录有马的时间这个状态。采取方法就是没有马的情况下正反跑一遍dijkstra,然后记录有马的位置的时间,从每个有马的地方重 阅读全文
posted @ 2024-10-14 20:01 WHUStar 阅读(6) 评论(0) 推荐(0) 编辑
摘要: 链接:https://www.luogu.com.cn/problem/P1043 题面: 思路: 区间dp,设dpmax/dpmin[i][j][k]表示从序列i->j分成k份的最大/最小值,然后根据递推公式 dpmin[i][j][m] = min(dpmin[i][j][m], dp[i][k 阅读全文
posted @ 2024-10-12 17:01 WHUStar 阅读(8) 评论(0) 推荐(0) 编辑
摘要: 比较简单的dp,但是建模可能会比较困难。 以P1775 石子合并(弱化版)为例(https://www.luogu.com.cn/problem/P1775) 思路: 要求1-n的石子合并的代价,可以看成小的区间问题,化为1-k + k-n的两个区间。然后就有递推式子: dp[i][j] = min 阅读全文
posted @ 2024-10-11 21:13 WHUStar 阅读(3) 评论(0) 推荐(0) 编辑
摘要: https://codeforces.com/problemset/problem/2020/D 题面: 思路:并查集加合并区间,然后发现一个大佬的并查集板子很好 #include <bits/stdc++.h> using namespace std; struct DSU { std::vect 阅读全文
posted @ 2024-10-10 22:36 WHUStar 阅读(39) 评论(0) 推荐(0) 编辑
摘要: 链接:https://www.luogu.com.cn/problem/P1801 题目: 思路: 非常有意思的双根对顶堆。具体来说就是一个大根堆+一个小根堆,然后不断淘汰,用大根堆当基底,每次输出小根堆的top并放到大根堆中。 代码: #include<bits/stdc++.h> using n 阅读全文
posted @ 2024-09-09 16:37 WHUStar 阅读(9) 评论(0) 推荐(0) 编辑