博客园 首页 私信博主 显示目录 隐藏目录 管理 动画

bzoj:1703: [Usaco2007 Mar]Ranking the Cows 奶牛排名

Description

    农夫约翰有N(1≤N≤1000)头奶牛,每一头奶牛都有一个确定的独一无二的正整数产奶率.约翰想要让这些奶牛按产奶率从高到低排序.    约翰已经比较了M(1≤M≤10000)对奶牛的产奶率,但他发现,他还需要再做一张关于另外C对奶牛的产奶率比较,才能推断出所有奶牛的产奶率排序.请帮他确定C的最小值.

Input

    第1行包含两个用空格分开的整数N和M.接下来M行,每行有两个用空格分开的整数X和Y(1≤X,y≤1000),表示奶牛X的产奶率高于奶牛Y.

Output

 
  C的最小值.

Sample Input

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

INPUT DETAILS:

FJ is comparing 5 cows and has already determined that cow 2 > cow
1, cow 1 > cow 5, cow 2 > cow 3, cow 1 > cow 4, and cow 3 > cow 4
(where the '>' notation means "produces milk more quickly").

Sample Output

3
 
答案为排名无序的点对个数……
然后就总点对-排名有序点对数咯。
复制代码
#include<bitset>
#include<cstdio>
#include<algorithm>
using namespace std;
int read_p,read_ca,read_f;
inline int read(){
    read_p=0;read_ca=getchar();read_f=1;
    while(read_ca<'0'||read_ca>'9') read_f=read_ca=='-'?-1:read_f,read_ca=getchar();
    while(read_ca>='0'&&read_ca<='9') read_p=read_p*10+read_ca-48,read_ca=getchar();
    return read_p*read_f;
}

int n,m,mmh,x,y;
bool bo[1000];
bitset <1000> b[1000];
void dfs(int x){
    if (bo[x]) return;bo[x]=1;
    for (int i=0;i<n;i++)
    if (b[x][i]) dfs(i),b[x]|=b[i];
}
int main(){
    register int i;
    n=read();m=read();mmh=(n*(n-1))>>1;
    for (i=1;i<=m;i++) x=read()-1,y=read()-1,b[x][y]=1;
    for (i=0;i<n;i++) dfs(i),mmh-=b[i].count();
    printf("%d\n",mmh);
}
948 kb 104 ms C++/Edit 796 B
复制代码

 

posted @   swm_sxt  阅读(493)  评论(0编辑  收藏  举报
编辑推荐:
· 智能桌面机器人:用.NET IoT库控制舵机并多方法播放表情
· Linux glibc自带哈希表的用例及性能测试
· 深入理解 Mybatis 分库分表执行原理
· 如何打造一个高并发系统?
· .NET Core GC压缩(compact_phase)底层原理浅谈
阅读排行:
· 手把手教你在本地部署DeepSeek R1,搭建web-ui ,建议收藏!
· 新年开篇:在本地部署DeepSeek大模型实现联网增强的AI应用
· Janus Pro:DeepSeek 开源革新,多模态 AI 的未来
· 互联网不景气了那就玩玩嵌入式吧,用纯.NET开发并制作一个智能桌面机器人(三):用.NET IoT库
· 【非技术】说说2024年我都干了些啥
历史上的今天:
2015-11-24 bzoj:1673 [Usaco2005 Dec]Scales 天平
2015-11-24 bzoj:1677 [Usaco2005 Jan]Sumsets 求和
2015-11-24 bzoj:1621 [Usaco2008 Open]Roads Around The Farm分岔路口
2015-11-24 bzoj:1692 [Usaco2007 Dec]队列变换&&1640 [Usaco2007 Nov]Best Cow Line 队列变换
点击右上角即可分享
微信分享提示