题目:https://www.luogu.org/problemnew/show/P1941 此题主要注意许多细节,详见代码. 代码如下: #include<iostream> #include<cstdio> #include<cstring> using namespace std; int n,m,k,up[10005],down[10005],p[10005],l[10005],h[10005],f[10005][1005],wall[10005]; int I…
此题很容易写出方程,由以前的知识可以迁移得,本题可以用完全背包的方法进行优化,使用滚动数组即可得到答案. //莫名奇妙60分.不知道什么细节出了错. #include <bits/stdc++.h> using namespace std; const int maxn = 10005; int main() { // freopen("input.in", "r", stdin); int n, m, k; cin >> n >>…
题意 题目链接 Sol 很显然的dp,设\(f[i][j]\)表示第\(i\)个位置,高度为\(j\)的最小步数 向上转移的时候是完全背包 向下转移判断一下就可以 #include<bits/stdc++.h> #define Fin(x) {freopen(x, "r", stdin);} #define chmin(a, b) (a = (a < b ? a : b)) //#define int long long using namespace std; co…
设f[i][j]为在坐标(i,j)时的最小点击次数,转移的话从i-1向上飞或者向下掉转移,注意转移完了之后要把管子部分赋值为inf #include<iostream> #include<cstdio> using namespace std; const int N=10005,inf=1e9; int n,m,k,p,ans,a[N],b[N],x[N],y[N],f[N][1005]; int main() { scanf("%d%d%d",&n,…