码迷,mamicode.com
首页 > 其他好文 > 详细

cf 459E

时间:2014-08-17 16:48:12      阅读:183      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   color   os   io   for   ar   

cf459E 这题说的是 给定一个n点m条边的带边权的有向图,从中找出一条路径(可以带环),该路径包含的边数最多,并且要求路径中的权值必须严格递增,然后对边进行排序完个后采用dp去解特殊判断一下边权值相等的时候就ok了

bubuko.com,布布扣
#include <iostream>
#include <string.h>
#include <cstdio>
#include <algorithm>
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
using namespace std;
const int maxn = 100005*3;
struct edg{
    int a,b,w;
    bool operator <(const edg A)const {
       return w<A.w||( w == A.w &&a<A.a );
    }
    void read(int &a1,int &b1, int &w1 ){
         a1 = a;
         b1=  b;
         w1=w;
    }
}E[maxn];
__int64 dp[2][maxn];
int ma[2][maxn];
int main(int argc, char *argv[]) {
    int n,m;
    while(scanf("%d%d",&n,&m)==2){
              for(int i =0 ; i< m; ++i)
              scanf("%d%d%d",&E[i].a,&E[i].b,&E[i].w);
              sort(E,E+m);
              memset(dp,0,sizeof(dp));
              memset(ma,0,sizeof(ma));
            __int64 ans=0;
            for(int i =0; i< m; ++i){
                int a,b,w; 
                E[i].read(a,b,w);
                if(w > ma[1][a] && dp[1][b] < dp[1][a]+1 ){
                   if(ma[1][b] != w){
                       ma[0][b] = ma[1][b];
                       dp[0][b] = dp[1][b];    
                   }
                   dp[1][b]=dp[1][a]+1;
                   ma[1][b]=w;
                } else if(w>ma[0][a]&&dp[1][b]<dp[0][a] +1){
                     if(ma[1][b] != w){
                       ma[0][b] = ma[1][b];
                       dp[0][b] = dp[1][b];    
                     }
                     dp[1][b]=dp[0][a]+1;
                     ma[1][b]=w;
                } 
                ans = ans> dp[1][b]? ans : dp[1][b];
            }    
               printf("%I64d\n",ans);
    }
    return 0;
}
View Code

de 

cf 459E,布布扣,bubuko.com

cf 459E

标签:style   blog   http   color   os   io   for   ar   

原文地址:http://www.cnblogs.com/Opaser/p/3917839.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!