05 2024 档案
摘要:变形01背包 #include <bits/stdc++.h> using namespace std; const int N=1010; int s; int n,m; int v[N],w[N],f[N]; int accum(int p) { //预先处理约数之和 int ans=0; fo
阅读全文
摘要:前缀和走起 #include <bits/stdc++.h> using namespace std; #define int long long const int N=2e5+7; int n; int a[N]; int sum[N],ans; signed main(){ cin>>n; f
阅读全文
摘要:题目链接 第一种方法:从上到下 第二种:从下到上
阅读全文
摘要:(n-i+1) 相当于吃没事的个数 = 饱腹感 #include <bits/stdc++.h> using namespace std; const int N = 3e5 + 7; int n; int a[N]; long long sum; //!! double maxn; int mai
阅读全文
摘要:题目链接 #include <bits/stdc++.h> using namespace std; const int N = 1e6+7; int n,x; int a[N]; long long sum; int main() { cin>>n>>x; for(int i=1;i<=n;i++
阅读全文
摘要:题目链接 1.定义状态转移方程:f[i][j] - 前 i 个物品恰好是 j 元的方案数 2.集合划分: 1)选当前选第 i 个菜品时 i-1个物品能凑出j-a[i]元的方案 - f[i-1][j-a[i]] 再加上选这道菜品 f[i][j]; if(j>=a[i]) //有足够的钱可以买下当前菜品
阅读全文
摘要:题目链接 01背包 主要思想 1.四个科目需要单独算 2.最佳答案 = sum/2; 每一组数据划分为两部分 使得俩部分的差值最少 3.将每个科目所有题目的总时间的一半作为背包的容量 花费时间看作为体积和价值 求出最大值(这个最大值是小于等于sum/2) 4.说明最接近于sum/2的方案,sum-f
阅读全文
摘要:P1077 [NOIP2012 普及组] 摆花 题目描述 小明的花店新开张,为了吸引顾客,他想在花店的门口摆上一排花,共 m 盆。通过调查顾客的喜好,小明列出了顾客最喜欢的 n 种花,从 1 到 n 标号。为了在门口展出更多种花,规定第i种花不能超过 a[i] 盆,摆花时同一种花放在一起,且不同种类
阅读全文
摘要:题目链接 #include <bits/stdc++.h> using namespace std; typedef long long ll; const int N=2e5+7; ll n,c; ll a[N]; map<ll,ll>m; int main(){ cin>>n>>c; for(i
阅读全文
摘要:题目链接 思路: 1.标记所有 马能控制点 bool s[x][y]; 卒行走的规则:可以向下、或者向右。 2.由当前格子的上一个格子 或者 左方格子 到达 当前格子 到当前格子的总路线 = 从上方格子来的路线+ 从左方格子来的路线; 定义状态转移方程: dp[i][j]=dp[i-1][j]+dp
阅读全文
摘要:洛谷-题目链接 [TJOI2007] 线段 提示 我们选择的路线是 (1, 1) (1, 6) (2, 6) (2, 3) (3, 3) (3, 1) (4, 1) (4, 2) (5, 2) (5, 6) (6, 6) (6, 4) (6, 6) 不难计算得到,路程的总长度是 24。 #inclu
阅读全文
摘要:B.红的排列构造 #include <bits/stdc++.h> using namespace std; int n,k; int main(){ cin>>n>>k; vector<int>a(n,0); for(int i=0;i<n;i++) cin>>a[i]; if( k>n || k
阅读全文
摘要:Coffee Chicken 基本思路: f[i] 表示 s[i]的字符串长度 即 f[i]=f[i-2]+f[i] solve(n,k) 表示 s[n] 中 第 k 个 字符 当 n <= 2 时,直接返回答案 当 n > 2 时, k > f[i-2] 时 solve ( n-1 , k - f
阅读全文