10 2024 档案

摘要:链接: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 阅读(10) 评论(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 阅读(20) 评论(0) 推荐(0) 编辑
摘要:链接:https://codeforces.com/problemset/problem/2014/E 题面: 思路: 最短路首选dijkstra,这题也是这样,但是难点在于如何记录有马的时间这个状态。采取方法就是没有马的情况下正反跑一遍dijkstra,然后记录有马的位置的时间,从每个有马的地方重 阅读全文
posted @ 2024-10-14 20:01 WHUStar 阅读(7) 评论(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 阅读(12) 评论(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 阅读(4) 评论(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 阅读(44) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示