DP

A collection of 4 posts

Oct 9, 2019

SYJOJ#646.射击游戏 离散化+DP

小Y是虚拟世界里的狙击手,他有一个非常强大的武器,一枪可以击杀距离他 kkk 范围内的所有敌人,但也会给小Y带来 kkk 的劳累度。 kkk 由小Y决定。 小Y部队里的侦察兵侦测到了有 nnn 个敌方士兵,第 iii 个士兵会在 aia_{i}a ​i ​​ 分钟出现,距离你bib_{i}b ​i ​​ 距离,你需要在 cic_{i}c ​i ​​ 分钟前杀掉他。如果你没杀掉了你就会被杀。 小Y想知道自己消灭所有敌人的最低劳累度

Sep 9, 2019

COGS 138. [USACO Feb08] 流星雨

借这道题来回忆一下广度优先搜索(BFS) 一开始的时候乱写成dfs了(逃.. bfs就是类似对树进行一层一层的遍历,具体做法就是开一个队列,每次从队头取出节点,对他所连通的节点进行遍历,如果是未遍历过的节点就加入队列,直到队列为空时遍历完成。 #include<cstdio> #include<iostream> #include<algorithm> #include<cstring> #include<queue> using namespace std;

Sep 9, 2019

COGS-146. [USACO Jan08] 贝茜的晨练计划

好久没有写题解...终于来更新一波... 这题就是一道比较简单的动归... 题目一个比较关键的点就是:如果贝茜选择休息,她必须休息到疲劳度恢复到0为止 所以更新的时候分两种情况 设f[i][j]为第i秒疲劳度为j时的最优解 则f[i][0]=max(f[i][0],f[i-k][k]) f[i][j]=max(f[i][j],f[i-1][j-1]+d[i]