摘要:
状态转移 b[i]记录价值为i的单词种类数 d[j+k*i]+=b[j] , k<=a[i]&&j+k*i<=50 表示价值为j+k*i的单词可以由价值为j的单词加上k个i字母转移而来 最后统计即可 #include<stdio.h> int main(){ int T,t,i,j,k,a[27]= 阅读全文
posted @ 2020-01-19 14:10
StelaYuri
阅读(129)
评论(0)
推荐(0)
摘要:
二维图的动态规划 因为不能穿越对角线,则选取对角线的一边dp即可 选取对角线右下侧 则x轴上每个点只能由其左侧的点走过去(只有1条) 对角线上的点只能由对角线下方的点走过去 其他点可以由左侧和下侧两种方式到达 因为对角线左上和右下均可 所以答案*2 #include<stdio.h> long lo 阅读全文
posted @ 2020-01-19 13:56
StelaYuri
阅读(140)
评论(0)
推荐(0)
摘要:
推出n=1到4时,An排列的种类数分别为 1 4 15 64 可得 (1+1)*2=4 (4+1)*3=15 (15+1)*4=64 ... 故用一数列r[n]记录An的种类总数 当n=3时,列举出以下15种从大到小的排列 1 1 2 1 2 3 1 3 1 3 2 2 2 1 2 1 3 2 3 阅读全文
posted @ 2020-01-19 13:48
StelaYuri
阅读(163)
评论(0)
推荐(0)
摘要:
只需求出乌龟最短耗时跟兔子耗时比即可 将起点 0 和终点 N+1 也看做充电站,进行动态规划 对第i个点进行动态规划,则可以得到状态转移方程为 dp[i] = max{dp[j]+time[i][j]} j∈[0,i] time[i][j]=max(不充电从i到j耗时 , 在i充满电后再到j耗时) 阅读全文
posted @ 2020-01-19 12:53
StelaYuri
阅读(168)
评论(0)
推荐(1)
摘要:
枚举区间可能的长度len,将m减去1~len构成的序列和后如果结果是len的倍数,则可以构成答案区间。 #include<stdio.h> #include<math.h> int main(){ int n,m,len,b; while(scanf("%d%d",&n,&m)!=EOF&&(n|| 阅读全文
posted @ 2020-01-19 12:45
StelaYuri
阅读(152)
评论(0)
推荐(0)

浙公网安备 33010602011771号