05:Cave Cows 1 ?????????????????????

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了05:Cave Cows 1 ?????????????????????相关的知识,希望对你有一定的参考价值。

?????????char   turn   ??????   ??????   getc   ++   tin   ams   algorithm   

???????????????: 
10000ms
 
???????????????????????????: 
1000ms
 
????????????: 
262144kB
??????
??????????????????????????????????????????????????????????????????
    ????????????N(1≤N≤100)???????????????M(1≤M≤1000)????????????????????????????????????????????????
????????????????????????????????????K(1≤K≤14)????????????????????????1??????????????????1????????????????????????????????????1???
    ????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????1????????????????????????0????????????????????????????????????????????????1???    ??????????????????????????????????????????????????????????????????????????????????????????????????????????????????

 

??????
???1?????????N???M???K,??????K???????????????????????????????????????????????????????????????????????????M?????????????????????????????????????????????????????????????????????????????????
??????
??????????????????????????????
????????????
6 7 5
1
2
3
4
5
1 2 3
3 6 2
6 2 10
2 4 1
5 1 1
4 5 1
1 6 1
????????????
4
??????
USACO 2004 Open Orange
???????????????????????????????????????????????????????????????????????????
?????????????????????
1???????????????????????????????????????
2.???????????????>
 1 #include<iostream>
 2 #include<cstdio>
 3 #include<cstring>
 4 #include<algorithm>
 5 #include<queue>
 6 using namespace std;
 7 const int MAXN=4001;
 8 const int maxn=0x3f;
 9 void read(int &n)
10 {
11     char c=???+???;int x=0;bool flag=0;
12     while(c<???0???||c>???9???){c=getchar();if(c==???-???)flag=1;}
13     while(c>=???0???&&c<=???9???)
14     x=(x<<1)+(x<<3)+c-48,c=getchar();
15     flag==1?n=-x:n=x;
16 }
17 int n,m,k;
18 struct node
19 {
20     int have;
21     int need;
22     int pos;
23 }a[MAXN];
24 int map[MAXN][MAXN];
25 int dis[MAXN][MAXN];
26 int comp(const node &a,const node &b)
27 {
28     if(a.have==b.have)
29         return a.need<b.need;
30     else
31         return a.have>b.have;
32 }
33 int main()
34 {
35     read(n);read(m);read(k);
36     int num=k;
37     for(int i=1;i<=k;i++)
38     {
39         int p;
40         read(p);
41         a[p].have=1;
42         a[i].pos=i;
43     }
44     memset(map,maxn,sizeof(map));
45     for(int i=1;i<=m;i++)
46     {
47         int x,y,z;
48         read(x);read(y);read(z);
49         map[x][y]=z;
50         map[y][x]=z;
51     }
52     
53     for(int i=1;i<=n;i++)
54         map[i][i]=0;
55     
56     for(int k=1;k<=n;k++)
57         for(int i=1;i<=n;i++)
58             for(int j=1;j<=n;j++)
59                 if(map[i][j]<maxn)
60                     map[i][j]=max(map[i][j],min(map[i][k],map[k][j]));
61                 else 
62                     map[i][j]=min(map[i][k],map[k][j]);
63     
64     for(int i=1;i<=n;i++)
65         if(a[i].have)
66             a[i].need=map[1][i];
67     
68     
69     sort(a+1,a+n+1,comp);
70     
71     int now=0;
72     int flag=0;
73     for(int i=1;i<=num;i++)
74     {
75     //    if(a[i].have==0)break;
76         if(a[i].have&&a[i].pos==1)
77         {
78             flag=1;
79             continue;
80         }
81         if(a[i].need>now)
82             now++;
83     
84     }
85     if(flag==1)
86         now++;
87     printf("%d",now);
88     return 0;
89 } 

 

以上是关于05:Cave Cows 1 ?????????????????????的主要内容,如果未能解决你的问题,请参考以下文章

POJ2186 Popular Cows

poj_3275 Ranking the cows

Popular Cows POJ - 2186(强连通分量)

Usaco 1.2.1 Milking Cows

Popular Cows//强连通分支Kosaraju加缩点

Popular Cows