• [树直径] [POJ] CowMarathon


    时间复杂度超高

    #pragma GCC optimize(2)
    #include <cstdio>
    #include <iostream>
    #include <cstdlib>
    #include <cmath>
    #include <cctype>
    #include <string>
    #include <cstring>
    #include <algorithm>
    #include <stack>
    #include <queue>
    #include <set>
    #include <map>
    #include <ctime>
    #include <vector>
    #include <fstream>
    #include <list>
    #include <iomanip>
    #include <numeric>
    using namespace std;
    typedef long long ll;
     
    const int MAXN = 1e6 + 10;
     
    bool used[MAXN] = {0};
     
    vector < pair <int, int> > arr[MAXN];
     
    int lma, lmp, lb = 0, beg;
     
    void findpoint(int now, int step)
    {
        if(!used[now])
            used[now] = true;
        else
            return;   
        if(step > lma)
            lma = step, lmp = now;
        for(unsigned int i = 0; i < arr[now].size(); i++)
        {
            findpoint(arr[now][i].first, step + arr[now][i].second);
        }
    }
     
    void largeway(int now, int step)
    {
        if(!used[now])
            used[now] = true;
        else
            return ;
        if(step > lb)
            lb = step;
        for(unsigned int i = 0; i < arr[now].size(); i++)
        {
            largeway(arr[now][i].first, step + arr[now][i].second);
        }
    }
    
    void init(int x, int y, int z)
    {
        beg = x;
        arr[x].push_back(make_pair(y, z)), arr[y].push_back(make_pair(x, z));
    }
    
    int main()
    {
        ios::sync_with_stdio(false);
     
        cin.tie(0);     cout.tie(0);
     
        int N, M;
     
        cin>>M>>N;
     
        while(N--)
        {
            int x, y, z;
            char c;
            cin>>x>>y>>z>>c;
            init(x, y, z);
        }
    
        memset(used, 0, sizeof(used));
        
        lma = 0, lmp = beg;
        
        findpoint(beg, 0);
        
        memset(used, 0, sizeof(used));
        
        largeway(lmp, 0);
     
        cout<<lb<<endl;
     
        return 0;
    }
  • 相关阅读:
    jquery获取input的checked属性
    归并排序法
    Pascal's Triangle II —LeetCode
    01背包之求第K优解——Bone Collector II
    Intellij IDEA 14隐藏被排除的文件夹
    LeetCode——Majority Element
    多线程爬虫Java调用wget下载文件,独立线程读取输出缓冲区
    LeetCode——Restore IP Addresses
    LeetCode——Pascal's Triangle
    LeetCode——Permutations
  • 原文地址:https://www.cnblogs.com/zeolim/p/12270450.html
Copyright © 2020-2023  润新知