
dp
诠释你的Mr贾
这个作者很懒,什么都没留下…
展开
-
算法笔记【问题 C: 合唱队形】
题目链接#include<iostream>using namespace std;int N;const int MAXN=10010;int num[MAXN];int decc[MAXN];int incc[MAXN];int main(){ while(scanf("%d",&N),N) { for(int i=1;i<=N;i++) scanf("%d",&num[i]); for(int i=1;i<=N;i原创 2021-07-16 08:52:05 · 152 阅读 · 0 评论 -
算法笔记【问题 B: 拦截导弹】
问题链接#include<iostream>using namespace std;#include<cstring>const int MAXN=130;int k;int num[MAXN];int dp[MAXN];int main(){ while(scanf("%d",&k),k) { memset(dp,0,sizeof(dp)); for(int i=1;i<=k;i++) { scanf("%d",&num原创 2021-07-15 20:35:31 · 132 阅读 · 0 评论 -
算法笔记【问题 A: 第二题】
问题链接1.dfs解法#include<iostream>#include<cmath>#include<string>using namespace std;const int MAXN=1005;string str;int num[MAXN];int sum;int minn=sum;int maxnn;int sizee;int ok=1;void dfs(int now,int ss) { if(ok) retu原创 2021-07-15 20:07:19 · 110 阅读 · 0 评论 -
压缩编码 区间dp
压缩编码 区间dp题解f[i][j] = min(f[i][k] + f[k+1][j] + sum[i][j])#include<iostream>using namespace std;#include<cstring>#include<algorithm>#define ll long longint t[1005];ll f[1005][1005];ll sum[1005];int n;int main(){ cin>&原创 2021-02-23 13:29:44 · 127 阅读 · 0 评论 -
网络延时 DFS BFS DP
网络延时 DFS BFS DPDP思路: dfs 作用:返回以该点为根,到叶子节点的最大长度加1 即加上该顶点上面一条边 , 由递推公式:dfs(i)=max{dfs(j)}+1 dfs(叶子节点)=1#include<iostream>using namespace std;#include<cstring>int idx;int e[20005];int h[20005];int ne[20005];int ans;int n,m;void ad原创 2021-02-21 21:19:46 · 263 阅读 · 0 评论 -
有趣的数 dp
有趣的数 dp题解注意开long long 某则乘以2可能溢出#include<iostream>using namespace std;const int p=1e9+7;int f[1005][7];int n;int main(){ cin>>n; for(int i=1;i<=n;i++) { f[i][0]=1; f[i][1]=(f[i-1][0]+f[i-1][1])%p; f[i]原创 2021-02-16 21:39:14 · 70 阅读 · 0 评论 -
计算系数 动态规划 费马小定理 组合数学
计算系数 动态规划 费马小定理 组合数学解 1 费马小定理#include<iostream>using namespace std;long long a,b,k,m,n;const int p=10007;long long fact(long long x,long long y){long long ans=1;long long t=x;while(y){ if(y&1) ans=ans*t%p;原创 2021-02-11 00:26:59 · 90 阅读 · 0 评论 -
乌龟棋 动态规划
乌龟棋 动态规划思路:用f[i][j][k][l]来表示用了i张1卡,j张2卡,k张3卡,l张4卡时的最大分数,最终的答案就是f[b[1]][b[2]][b[3]][b[4]].可以得出:f[i][j][k][l] = max(f[i-1][j][k][l],f[i][j-1][k][l],f[i][j][k-1][l],f[i][j][k][l-1])+a[i+2j+3k+4*l+1]#include<iostream>using namespace std;int N,M;原创 2021-02-09 21:34:13 · 124 阅读 · 0 评论