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

竞赛图

时间:2020-02-27 16:21:32      阅读:57      评论:0      收藏:0      [点我收藏+]

标签:math   info   通过   ESS   etc   can   竞赛   强连通   rev   

竞赛图是通过在无向完整图中为每个边缘分配方向而获得的有向图。

转自:https://www.cnblogs.com/acha/p/9042984.html

定理 1

竞赛图强连通缩点后的DAG呈链状, 前面的所有点向后面的所有点连边

技术图片

定理 2

竞赛图的强连通块 存在一条哈密顿回路


技术图片

定理 3

竞赛图存在一条 哈密顿路径

证明 : 如图示方法构造
技术图片

引理

竞赛图里, 大小为 n>1n>1 的强连通块中, 大小为 [3,n][3,n] 的简单环均存在

技术图片

定理4

竞赛图判定定理 Landau‘s Theorem:
sisi为第ii个点的出度 (竞赛中获胜的积分)
ss排好序后, 若满足 ki=1si(k2)s=(n2)∑i=1ksi≥(k2)且∑s=(n2) , 定能构造出一种竞赛图, 反之不能

 

UCF Local Contest 2015

I Longest path

题意:给出一个??(?? ≤ 500)个点的有向图,任意两个点之间有且仅一条有向边。 求一条不重复经过一个点的最长的简单路径。

#include<bits/stdc++.h>
using namespace std;
#define ll long long
const ll mod=1e9+7;
const int inf=0x3f3f3f3f;
const int maxn=1e5+7;
list<int> List;
int Matrix[505][505];
int main(){
    int t;
    scanf("%d",&t);
    while(t--){
        int N;
        List.clear();
        for(int i=1;i<=N;++i)
            for(int j=1;j<=N;++j)
                scanf("%d",&Matrix[i][j]);
        List.push_back(1);
        for(int i=2;i<=N;++i){
            int CountIn=0,CountOut=0;
            for(auto it:List){
                if(Matrix[i][it]) ++CountOut;
                else ++CountIn;
            }
            if(CountOut==i-1) List.push_front(i);//加入列头 
            else if(CountIn==i-1) List.push_back(i);//加入列尾 
            else{//找到(u,v)(v,w) 
                auto it=List.begin();
                for(;it!=List.end();++it){
                    auto Next=it;++Next;
                    if(Next==List.end()) break;
                    if(Matrix[*it][i] && Matrix[i][*Next]) break;
                }
                List.insert(++it,i);
            }
        }
        int Count=0;
        for(auto it:List){
            ++Count;
            printf("%d",it);
            if(Count<N) printf(" ");
        }
        printf("\n");
    }
    return 0;
}

 

竞赛图

标签:math   info   通过   ESS   etc   can   竞赛   强连通   rev   

原文地址:https://www.cnblogs.com/amitherblogs/p/12372394.html

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