摘要:
就是f[i][j]i和j表示的是第i行第j列 与别的没有区别 1.传纸条 往返两条路,实际上就是从起点分别走两条不相交的路,使其两条路上的总和最大 正常的话就用四层循环分别表示两条路各自点的坐标 f[x1][y1][x2][y2]=max(f[x1-1][y1][x2-1][y2],f[x1-1][ 阅读全文
posted @ 2024-02-17 22:12
shaoyufei
阅读(36)
评论(0)
推荐(0)
摘要:
最抽象的一个dp,出的题跟它八竿子打不着关系 简单来讲,就是外层循环从1到n遍历一遍,内层循环更新维护1到n-1的最大值 下降的话就从n到1遍历,更新维护n-1到1 1.最长上升序列 没什么好说的 #include<bits/stdc++.h> using namespace std; #defin 阅读全文
posted @ 2024-02-17 21:33
shaoyufei
阅读(27)
评论(0)
推荐(0)
摘要:
题目描述 有N堆石子排成一排(n<=100),现要将石子有次序地合并成一堆,规定每次只能选相邻的两堆合并成一堆,并将新的一堆的石子数,记为改次合并的得分,编一程序,由文件读入堆数n及每堆石子数(<=200); (1)选择一种合并石子的方案,使得做n-1次合并,得分的总和最少 (2)选择一种合并石子的 阅读全文
posted @ 2024-02-17 18:54
shaoyufei
阅读(11)
评论(0)
推荐(0)
摘要:
1.合并石子 (1)排成一列的石子 这个与合并果子唯一的不同就是只能合并相邻的石子,所以贪不得(怎么所有类型的动规要先上来搞贪心,有点diss贪心的感觉) f[i][j]表示i到j间合并的最大/最小得分; 核心 for(int len=2;len<=n;len++){//表示长度2到len时的最大 阅读全文
posted @ 2024-02-17 18:08
shaoyufei
阅读(17)
评论(0)
推荐(0)
摘要:
The title of this problem is familiar,isn't it?yeah,if you had took part in the "Rookie Cup" competition,you must have seem this title.If you haven't 阅读全文
posted @ 2024-02-17 16:08
shaoyufei
阅读(7)
评论(0)
推荐(0)
摘要:
The aspiring Roy the Robber has seen a lot of American movies, and knows that the bad guys usually gets caught in the end, often because they become t 阅读全文
posted @ 2024-02-17 15:23
shaoyufei
阅读(11)
评论(0)
推荐(0)
摘要:
一个旅行者有一个最多能用V公斤的背包,现在有n件物品,它们的重量分别是W1,W2,...,Wn,它们的价值分别为C1,C2,...,Cn。这些物品被划分为若干组,每组中的物品互相冲突,最多选一件。求解将哪些物品装入背包可使这些物品的费用总和不超过背包容量,且价值总和最大。 输入格式 第一行:三个整数 阅读全文
posted @ 2024-02-17 15:00
shaoyufei
阅读(17)
评论(0)
推荐(0)
摘要:
题目描述 设有1g、2g、3g、5g、10g、20g的砝码各若干枚(其总重<=1000g)。求出用这些砝码能称出的不同重量的个数,但不包括一个砝码也不用的情况。 输入格式 只有一行,共有六个数,一次为1g、2g、3g、5g、10g、20g砝码的个数 输出格式 只有一行,为称出不同重量的个数 样例 样 阅读全文
posted @ 2024-02-17 14:32
shaoyufei
阅读(36)
评论(0)
推荐(0)
摘要:
1、01背包 f[i][j]=max(f[i][j],f[i-1][j-v[i]]+w[i])二维为背包现有容量,一维为前i个物品 表示在前i个物品所能选取的最大价值 在判断第i个的最大值时要由前一个的状态转移过来;即下一层的状态由上一层转移来; 可以直接省掉第一维(压维),从后往前更新过来,若还是 阅读全文
posted @ 2024-02-17 14:18
shaoyufei
阅读(32)
评论(0)
推荐(0)

浙公网安备 33010602011771号