HDU 1224 Free DIY Tour——DP
来源:互联网 发布:c语言笔试题和答案 编辑:程序博客网 时间:2024/05/18 20:32
题目虽然长,但实际上就是让你找1到n+1的一条权值最大的路径,并输出这条路径(从1到n+1,并且n+1输出时视为1)
#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>using namespace std;int n, a[110], dp[110], graph[110][110], pre[110];void print(int x) { if (x == 1) { printf("1"); return; } print(pre[x]); printf("->%d", x);}int main(){ int T; scanf("%d", &T); for (int kase = 1; kase <= T; kase++) { if (kase != 1) printf("\n"); memset(dp, 0, sizeof(dp)); memset(pre, 0, sizeof(pre)); memset(graph, 0, sizeof(graph)); int n; scanf("%d", &n); for (int i = 1; i <= n; i++) { scanf("%d", &a[i]); } a[n + 1] = 0; int m; scanf("%d", &m); while (m--) { int a, b; scanf("%d %d", &a, &b); if (a > b) swap(a, b); graph[b][a] = 1; } for (int i = 1; i <= n + 1; i++) { for (int j = 1; j < i; j++) { if (graph[i][j] && dp[j] + a[i] > dp[i]) { dp[i] = dp[j] + a[i]; pre[i] = j; } } } printf("CASE %d#\npoints : %d\n", kase, dp[n + 1]); printf("circuit : "); print(pre[n + 1]); printf("->%d\n", 1); } return 0;}
阅读全文
1 0
- HDU 1224 Free DIY Tour——DP
- HDU 1224——Free DIY Tour
- HDU 1224 Free DIY Tour (DP again!)
- HDU - 1224 Free DIY Tour DP
- hdu 1224 Free DIY Tour(dp)
- HDU 1224 Free DIY Tour(DP)
- HDU 1224 Free DIY Tour(DP)
- HDU 1224 Free DIY Tour DP -
- hdu 1224 Free DIY Tour(dp)
- HDU Free DIY Tour(dp)
- hdu 1224 Free DIY Tour
- hdu 1224 Free DIY Tour
- HDU 1224 Free DIY Tour
- hdu 1224 Free DIY Tour
- HDU 1224 Free DIY Tour
- HDU 1224 Free DIY Tour
- hdu 1224 Free DIY Tour
- HDU 1224 Free DIY Tour
- Quartz定时调度器06
- H5页面,iOS以及部分Android手机链接a等标签点击的时候,会有阴影,怎么解决?
- Class doesn't contain any JAX-RS annotated methods less... (Ctrl+F1)
- JavaScript之Boolean对象详解
- Android系统启动流程(nougat7.1.1_r6)
- HDU 1224 Free DIY Tour——DP
- JZOJ 5068.树
- Mongodb参数详解(参考:http://blog.csdn.net/freebird_lb/article/details/8229567)
- VScode‘s Extension for Evernote——EverMonkey
- Spring AOP – Aspects Ordering
- 数据分析职位爬虫与分析
- 【C语言】【unix c】程序中的错误处理
- 在Oracle中使用JSON: PL/JSON
- 帮助knn1找到路径