从下往上DP,d(i, j, k)表示第(i, j)个格子走到底和为k的路径条数。

至于字典序最小,DP的时候记录一下路径就好。

 #include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std; int n, sum;
int a[][];
long long d[][][];
int p[][][][]; int main()
{
while(scanf("%d%d", &n, &sum) == && n)
{
memset(d, , sizeof(d));
memset(p, , sizeof(p));
for(int i = ; i <= n; i++)
for(int j = ; j <= n - i + ; j++) scanf("%d", &a[i][j]);
for(int i = n + ; i < n * ; i++)
for(int j = ; j <= i - n + ; j++) scanf("%d", &a[i][j]); for(int i = ; i <= n; i++)
{
int t = a[n*-][i];
d[n*-][i][t] = ;
} for(int i = n*-; i >= n; i--)
for(int j = ; j <= i - n + ; j++)
for(int k = a[i][j]; k <= sum; k++)
{
int t = k - a[i][j];
if(d[i+][j][t]) { d[i][j][k] += d[i+][j][t]; p[i][j][k][] = ; }
if(d[i+][j+][t]) { d[i][j][k] += d[i+][j+][t]; p[i][j][k][] = ; }
} for(int i = n - ; i >= ; i--)
for(int j = ; j <= n - i + ; j++)
for(int k = a[i][j]; k <= sum; k++)
{
int t = k - a[i][j];
if(d[i+][j-][t]) { d[i][j][k] += d[i+][j-][t]; p[i][j][k][] = ; }
if(d[i+][j][t]) { d[i][j][k] += d[i+][j][t]; p[i][j][k][] = ; }
} long long ans = ;
for(int i = ; i <= n; i++) ans += d[][i][sum];
printf("%lld\n", ans);
if(!ans) { puts(""); continue; } int j, now = sum;
for(int i = ; i <= n; i++) if(d[][i][sum]) { j = i; break; }
printf("%d ", j - ); for(int i = ; i < n * - ; i++)
{
if(p[i][j][now][])
{
printf("L");
now -= a[i][j];
if(i < n) j--;
}
else
{
printf("R");
now -= a[i][j];
if(i >= n) j++;
}
}
puts("");
} return ;
}

代码君

还有一件事想抽自己两巴掌,就是一直困惑我的谜之AC,谜之WA,是因为没关freopen,WTF!

UVa 10564 DP Paths through the Hourglass的更多相关文章

  1. UVA 10564 十 Paths through the Hourglass

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

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

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

  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. uva 10564

    Problem FPaths through the HourglassInput: Standard Input Output: Standard Output Time Limit: 2 Seco ...

  5. UVA 10564 - Paths through the Hourglass (dp)

    本文出自   http://blog.csdn.net/shuangde800 题目传送门 题意: 给一个相上面的图.要求从第一层走到最下面一层,只能往左下或右下走,经过的数字之和为sum. 问有多少 ...

  6. UVA 10564 Paths through the Hourglass(背包)

    为了方便打印路径,考虑从下往上转移.dp[i][j][S]表示在i行j列总和为S的方案, dp[i][j][S] = dp[i+1][left][S-x]+dp[i+1][right][S-x] 方案 ...

  7. UVA - 10564 Paths through the Hourglass

    传送门:https://vjudge.net/problem/UVA-10564 题目大意:给你一张形如沙漏一般的图,每一个格子有一个权值,问你有多少种方案可以从第一行走到最后一行,并且输出起点最靠前 ...

  8. UVA 10564_ Paths through the Hourglass

    题意: 由0-9的数字组成一个形如沙漏的图形,要求从第一行开始沿左下或者右下到达最后一行,问有多少种不同的路径,使最后路径上的整数之和为给定的某个数. 分析: 简单计数dp,从最后一行开始,设dp[i ...

  9. UVA 10564 计数DP

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

随机推荐

  1. Web可用性设计的247条指导方针

    首页可用性设计 首页元素要清晰的关注用户的关键任务(避免“增加功能倾向(featuritis)”) 如果网站比较大,那么首页应包含搜索输入框 首页要十分清楚的提供产品(内容)分类 在首页或首页内一次点 ...

  2. 仙人掌(cactus)

    题目描述LYK 在冲刺清华集训(THUSC)!于是它开始研究仙人掌,它想来和你一起分享它最近研究的结果.如果在一个无向连通图中任意一条边至多属于一个简单环(简单环的定义为每个点至多经过一次),且不存 ...

  3. c#基础3-方法的重载静态和非静态,字段属性,方法

    方法的重载概念:方法的重载指的就是方法的名称相同给,但是参数不同.参数不同,分为两种情况1).如果参数的个数相同,那么参数的类型就不能相同.2).如果参数的类型相同,那么参数的个数就不能相同.***方 ...

  4. 介绍我最近做的网站 Asp.Net MVC4 + BootStrap

    一.前言 最近一直在做一个多站SEO数据分析的站点(www.easyyh.com),用了一些新技术,如Asp.Net MVC4,BootStrap,EasyUI,这些都是以前没有搞过的,最近搞得差不多 ...

  5. Java基础(Java概述、环境变量、注释、关键字、标识符、常量)

    第1天 Java基础语法 今日内容介绍 u Java开发环境搭建 u HelloWorld案例 u 注释.关键字.标识符 u 数据(数据类型.常量) 第1章 Java开发环境搭建 1.1 Java概述 ...

  6. 本号讯 | 永不消失的协作“空间站”开课;微软推出微软云Azure文档网站

    8月29日,针对企业常面临的“协同办公”困难,开展以“还有这种操作?永不消失的协作'空间站'”为主题的协同办公培训课. 课程内容包含:在Office 365环境中,如何利用Teams与Groups等功 ...

  7. Android(java)学习笔记110:Java中操作文件的类介绍(File + IO流)

    1.File类:对硬盘上的文件和目录进行操作的类.    File类是文件和目录路径名抽象表现形式  构造函数:        1) File(String pathname)       Creat ...

  8. Android(java)学习笔记135:SQLite数据库(表)的创建 以及 SQLite数据库的升级

    一.数据库的创建 1.文件的创建      //引用,如果文件不存在是不会创建的   File  file = new File("haha.txt"):     //输出流写数据 ...

  9. 复杂UI的组织-创建者模式-uitableview思想

    复杂节目的组织-创建者模式-uitableview思想 整体说明,部件规格说明

  10. 2019.05.26 周日--《阿里巴巴 Java 开发手册》精华摘要

    一.写在开头 Java作为一个编程界最流行的语言之一,有着很强的生命力.代码的编写规范也是不容忽视的,今天,我就把自己阅读的国内的互联网巨头阿里巴巴的<阿里巴巴 Java 开发手册>一些精 ...