2017 ACM-ICPC 亚洲区(乌鲁木齐赛区)网络赛-H Skiing
来源:互联网 发布:项城市乡镇人口数据 编辑:程序博客网 时间:2024/04/25 20:03
思路:拓扑排序依次查找flag,dp[]进行状态转移即可。
代码如下:
#include <cstdio>#include <cstring>#include <queue>#include <algorithm>#define LL long longusing namespace std;struct Edge{int to,next,w;}edge[200010];LL head[20010],deg[20010],dp[20010];int n,m,t,cnt;void add(int u, int v, int w){deg[v] ++;edge[cnt].to = v;edge[cnt].next = head[u];edge[cnt].w = w;head[u] = cnt ++;}void toposort(){priority_queue<int, vector<int>, greater<int> > q;for(int i = 1; i <= n; i ++){if(!deg[i]){q.push(i); deg[i] --;for(int j = head[i]; j != -1; j = edge[j].next){int k = edge[j].to;if(dp[k] < edge[j].w) dp[k] = edge[j].w;}}}while(!q.empty()){int v = q.top(); q.pop();for(int i = head[v]; i != -1; i = edge[i].next){int b = edge[i].to;deg[b] --; dp[b] = max(dp[b],dp[v] + edge[i].w); if(!deg[b]) q.push(b),deg[b] --;}}}int main(){scanf("%d",&t);while(t --){scanf("%d%d",&n,&m);memset(head,-1,sizeof(head));memset(deg,0,sizeof(deg));memset(dp,0,sizeof(dp));int u,v,w;cnt = 0;for(int i = 1; i <= m; i ++){scanf("%d%d%d",&u,&v,&w);int j;for(j = head[u]; j != -1; j = edge[j].next){if(edge[j].to == v) break;}if(j != -1)edge[j].w = max(w,edge[j].w);else add(u,v,w);}toposort();LL mxx = -1;for(int i = 1; i <= n; i ++){mxx = max(mxx,dp[i]);}printf("%lld\n",mxx);}return 0;}
阅读全文
0 0
- 2017 ACM-ICPC 亚洲区(乌鲁木齐赛区)网络赛 H. Skiing(记忆化dfs)
- H. Skiing 2017 ACM-ICPC 亚洲区(乌鲁木齐赛区)网络赛
- 2017 ACM-ICPC 亚洲区(乌鲁木齐赛区)网络赛 H. Skiing
- 2017 ACM-ICPC 亚洲区(乌鲁木齐赛区)网络赛-H Skiing
- 计蒜客-2017 ACM-ICPC 亚洲区(乌鲁木齐赛区)网络赛-H-Skiing
- 计蒜客 16957 Skiing(2017 ACM-ICPC 亚洲区(乌鲁木齐赛区)网络赛 H)
- 2017 ACM-ICPC 亚洲区(乌鲁木齐赛区) 网络赛 H.Skiing(求有向无环图的最长路)
- 计蒜客-2017 ACM-ICPC 亚洲区(乌鲁木齐赛区)网络赛H题Skiing(拓扑序求DAG最长路)
- 【2017 ACM-ICPC 亚洲区(乌鲁木齐赛区)网络赛 】H Skiing 【求DAG图的最长路】
- Skiing( 2017 ACM-ICPC 亚洲区(乌鲁木齐赛区)网络赛 )
- 2017 ACM-ICPC 亚洲区(乌鲁木齐赛区)网络赛
- 2017 ACM-ICPC 亚洲区(乌鲁木齐赛区)网络赛
- 2017 ACM-ICPC 亚洲区(乌鲁木齐赛区)网络赛
- 2017 ACM-ICPC 亚洲区(乌鲁木齐赛区)网络赛
- 2017 ACM-ICPC 亚洲区(乌鲁木齐赛区)网络赛
- 2017 ACM-ICPC 亚洲区(乌鲁木齐赛区)网络赛
- 2017 ACM-ICPC 亚洲区(乌鲁木齐赛区)网络赛
- 2017 ACM-ICPC 亚洲区(乌鲁木齐赛区)网络赛
- 如何在安卓上显示复杂动画
- H: Skiing
- 前端面试经
- Hibernate 基于List集合映射
- 浅析Javascript匿名函数与自执行函数
- 2017 ACM-ICPC 亚洲区(乌鲁木齐赛区)网络赛-H Skiing
- spring02依赖注入DI
- 字符串碎片问题,例如“aaabbaaac”是由下面碎片组成“aaa”,"bb","c",则计算所有碎片的平均长度
- web.xml
- Hibernate 基于map集合映射
- redis 基本类型
- 背包问题(0-1背包、完全背包、多重背包)详解
- 最大长方形(二)nsoj 258
- 2017ACM新疆区域赛网络赛A题和C题