也是经典的计数DP题,想练练手,故意不写记忆化搜索,改成递推,还是成功了嘞。。。不过很遗憾一开始WA了,原来是因为判断结束条件写个 n或s为0,应该要一起为0的,搞的我以为自己递推写挫了,又改了一下,其实递推没问题,就是写出来不好看

#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#define LL long long
using namespace std;
const int N=80;
LL dp[N][N][1000];
int mat[N][N];
int p[N][N][1000];
int n,s;
void print(int d,int loc,int s)
{
if (d==2*n-1) return;
int val=mat[d][loc];
if (d<n){
if (dp[d+1][loc-1][s-val] && loc>1){
putchar('L');
print(d+1,loc-1,s-val);
return;
}
else {
putchar('R');
print(d+1,loc,s-val);
}
}
else{
if (dp[d+1][loc][s-val]){
putchar('L');
print(d+1,loc,s-mat[d][loc]);
return;
}
else{
putchar('R');
print(d+1,loc+1,s-mat[d][loc]);
}
}
}
int main()
{
while (scanf("%d%d",&n,&s)!=EOF)
{
if (n==0 &&s==0) break;
memset(mat,0,sizeof mat);
for (int i=1;i<=2*n-1;i++){
int k;
if (i<=n) k=n-i+1;
else k=i-n+1;
for (int j=1;j<=k;j++){
scanf("%d",&mat[i][j]);
}
}
memset(dp,0,sizeof dp);
for (int i=1;i<=n;i++){
dp[2*n-1][i][mat[2*n-1][i]]=1;
}
for (int i=2*n-2;i>=1;i--)
{
int k;
if (i>=n) k=i-n+1;
else k=n-i+1;
if (i>=n){
for (int j=1;j<=k;j++){
for (int q=mat[i][j];q<=s;q++){
dp[i][j][q]+=dp[i+1][j][q-mat[i][j]];
dp[i][j][q]+=dp[i+1][j+1][q-mat[i][j]];
}
}
}
else{
for (int j=1;j<=k;j++){
for (int q=mat[i][j];q<=s;q++){
dp[i][j][q]+=dp[i+1][j][q-mat[i][j]];
dp[i][j][q]+=dp[i+1][j-1][q-mat[i][j]];
}
}
}
}
LL ans=0;
int loc=-1;
for (int i=1;i<=n;i++){
ans+=dp[1][i][s];
if (dp[1][i][s] && loc==-1){
loc=i;
}
}
printf("%lld\n",ans);
if (ans>0)
{
printf("%d ",loc-1);
print(1,loc,s);
}
puts("");
}
return 0;
}

  

UVA 10564 计数DP的更多相关文章

  1. UVA 10564 Paths through the Hourglass[DP 打印]

    UVA - 10564 Paths through the Hourglass 题意: 要求从第一层走到最下面一层,只能往左下或右下走 问有多少条路径之和刚好等于S? 如果有的话,输出字典序最小的路径 ...

  2. UVA 10564 十 Paths through the Hourglass

     Paths through the Hourglass Time Limit:3000MS     Memory Limit:0KB     64bit IO Format:%lld & % ...

  3. 01背包(类) UVA 10564 Paths through the Hourglass

    题目传送门 /* 01背包(类):dp[i][j][k] 表示从(i, j)出发的和为k的方案数,那么cnt = sum (dp[1][i][s]) 状态转移方程:dp[i][j][k] = dp[i ...

  4. HDU5800 To My Girlfriend 背包计数dp

    分析:首先定义状态dp[i][j][s1][s2]代表前i个物品中,选若干个物品,总价值为j 其中s1个物品时必选,s2物品必不选的方案数 那么转移的时候可以考虑,第i个物品是可选可可不选的 dp[i ...

  5. CodeForces 176B Word Cut (计数DP)

    Word Cut Time Limit:2000MS     Memory Limit:262144KB     64bit IO Format:%I64d & %I64u Submit St ...

  6. [DP之计数DP]

    其实说实在 我在写这篇博客的时候 才刚刚草了一道这样类型的题 之前几乎没有接触过 接触过也是平时比赛的 没有系统的做过 可以说0基础 我所理解的计数dp就是想办法去达到它要的目的 而且一定要非常劲非常 ...

  7. HDU4815/计数DP

    题目链接[http://acm.hdu.edu.cn/showproblem.php?pid=4815] 简单说一下题意: 有n道题,每到题答对得分为a[ i ],假如A不输给B的最小概率是P,那么A ...

  8. HDU 6377 度度熊看球赛 (计数DP)

    度度熊看球赛 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total Subm ...

  9. 计数dp

    计数dp 计数类的$dp$没做过几个,所以之前都放到"思维"标签下了,后来发现原来这属于一类问题啊...搬过来了. 管道取珠:https://www.lydsy.com/Judge ...

随机推荐

  1. DateTime.Now.ToFileTime

    var s = System.DateTime.Now.ToFileTime().ToString(); DateTime.Now.ToFileTime() 可以获得当前时间的长整型数字,这个数字应该 ...

  2. python读取文件用b模式读取

    f = open('aaa','rb')    返回的是字节 字符串编码 python中所有的字符串编码为Unicode,如果从一个文件读取字符串,那么该字符串的编码就是该文件的编码. f.tell( ...

  3. Laplacian Mesh Editing 拉普拉斯形变(待回学校更新)

    前言 因为实验需要用到拉普拉斯形变,但找了好久找到一个非常适合入门的资料.再此记录下我的学习过程,也算搬运翻译过来. Introduction / Basic Laplacian Mesh Repre ...

  4. WebGL 渲染管线

    WebGL 是以 OpenGL ES 2.0 为基础的 3D 编程应用接口. WebGL依赖GPU的图形渲染能力,即依赖硬件设备,所以其渲染流程和GPU内部的渲染管线是相符的.渲染管线的作用是将3D模 ...

  5. redis api-hash

  6. [排错] VO对象和POJO对象的关系

    这或许是一个很蠢的笔记吧...... 这次项目中, 作为一个新人, 没少被这两个概念虐得死去活来的, 现在特别做一次记录, 关于它们二者之间在项目中的应用. 在这里呢, 就不再赘述 VO(view o ...

  7. Python 关于super在多继承中的解析

    一.单继承情况: 解析: 创建B类的实例化对象时,执行初始化函数: 打印输出Enter B,当遇到super()调用父类初始化函数(此时是调用B类的父类A的__init__函数),输出Enter A. ...

  8. R语言作图 绘制中国地图

    参考:https://zhuanlan.zhihu.com/p/27360411 第一步.下载shapefile文件 一直都没有找到下载地址,死在了第一步 第二步.导入shp文件 第三步.画图

  9. 【替代语法】PHP中冒号、endif、endwhile、endfor这些都是什么

    我们经常在wordpress一类博客程序的模板里面看到很多奇怪的PHP语法,比如: <?php if(empty($GET_['a'])): ?><font color=" ...

  10. poj 3617 Best Cow Line 贪心模拟

    Best Cow Line Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 42701   Accepted: 10911 D ...