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

多校第八场:图论出度

时间:2014-08-15 22:34:29      阅读:283      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   os   io   for   ar   amp   

HDU 4948

这题比赛的时候遗憾了,我看了这道题,然后觉得挺简单的。

刚开始一看题上,想到的就是拓扑排序,然后脑子想啊想……感觉就是拓扑排序的逆序,然后发现挺水的……

因为说了要想发展某个城市的话,就必须有另一个城市作为它发展的前提,即城市u->w这样连边,表示要想发展城市w,前提是u已经是发展过的城市了。那这样的话不是很简单嘛。

即统计出出度最多的就是第一个要发展的城市了,因为u->w这样连边可以看出算出出度最多的依次从大到小排序就行了。

哎呀,不过可惜了,因为看见没人交这题,然后也不敢把自己想的告诉队友,然后自己也没敲……然后错过进第一版的机会了bubuko.com,布布扣真是被第一梯队的带错路被坑了……

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<map>
#include<queue>
#include<set>
#include<cmath>
#include<bitset>
#define mem(a,b) memset(a,b,sizeof(a))
#define lson i<<1,l,mid
#define rson i<<1|1,mid+1,r
#define llson j<<1,l,mid
#define rrson j<<1|1,mid+1,r
#define INF 0x7fffffff
#define maxn 11010
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
char s[500][505];
struct abc
{
    int i,out;
    bool operator<(const abc &a)const
    {
        return out>a.out;
    }
}a[501];
int main()
{
    //freopen("1.txt","r",stdin);
    int n,i,j;
    while(scanf("%d",&n)&&n)
    {
        for(i=0;i<n;i++)
            scanf("%s",s[i]),a[i].i=i,a[i].out=0;
        for(i=0;i<n;i++)
            for(j=0;j<n;j++)
                if(s[i][j]=='1')
                    a[i].out++;
        sort(a,a+n);
        printf("%d",a[0].i+1);
        for(i=1;i<n;i++)
            printf(" %d",a[i].i+1);
        puts("");
    }
    return 0;
}


多校第八场:图论出度,布布扣,bubuko.com

多校第八场:图论出度

标签:style   blog   http   os   io   for   ar   amp   

原文地址:http://blog.csdn.net/u011466175/article/details/38591333

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