传送门

解题思路

  \(dag\)上\(dp\),首先要按照边权排序,然后图都不用建直接\(dp\)就行了。注意边权相等的要一起处理,具体来讲就是要开一个辅助数组\(g[i]\),来避免同层转移。

代码

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cstdlib> using namespace std;
const int MAXN = 300005; inline int rd(){
int x=0,f=1;char ch=getchar();
while(!isdigit(ch)) {f=ch=='-'?0:1;ch=getchar();}
while(isdigit(ch)) {x=(x<<1)+(x<<3)+ch-'0';ch=getchar();}
return f?x:-x;
} int n,m,f[MAXN],g[MAXN],stk[MAXN],top,ans;
bool vis[MAXN]; struct Edge{
int u,v,w;
friend bool operator<(const Edge A,const Edge B){
return A.w<B.w;
}
}edge[MAXN]; int main(){
n=rd(),m=rd();
for(int i=1;i<=m;i++)
edge[i].u=rd(),edge[i].v=rd(),edge[i].w=rd();
sort(edge+1,edge+1+m);
for(int i=1;i<=m;i++){
int x=edge[i].u,y=edge[i].v;
if(edge[i].w==edge[i-1].w) {
g[y]=max(g[y],f[x]+1);
if(!vis[y]) {vis[y]=1;stk[++top]=y;}
}
else {
while(top) {
vis[stk[top]]=0;
f[stk[top]]=g[stk[top]];
top--;
}
g[y]=max(g[y],f[x]+1);
vis[y]=1;stk[++top]=y;
}
}
while(top) {
vis[stk[top]]=0;
f[stk[top]]=g[stk[top]];
top--;
}
for(int i=1;i<=n;i++) ans=max(ans,f[i]);
printf("%d\n",ans);
return 0;
}

最新文章

  1. ASP.NET Core 中文文档 第一章 入门
  2. 【WIN10】绑定x:Bind
  3. Extjs中引入JSP页面
  4. Pyqt 中__init__(self,parent==None) parent理解
  5. js部分---表单验证;(含正则表达式)
  6. 通过js获取DropDownList的选中项
  7. 获利能力分析COPA的BAPI:BAPI_COPAACTUALS_POSTCOSTDATA 通过增强返回凭证号
  8. Java编写的文本编辑器(菜鸟作品)
  9. Server.Transfer方法,Server.Execute方法和Response.Redirect方法有什么异同
  10. photoSlider-html5原生js移动开发轮播图-相册滑动插件
  11. PDF数据防扩散系统方案
  12. linux下Clang和gcc的区别
  13. Javascript——浅谈 Event Flow
  14. ELK之filebeat、logstash多个topic配置
  15. 使用VSCode如何调试C#控制台程序_1
  16. [转]VirtualBox centos7扩容
  17. oracle_存储过程小记
  18. 【python】基础入门
  19. September 14th 2017 Week 37th Thursday
  20. BNUOJ 12756 Social Holidaying(二分匹配)

热门文章

  1. 2018-2-13-win10-uwp-iot
  2. 笔记46 Hibernate快速入门(三)
  3. C# Func和匿名方法 简单使用
  4. 【JZOJ6411】上网
  5. TTreeView、TTreeNodes和TTreeNode
  6. Django使用步骤
  7. weblux上传图片
  8. POJ2226-Muddy Fields-二分图*
  9. c++-字符串和时间操作
  10. plugin python was not installed: Cannot download &#39;&#39;