日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪(fǎng)問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

BZOJ 1612: [Usaco2008 Jan]Cow Contest奶牛的比赛【Floyd】

發(fā)布時(shí)間:2025/7/14 编程问答 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 BZOJ 1612: [Usaco2008 Jan]Cow Contest奶牛的比赛【Floyd】 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

1612: [Usaco2008 Jan]Cow Contest奶牛的比賽

Time Limit: 5 Sec Memory Limit: 64 MB

Description

FJ的N(1 <= N <= 100)頭奶牛們最近參加了場(chǎng)程序設(shè)計(jì)競(jìng)賽:)。在賽場(chǎng)上,奶牛們按1..N依次編號(hào)。每頭奶牛的編程能力不盡相同,并且沒(méi)有哪兩頭奶牛的水平不相上下,也就是說(shuō),奶牛們的編程能力有明確的排名。 整個(gè)比賽被分成了若干輪,每一輪是兩頭指定編號(hào)的奶牛的對(duì)決。如果編號(hào)為A的奶牛的編程能力強(qiáng)于編號(hào)為B的奶牛(1 <= A <= N; 1 <= B <= N; A != B) ,那么她們的對(duì)決中,編號(hào)為A的奶牛總是能勝出。 FJ想知道奶牛們編程能力的具體排名,于是他找來(lái)了奶牛們所有 M(1 <= M <= 4,500)輪比賽的結(jié)果,希望你能根據(jù)這些信息,推斷出盡可能多的奶牛的編程能力排名。比賽結(jié)果保證不會(huì)自相矛盾。

Input

  • 第1行: 2個(gè)用空格隔開(kāi)的整數(shù):N 和 M
  • 第2..M+1行: 每行為2個(gè)用空格隔開(kāi)的整數(shù)A、B,描述了參加某一輪比賽的奶 牛的編號(hào),以及結(jié)果(編號(hào)為A,即為每行的第一個(gè)數(shù)的奶牛為 勝者)

Output

  • 第1行: 輸出1個(gè)整數(shù),表示排名可以確定的奶牛的數(shù)目

Sample Input

5 5
4 3
4 2
3 2
1 2
2 5

Sample Output

2
輸出說(shuō)明:
編號(hào)為2的奶牛輸給了編號(hào)為1、3、4的奶牛,也就是說(shuō)她的水平比這3頭奶牛都差。而編號(hào)為5的奶牛又輸在了她的手下,也就是說(shuō),她的水平比編號(hào)為5的奶牛強(qiáng)一些。于是,編號(hào)為2的奶牛的排名必然為第4,編號(hào)為5的奶牛的水平必然最差。其他3頭奶牛的排名仍無(wú)法確定。

題解

我們要確定一個(gè)人的排名,那么就需要知道他贏誰(shuí)或輸給誰(shuí),只有全部知道是才可以確定,如果有兩個(gè)人不確輸贏定,那么就不能確定排名。
所以我們可以Floyd一下,知道i與j的輸贏關(guān)系,最后如果i能贏j,那么j一定輸給i,如果出現(xiàn)矛盾,那么就不能確定排名。

代碼如下

#include<cstdio> #include<algorithm> using namespace std; int n,m,Ans,tl=0,hd=0,f[105],dst[105][105]; int main(){#ifndef ONLINE_JUDGEfreopen("prob.in","r",stdin);freopen("prob.out","w",stdout);#endifscanf("%d%d",&n,&m);for(int i=1;i<=m;i++){int x,y;scanf("%d%d",&x,&y);dst[x][y]=1;}for(int k=1;k<=n;k++)for(int i=1;i<=n;i++)for(int j=1;j<=n;j++)if(i^j&&j^k&&k^i) dst[i][j]|=dst[i][k]&&dst[k][j];for(int i=1;i<=n;i++){bool t=1;for(int j=1;j<=n;j++)if(i^j&&dst[i][j]==dst[j][i]){t=0;break;}Ans+=t;}printf("%d\n",Ans);return 0; }

轉(zhuǎn)載于:https://www.cnblogs.com/XSamsara/p/9043185.html

總結(jié)

以上是生活随笔為你收集整理的BZOJ 1612: [Usaco2008 Jan]Cow Contest奶牛的比赛【Floyd】的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。