摘要: 经典的过河卒问题,dp状态很好想,只需注意#不能发生转移即可 #include<bits/stdc++.h> #define int long long using namespace std; const int N=1e3+10; const int mod=1e9+7; char mp[N][ 阅读全文
posted @ 2023-12-24 13:25 yufan1102 阅读(3) 评论(0) 推荐(0) 编辑
摘要: 每个点肯定是它上个点转移过来的 #include<bits/stdc++.h> using namespace std; const int N=1e5+10; vector<int>a[N]; int d[N],dp[N]; void solve(){ int n,m; cin>>n>>m; fo 阅读全文
posted @ 2023-12-24 13:23 yufan1102 阅读(8) 评论(0) 推荐(0) 编辑
摘要: 这个题目的体积很大,但是价值却很小,最多是1e5,我们可以转变背包体积概念,把价值当作体积,然后体积当作 DP 值。 dp[i] 表示的是达到i价值所需的最小的体积 #include<bits/stdc++.h> #define int long long using namespace std; 阅读全文
posted @ 2023-12-24 13:20 yufan1102 阅读(10) 评论(0) 推荐(0) 编辑
摘要: 用dp[i][j] 表示第i天选了j类型的最大值 #include<bits/stdc++.h> using namespace std; const int N=1e5+10; vector<int>a[N]; int dp[N][3]; void solve(){ int n; cin>>n; 阅读全文
posted @ 2023-12-24 13:11 yufan1102 阅读(5) 评论(0) 推荐(0) 编辑
摘要: 因为k很小,所以无需优化dp #include<bits/stdc++.h> using namespace std; void solve(){ int n,k; cin>>n>>k; vector<int>a(n+1); vector<int>dp(n+1,1e18); dp[1]=0; for 阅读全文
posted @ 2023-12-24 13:08 yufan1102 阅读(7) 评论(0) 推荐(0) 编辑
摘要: 很好想的线性p #include<bits/stdc++.h> using namespace std; void solve(){ int n; cin>>n; vector<int>a(n+1); vector<int>dp(n+1,1e18); dp[1]=0; for(int i=1;i<= 阅读全文
posted @ 2023-12-24 13:06 yufan1102 阅读(3) 评论(0) 推荐(0) 编辑