摘要:
转自 https://www.cnblogs.com/y142857/p/7134366.html 首先想到设f[i][j]表示到第i行第j列所需要的最少点击屏幕次数。转移方程为 f[ i ][ j ]=min{f[ i-1 ][ j - k*x[i-1] ] + k} (1<= k <= j/x) 阅读全文
摘要:
总结:1. 50分的代码(因为由多个数据,所以不能改变num[]数组) 正解 阅读全文
摘要:
背包 总结: 1.状态要根据问的问题设计,一开始我设计dp[i]是在i时间时的最高高度,而题目卡门最长可以活多久,这样设计的话若不能出去,则这个不好判断。所以设计为dp[i]是在i的高度时,卡门最多可以后活多久,这样问题便迎刃而解。 2.不用将牛的寿命减去时间,直接将牛可以存活的时间与当前时间比较即 阅读全文
摘要:
总结: 1.因为完成游戏的时间都是1分钟,所以不用考虑时间不同而带来的影响,这就是不用贪心的原因,所以可以用贪心 2.从每个游戏的最晚时间向前循环,是为了尽可能让后面游戏完成。 阅读全文
摘要:
总结:1.尝试设计多个状态转移方程 2.这道题记录分组的思想与分组背包由异曲同工之妙 阅读全文
摘要:
分组背包类型 总结: 1.先循环体积,再循环每组内的物品,保证每组物品内只选一次。 若调换位置,有可能每组内物品多选了。 2.num数组记录每组有多少个物品; belong数组记录每组物品的每一个物品的序列号是多少 很巧妙的方法 阅读全文
摘要:
题目链接 https://www.luogu.org/problem/P5020 玄学题目。。。。可以用筛表,动规,搜索做 筛表 从小到大枚举,筛掉可以表示出来的数,剩下的数就是必须要选的(也就是答案)。 动态规划 启示:刚好装满问题中1.将dp[i] 初始化为-inf ,dp[i] = max(d 阅读全文
摘要:
0x3F3F3F3F——ACM中的无穷大常量 http://www.mamicode.com/info-detail-1718631.html 字符串 1.string 只能用cin 字符数组用scanf读入 2.字符进行加减只需要减“0”就行 3.getchar()可以读取空格 4.scanf(" 阅读全文