• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
 






Object_S

 
 

Powered by 博客园
博客园 | 首页 | 新随笔 | 联系 | | 管理

随笔分类 -  动态规划 -- 线性DP

 
蓝桥杯 画廊
摘要:性质1:只有两边有画 性质2:对于每一边,画都呈线性排列 性质3:出发点为固定点、结束点为固定点,且位于线性排列的两端 公理1:三角形的两边之和大于第三边 由性质2和公理1可知,当先走完一边的点后,如果想到另外一边,那么直接走一个斜边一定比直接过去然后到那个点总距离更短。 即得到 性质4:对于任意一 阅读全文
posted @ 2022-05-07 11:19 Object_S 阅读(54) 评论(0) 推荐(0)
AtCoder Beginner Contest 222 D - Between Two Arrays
摘要:题意 题解 公理1:此题支持O(N2)。 公理2:对于每个合法序列,其值单调不减。 灵感1(公理1):是否可以DP? 性质1(公理2):在一个序列不断"递增"的过程中,其能够选择的最小值单调不降。 公理3:方案数具有累加性,不具有后效性。 答案1(灵感1、公理3):可以保存下所有状态,状态设计为dp 阅读全文
posted @ 2021-12-17 16:11 Object_S 阅读(69) 评论(0) 推荐(0)
T206418 【模板】最长上升子序列 标程
摘要:题目链接:https://www.luogu.com.cn/problem/T206418 #include<cstdio> #include<iostream> #include<algorithm> using namespace std; const int MAXN=200000*25; i 阅读全文
posted @ 2021-10-19 12:50 Object_S 阅读(791) 评论(0) 推荐(0)
2021-ACM集训队测试赛-赛后总结
摘要:一、整体流程 晚了一小时参赛,被第一道题卡了许久,下一道题卡常卡了许久后火速做完了另外两道暴力 比赛链接 二、具体题目 1.问题 H:括号匹配 (1)读题 ①场上:场上考虑到用栈,放进去左括号后遇到右括号出栈,如果不是需要的括号则返回NO。一开始没有考虑到同等大小的左右括号必须相互匹配,循环判断了每 阅读全文
posted @ 2021-10-17 10:31 Object_S 阅读(168) 评论(0) 推荐(0)
P1772 [ZJOI2006]物流运输
摘要:题目地址 转移方程: dis[i][j]:时间i~j不改变线路的最短路. cost[i]:从第1天到第i天的最低代价. cost[i]=cost[j]+dis(j+1,i)*(i-j)+k(0<=j<i). 初始值: cost[0]=-k. 基本思路: 预处理dis[i][j],进行cost[]转移 阅读全文
posted @ 2019-11-11 21:36 Object_S 阅读(119) 评论(0) 推荐(0)
P1006 传纸条
摘要:题目地址 易错点: 因为好感度最低为零且一定有答案,不需要额外处理好感度为零的位置. dp[i][x1][x2]=max(dp[i-1][x1][x2],...,dp[i-1][x1-1][x2-1]). 阅读全文
posted @ 2019-07-21 18:46 Object_S 阅读(76) 评论(0) 推荐(0)
P1004 方格取数
摘要:题目地址 易错点: 注意样例的位置点数量与n的关系 . 阅读全文
posted @ 2019-07-21 12:46 Object_S 阅读(82) 评论(0) 推荐(0)
AW274 移动服务
摘要:题目地址 易错点: 滚动数组的技巧:dp[i&1]=dp[(i-1)&1]+1. 直接dp(dp[i][x][y][z])的话复杂度开不下,可以考虑减少一维. 容易发现对于每一个任务,在这个任务被执行之前一定有一个人在上一个任务的位置. 因此可以枚举上一个任务其中两个人所在的位置,那么另一个人一定在 阅读全文
posted @ 2019-07-20 18:36 Object_S 阅读(95) 评论(0) 推荐(0)
P2893 [USACO08FEB]修路Making the Grade
摘要:题目地址 易错点: 由于数据太水,将序列变成单调不下降并计算最小花费即可. 可以考虑枚举每一段路i和每一个高度j,则dp[i][j]=min(dp[i][j-1],dp[i-1][j]+cost) 高度j范围太大,利用贪心的思想可以将所有可能的高度离散化. 此时dp[i][j]=min(dp[i][ 阅读全文
posted @ 2019-07-20 15:22 Object_S 阅读(65) 评论(0) 推荐(0)
P2519 [HAOI2011]problem a
摘要:题目地址 易错点: 可以将每个人的话转化为一个相同分数段,即[b+1,n-a]。如果某个区段分数的人数超过了区段长度,就有超过区段长度数量的人说假话. 阅读全文
posted @ 2019-07-19 08:55 Object_S 阅读(101) 评论(0) 推荐(0)