【dfs】BZOJ1703-[Usaco2007 Mar]Ranking the Cows 奶牛排名
2024-08-27 03:20:14
【题目大意】
农夫约翰有N(1≤N≤1000)头奶牛,每一头奶牛都有一个确定的独一无二的正整数产奶率.约翰想要让这些奶牛按产奶率从高到低排序,约翰已经比较了M(1≤M≤10000)对奶牛的产奶率,但他发现,他还需要再做一张关于另外C对奶牛的产奶率比较,才能推断出所有奶牛的产奶率排序。请帮他确定C的最小值。
【思路】
对于M对关系,从产奶率高的往产奶率低的连一条有向边。对于每个节点i,它能抵达的节点的总数即是能比较得出的比它小的奶牛总数。
由于原本总共有N*(N-1)/2对关系,ans=N*(N-1)/2-Σ从该头奶牛能抵达的节点总数。
#include<bits/stdc++.h>
using namespace std;
const int MAXN=+;
int n,m,ans,tmp;
int vis[MAXN];
vector<int> E[MAXN]; void dfs(int u,int T)
{
for (int i=;i<E[u].size();i++)
{
int v=E[u][i];
if (vis[v]!=T)
{
tmp++;
vis[v]=T;
dfs(v,T);
}
}
} void init()
{
scanf("%d%d",&n,&m);
for (int i=;i<=m;i++)
{
int u,v;
scanf("%d%d",&u,&v);
E[u].push_back(v);
}
} void solve()
{
ans=;
memset(vis,,sizeof(vis));
for (int i=;i<=n;i++)
{
tmp=;
dfs(i,i);
ans+=tmp;
}
ans=(n-)*n/-ans;
printf("%d\n",ans);
} int main()
{
init();
solve();
return ;
}
最新文章
- 【开源】.Net Aop(静态织入)框架 BSF.Aop
- 使用python编写一个壁纸网站的简单爬虫
- js注入
- Linux学习笔记(11)软件包管理
- 【转载】主数据管理(MDM)与元数据管理
- bzoj 1877: [SDOI2009]晨跑
- hdu 1427 速算24点
- 让QT对话框显示中文
- 微软提供的虚拟磁盘API
- java项目开发第五天——奋力完成数据库
- mysql-connector-java 6.x 时区设置
- tf.variable和tf.get_Variable以及tf.name_scope和tf.variable_scope的区别
- GAN︱生成模型学习笔记(运行机制、NLP结合难点、应用案例、相关Paper)
- MacBook Pro 安装win7 64 成功安装过程总结
- win7 docker Toolbox 启动Docker Quickstart Terminal 失败!
- python3编写网络爬虫19-app爬取
- Contest2075 - 湖南多校对抗(csu1576)大数 Catalan Square
- 【PAT】B1069 微博转发抽奖(20 分)
- RLE Plots: relative log expression
- ios开发之--解决“Could not insert new outlet connection”的问题。
热门文章
- UVA 12307 Smallest Enclosing Rectangle
- 阿里云Linux服务器挂载数据盘
- C# 常用控件属性及方法介绍
- 【工具】用命令行与Python使用YARA规则
- nginx tomcat 自动部署python脚本【转】
- 用Python连接SQLServer抓取分析数据、监控 (pymssql)
- JavaScript中对象与函数的某些事[JavaScript语言精粹-N1]
- tomcat报错:java.net.SocketException: Permission denied[";http-nio-80";]
- 浅谈js设计模式 — 享元模式
- Java 基本语法---Java运算符