01 2024 档案
摘要:背包问题(物品下标从1开始) 0~1背包模版: 题目一般是要求: 给定一个容量给定的背包(就是物品体积和小于容量),然后有N个物品,每个的价值和每个的体积,然后每个物品能用1次或0次求最大价值。 方法步骤: (1)状态表示:一般用二维数组 f[i][j]表示从前i个物品选体积小于等于j的最大价值。
阅读全文
摘要:题目: 查看代码 #include<bits/stdc++.h> using namespace std; using ll = long long; const int N = 1e3+7; const ll mod = 1e5+7; int n, s; int dp[N][N], a[N]; i
阅读全文
摘要:题目: 查看代码 #include <iostream> using namespace std; int a[100006]; int dp[100006][64];//到第i个数为止异或和 int main() { int n,x; cin>>n>>x; for(int i=1;i<=n;i++
阅读全文
摘要:#include <iostream> using namespace std; //dp[i][j]表示第i种花位置,第j个位置为止 long long int dp[120][120]; long long int a[160]; int main() { int n,m; cin>>n>>m;
阅读全文
摘要:题目:题目: #include<iostream> #include<cstdio> using namespace std; int n,k,dp[1000005]; int main() { scanf("%d%d",&n,&k); for(int i=1;i<=k+1;i++) dp[i]=i
阅读全文
摘要:#include <iostream> using namespace std; const long long int N=1e9+7; bool a[100006];//是否坏 int f[100006];//到这级台阶的方案数 int main() { int n,m;//n个台阶坏了m个台阶
阅读全文
摘要:上图给出了一个数字三角形。从三角形的顶部到底部有很多条不同的路径。对于每条路径,把路径上面的数加起来可以得到一个和,你的任务就是找到最大的和(路径上的每一步只可沿左斜线向下或右斜线向下走)。 第一行包括一个整数N,表示有N行,接下来输入数字三角形 输入例子: 5 7 3 8 8 1 0 2 7 4
阅读全文
摘要:x 星球有 26 只球队,分别用 a ~ z 的 26 个字母代表。他们总是不停地比赛。 在某一赛段,哪个球队获胜了,就记录下代表它的字母,这样就形成一个长长的串。 国王总是询问:获胜次数最多的和获胜次数最少的有多大差距?(当然,他不关心那些一次也没获胜的,认为他们在怠工罢了) #include <
阅读全文