UVA 10564 Paths through the Hourglass(背包)
2024-08-29 09:16:29
为了方便打印路径,考虑从下往上转移。dp[i][j][S]表示在i行j列总和为S的方案,
dp[i][j][S] = dp[i+1][left][S-x]+dp[i+1][right][S-x]
方案O(2^2*n-1),结果要用long long保存。
#include<bits/stdc++.h>
using namespace std; typedef long long ll;
const int maxn = ,maxs = ;
int hg[maxn<<][maxn];
ll dp[maxn<<][maxn][maxs]; //#define LOCAL
int main()
{
#ifdef LOCAL
freopen("in.txt","r",stdin);
#endif
int n, S;
while(scanf("%d%d", &n, &S) ,n){
int rc = ;
for(int i = n; i > ; i--){
int *h = hg[rc++];
for(int j = ; j <= i; j++){
scanf("%d",h+j);
}
}
for(int i = ; i <= n; i++){
int *h = hg[rc++];
for(int j = ; j <= i; j++){
scanf("%d",h+j);
}
}
rc--;
memset(dp,,sizeof(dp));
for(int j = ; j <= n; j++){
dp[rc][j][hg[rc][j]] = ;
}
while(rc>=n){
for(int j = , mj = (rc-- + ) - n; j <= mj; j++){
int x = hg[rc][j];
ll *f = dp[rc][j];
for(int s = S-x; s >= ; s--){
f[s+x] = dp[rc+][j][s]+dp[rc+][j+][s];
}
}
}
for(int i = ; rc--,i <= n; i++){
for(int j = ; j <= i; j++){
int x = hg[rc][j];
ll *f = dp[rc][j];
for(int s = S-x; s >= ; s--){
f[s+x] = dp[rc+][j-][s]+dp[rc+][j][s];
}
}
}
ll ans = ;
int index = ;
for(int j = ; j <= n; j++){
if(dp[][j][S]){
ans += dp[][j][S];
if(!index) index = j;
}
}
printf("%lld\n",ans);
if(ans){
int j = index, s = S ;
printf("%d ",j-);
rc = n;
for(int i = ; i < rc; i++){
s -= hg[i-][j];
if(dp[i][j-][s]){
putchar('L');
j--;
}else {
putchar('R');
} }
rc = *n-;
for(int i = n; i < rc; i++){
s -= hg[i-][j];
if(dp[i][j][s]){
putchar('L');
}else {
j++;
putchar('R');
}
}
}
puts("");
}
return ;
}
最新文章
- 仿QQ大战—界面篇
- 用字体在网页中画icon小图标
- 加密算法 - RSA
- J2EE 读取文件路径
- VIm变成sublime (转)
- 1、	Linux中的root用户切换(转载)
- c#基础语句——分支语句
- 了解数组中的队列方法,DOM中节点的一些操作
- 各大HotFix热补丁方案分析和比较
- C# 操作Excel数据透视表
- 【Static Program Analysis - Chapter 1】 Introduction
- 重开ES6
- python接口测试-登录
- android抽屉效果
- Guava 的EventBus示例代码(简单笔记,后期补充)
- WebApplication与WebSite区别
- Kotlin尝试
- Oracle 字符集的查看和修改 --转载
- 让UpdatePanel支持文件上传(2):服务器端组件 .
- php7安装Memcached扩展
热门文章
- 清北刷题冲刺 10-28 a.m
- Mol Cell Proteomics. |赵赟| 全面地分析个人尿蛋白质组学的变化揭示出不同的性别变化
- html标签的补充—— b,strong标签
- 事务隔离实现并发控制:MySQL系列之十
- iOS开发 - CocoaPods远程私有库从0到1
- Zabbix之CentOS7.3下yum安装Zabbix3.5
- Angular学习笔记之组件之间的交互
- android SDK manager 无法获取更新版本的解决办法
- BeanFilterUtil
- (转)认识 Linux 文件系统