UVa 10564 DP Paths through the Hourglass
2015-08-13 10:16
253 查看
从下往上DP,d(i, j, k)表示第(i, j)个格子走到底和为k的路径条数。
至于字典序最小,DP的时候记录一下路径就好。
代码君
还有一件事想抽自己两巴掌,就是一直困惑我的谜之AC,谜之WA,是因为没关freopen,WTF!
至于字典序最小,DP的时候记录一下路径就好。
#include <cstdio> #include <cstring> #include <algorithm> using namespace std; int n, sum; int a[50][25]; long long d[50][50][550]; int p[50][50][550][2]; int main() { while(scanf("%d%d", &n, &sum) == 2 && n) { memset(d, 0, sizeof(d)); memset(p, 0, sizeof(p)); for(int i = 1; i <= n; i++) for(int j = 1; j <= n - i + 1; j++) scanf("%d", &a[i][j]); for(int i = n + 1; i < n * 2; i++) for(int j = 1; j <= i - n + 1; j++) scanf("%d", &a[i][j]); for(int i = 1; i <= n; i++) { int t = a[n*2-1][i]; d[n*2-1][i][t] = 1; } for(int i = n*2-2; i >= n; i--) for(int j = 1; j <= i - n + 1; j++) for(int k = a[i][j]; k <= sum; k++) { int t = k - a[i][j]; if(d[i+1][j][t]) { d[i][j][k] += d[i+1][j][t]; p[i][j][k][0] = 1; } if(d[i+1][j+1][t]) { d[i][j][k] += d[i+1][j+1][t]; p[i][j][k][1] = 1; } } for(int i = n - 1; i >= 1; i--) for(int j = 1; j <= n - i + 1; j++) for(int k = a[i][j]; k <= sum; k++) { int t = k - a[i][j]; if(d[i+1][j-1][t]) { d[i][j][k] += d[i+1][j-1][t]; p[i][j][k][0] = 1; } if(d[i+1][j][t]) { d[i][j][k] += d[i+1][j][t]; p[i][j][k][1] = 1; } } long long ans = 0; for(int i = 1; i <= n; i++) ans += d[1][i][sum]; printf("%lld\n", ans); if(!ans) { puts(""); continue; } int j, now = sum; for(int i = 1; i <= n; i++) if(d[1][i][sum]) { j = i; break; } printf("%d ", j - 1); for(int i = 1; i < n * 2 - 1; i++) { if(p[i][j][now][0]) { printf("L"); now -= a[i][j]; if(i < n) j--; } else { printf("R"); now -= a[i][j]; if(i >= n) j++; } } puts(""); } return 0; }
代码君
还有一件事想抽自己两巴掌,就是一直困惑我的谜之AC,谜之WA,是因为没关freopen,WTF!
相关文章推荐
- C#:实现托盘
- Win10快速访问怎么关闭?Win10修改注册表值关闭的方法的方法
- query插件中(function ( $, window, document, undefined )的作用
- Volley获取json数组
- HDU 2546(01背包)
- HDU-1036 Average is not Fast Enough!
- Elasticsearch与MongoDB 数据同步及分布式集群搭建(一)
- 最佳调度问题 解题报告
- 十道海量数据处理面试题与十个方法大总结
- JAVA 网络编程 - TCP
- Spring依赖注入
- Ubuntu 12.04 root用户登录设置
- FILEUTILS 介绍
- 白话Android进程交互之--Binder原理
- Android中的调试
- PowerDesigner连接MySQL
- HDU 5371 Hotaru's problem Manacher+尺取法
- URL编码与解码
- Linux平台块设备到字符设备(裸设备)的三种映射方式(转载)
- 图论基础UVA10047