题解里面全是dp的大神本蒟蒻瑟瑟发抖奉上一篇记忆化搜索...

其实嘛,记忆化搜索还是很安全透彻清真人品的,一般递推不好实现dp可以用记忆化搜索

然后本题先预处理一个mint[i]代表当前能力值为i,参与滑雪的最小时间。一开始赋初值为\(+\infty\),每当读入一个滑雪任务(c,d)后,把[c,100]区间内的数组对d去取一个min

然后就可以缩索了,search(x,y)返回当前时间为x,能力值为y滑雪最大次数。枚举所有课程,如果这个课程开始时间在x后面(或者就在x也就是\(\ge x\),那么我们就用上这门课来更新本次答案,也就是search(a[i].m + a[i].l, a[i].a)。mla如题意。一个剪枝:当当前课程a小于等于当前能力值,选他一定不比不选他优,所以不用考虑。然后贪心地在当前时间x和课程开始时间内滑雪(用当前时间除以当前能力值能滑雪最短时间就是最大滑雪的次数)。

备注:数据貌似有一点水,不写记忆化tle两个点,不写记忆化开O2tle一个点。

#include <cstdio>
#include <iostream>
#include <cstring> using namespace std; struct course
{
int m, l, a;
}a[110]; int mint[110]; int t, s, n, f[10010][110]; //记忆化缩索,表示在x时候能力值为y能滑雪最大数
int search(int x, int y)
{
if(f[x][y] != -1)
return f[x][y];
f[x][y] = 0;
for (int i = 1; i <= s + 1; i++)
if(a[i].m >= x && a[i].a > y)
f[x][y] = max(f[x][y], search(a[i].m + a[i].l, a[i].a) + (a[i].m - x) / mint[y]);
return f[x][y];
} int main()
{
scanf("%d%d%d", &t, &s, &n);
for (int i = 1; i <= s; i++)
{
scanf("%d%d%d", &a[i].m, &a[i].l, &a[i].a);
}
a[s + 1] = (course){t, 0, 101};
memset(mint, 0x3f, sizeof(mint));
for (int c, d, i = 1; i <= n; i++)
{
scanf("%d%d", &c, &d);
for (int j = c; j <= 100; j++)
mint[j] = min(mint[j], d);
}
memset(f, -1, sizeof(f));
printf("%d\n", search(0, 1));
return 0;
}

让我们一起膜拜大佬林瑞堂 @olinr

让我们一起膜拜搜索王@ZAGER

最新文章

  1. Codeforces617 E . XOR and Favorite Number(莫队算法)
  2. hdu 3746 kmp求循环节
  3. docker &amp; nodejs
  4. _int、NSInteger、NSUInteger、NSNumber的区别和联系
  5. 数位DP入门Ural1057
  6. 流程控制------if else分支语句
  7. 前端的UI设计与交互之色彩篇
  8. 【优秀的图片后期编辑工具】Luminar 3.1 for Mac
  9. 微信小程序textarea组件在fixed定位中随页面滚动
  10. 你不得不知道的 .NET CORE —— .NET Framework, .NET Core 和 .NET Standard 的区别
  11. JS 去除重复元素的方法
  12. WinForm将一个窗体的值传到另一个窗体的listbox控件,C#
  13. gitlab jenkins 自动构建
  14. Linux 学习总结(二)
  15. 深入理解String类
  16. RecyclerView嵌套TextView时显示文字不全的解决方法之一
  17. python中安装dlib和cv2
  18. 应用程序创建自己的奔溃转储(crash dump)文件
  19. css display&amp;&amp;hidden
  20. linux-redhat-git源码安装

热门文章

  1. eclipse下搭建Drools规则引擎环境
  2. StackMapTable format error
  3. volatile关键字在多线程中的作用
  4. git pull没有指定branch的报错
  5. 框架之 hibernate之各种查询
  6. css 层叠式样式表(1)
  7. 数字图像处理实验(2):PROJECT 02-02, Reducing the Number of Gray Levels in an Image 标签: 图像处理MATLAB 2017-
  8. Luogu 2149 [SDOI2009]Elaxia的路线
  9. HttpServletRequest和ServletRequest的区别.RP
  10. 小组作业wordCountPro&#183;