【BZOJ3890】【Usaco2015 Jan】Meeting Time 拓扑图简单DP
来源:互联网 发布:网络信息点测试 编辑:程序博客网 时间:2024/05/16 10:36
广告:
#include <stdio.h>int main(){ puts("转载请注明出处[vmurder]谢谢"); puts("网址:blog.csdn.net/vmurder/article/details/43971435");}
题意:
给出一个n个点m条边的有向无环图,每条边两个边权。
n<=100,没有重边。
然后要求两条长度相同且尽量短的路径,
路径1采用第一种边权,路径2采用第二种边权。
没有则输出”IMPOSSIBLE”
题解:
简单拓扑图DP。
bool型数组f[i][j]、g[i][j]表示第i个点是否有1到此点权值为j的路径1、2。
代码:
#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>#define N 105using namespace std;bool f[N][N*N],g[N][N*N];int map1[N][N],map2[N][N];int n,m,stk[N],top,d[N];int main(){// freopen("test.in","r",stdin); int i,j,k; int a,b,c; memset(map1,-1,sizeof map1); memset(map2,-1,sizeof map2); scanf("%d%d",&n,&m); while(m--) { scanf("%d%d%d%d",&a,&b,&c,&k); map1[a][b]=c,map2[a][b]=k,d[b]++; } for(i=1;i<=n;i++)if(!d[i])stk[++top]=i; f[1][0]=g[1][0]=1; while(top) { a=stk[top--]; for(i=1;i<=n;i++)if(map1[a][i]+1) { if(--d[i]==0)stk[++top]=i; for(j=map1[a][i];j<=10000;j++)f[i][j]|=f[a][j-map1[a][i]]; for(j=map2[a][i];j<=10000;j++)g[i][j]|=g[a][j-map2[a][i]]; } } for(i=0;i<=10000;i++) { if(f[n][i]&g[n][i]) { printf("%d\n",i); return 0; } } puts("IMPOSSIBLE"); return 0;}
0 0
- 【BZOJ3890】【Usaco2015 Jan】Meeting Time 拓扑图简单DP
- BZOJ3890 [Usaco2015 Jan]Meeting Time K短路 Astar || 拓扑DP
- bzoj3890【Usaco2015 Jan】Meeting Time
- bzoj3890 [Usaco2015 Jan]Meeting Time [spfa + A*]
- BZOJ 3890 Usaco2015 Jan Meeting Time 拓扑图DP
- BZOJ 3890 Usaco2015 Jan Meeting Time 拓扑排序
- bzoj 3890: [Usaco2015 Jan]Meeting Time bfs
- bzoj3886[Usaco2015 Jan]Moovie Mooving 状压DP
- BZOJ 3887 Usaco2015 Jan Grass Cownoisseur Tarjan+拓扑排序
- BZOJ[3887][Usaco2015 Jan]Grass Cownoisseur Tarjan+拓扑排序
- bzoj 3886: [Usaco2015 Jan]Moovie Mooving 状压dp
- bzoj3888【Usaco2015 Jan】Stampede
- 【Usaco2015 JAN】Cow Rectangles
- bzoj3889【Usaco2015 Jan】Cow Routing
- BZOJ 3888: [Usaco2015 Jan]Stampede
- 【Usaco2015 JAN】Moovie Mooving 题解
- 【Usaco2015 JAN】Moovie Mooving【DP】(发现自己有点不会写二分啊)
- Milking Time 简单DP
- 学习笔记:NSScanner类的使用
- 通过url获取图片尺寸的几种方法:JS和php
- 图像语义分析--深度学习方法
- 【入门】计算等腰三角形中的数字的位置
- 留不住的2014
- 【BZOJ3890】【Usaco2015 Jan】Meeting Time 拓扑图简单DP
- TTTAttributedLabel 使用方法
- activity继承Cocos2dxActivity后无法监听安卓返回按键
- Objective-C省市区用类代替字典存储和读取
- jsp总结
- lua执行系统命令
- poj 3308 zoj 2874 Paratroopers(最小割)
- C# 使用Log4Net记录日志(基础篇)
- cocos2d学习之创建demo