BZOJ 4562 食物链
我们需要拓扑一下。
#include<iostream>
#include<cstring>
#include<cstdio>
#include<algorithm>
#include<queue>
#define maxv 100500
#define maxe 200500
using namespace std;
int n,m,x,y,g[maxv],nume=,d[maxv],size[maxv],ans=;
queue <int> q;
bool flag[maxv];
struct pnt
{
int id,rank;
}p[maxv];
struct edge
{
int v,nxt;
}e[maxe];
bool cmp(pnt x,pnt y){return x.rank<y.rank;}
void addedge(int u,int v)
{
e[++nume].v=v;
e[nume].nxt=g[u];
g[u]=nume;
}
void topusort()
{
for (int i=;i<=n;i++)
{
if (!d[i])
{
p[i].rank=;
q.push(i);
}
}
while (!q.empty())
{
int head=q.front();q.pop();
for (int i=g[head];i;i=e[i].nxt)
{
int v=e[i].v;
if (!--d[v])
{
p[v].rank=p[head].rank+;
q.push(v);
}
}
}
}
int main()
{
scanf("%d%d",&n,&m);
for (int i=;i<=m;i++)
{
scanf("%d%d",&x,&y);
addedge(x,y);d[y]++;
}
for (int i=;i<=n;i++) p[i].id=i;
topusort();
sort(p+,p+n+,cmp);
for (int i=n;i>=;i--)
{
int x=p[i].id;
for (int j=g[x];j;j=e[j].nxt)
{
int v=e[j].v;
flag[x]=true;size[x]+=size[v];
}
if (!flag[x]) size[x]=;
}
for (int i=;i<=n;i++)
{
if ((p[i].rank==) && (flag[p[i].id])) ans+=size[p[i].id];
else if (p[i].rank!=) break;
}
printf("%d\n",ans);
return ;
}
BZOJ 4562 食物链的更多相关文章
- bzoj 4562 [Haoi2016]食物链
4562: [Haoi2016]食物链 Time Limit: 10 Sec Memory Limit: 128 MB Description 如图所示为某生态系统的食物网示意图,据图回答第1小题 ...
- 洛谷 P3183 BZOJ 4562 [HAOI2016]食物链
题目描述 如图所示为某生态系统的食物网示意图,据图回答第1小题现在给你n个物种和m条能量流动关系,求其中的食物链条数.物种的名称为从1到n编号M条能量流动关系形如a1 b1a2 b2a3 b3.... ...
- BZOJ 4562: [Haoi2016]食物链(拓扑排序)
题面: https://www.lydsy.com/JudgeOnline/problem.php?id=4562 一句话题意:给一个DAG,求有多少条不完全相同的链,使链首入度为0,链尾出度为0. ...
- BZOJ 4562: [Haoi2016]食物链 拓扑排序
建反图,跑一个拓扑排序dp即可. Code: #include <bits/stdc++.h> #define ll long long #define N 100005 #define ...
- BZOJ 4562 搜索...
思路: 统计入度&出度 每搜到一个点 in[v[i]]--,f[v[i]]+=f[t]; if(!in[v[i]])if(out[v[i]])q.push(v[i]);else ans+=f[ ...
- 8.6培训 D1
今天是赵和旭老师讲课(也是 zhx) 动态规划 利用最优化原理把多阶段过程转化为一系列单阶段问题,利用各阶段之间的关系,逐个求解(有点像分治?) 更具体的,假设我们可以计算出小问题的最优解,那么我们凭 ...
- 【BZOJ-4562】食物链 记忆化搜索(拓扑序 + DP)
4562: [Haoi2016]食物链 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 133 Solved: 112[Submit][Status] ...
- bzoj AC倒序
Search GO 说明:输入题号直接进入相应题目,如需搜索含数字的题目,请在关键词前加单引号 Problem ID Title Source AC Submit Y 1000 A+B Problem ...
- 【poj 1182】食物链(图论--带权并查集)
题意:有3种动物A.B.C,形成一个"A吃B, B吃C,C吃A "的食物链.有一个人对N只这3类的动物有M种说法:第一种说法是"1 X Y",表示X和Y是同类. ...
随机推荐
- 在VBA中调用工作表函数
虽然VBA几乎可以完成所有工作表函数的功能,但是有时候在无法打开思路的时候,适当调用一些工作表函数也未尝不可,在VBA中调用工作表函数需要用到 WorksheetFunction对象,例如: Work ...
- [saiku] JCR在saiku中的运用原理
转载自: 什么是JAVA内容仓库(Java Content Repository)(1) 什么是JAVA内容仓库(Java Content Repository)(2) 什么是JAVA内容仓库(Jav ...
- Ubuntu配置LAMP+MediaWiki及常见问题
/*在实验室觉得文档传来传去太麻烦了,干脆在实验室内部搞个wiki算了,于是网上搜集搜集资料,配了一个,由于时间仓促,mediaWiki比较高级的东西没来的及细看,等以后用的时候再完善吧*/ 环境:U ...
- jquery和js使用技巧
1. 如何得知图片已加载完毕 这也一个没有很好文档说明的问题(至少在我查找时没看到),但是在创建照片库.旋转灯笼效果等方面,它是相当常见的需求.而这在jQuery中很容易实现. 所有你要做的就是在IM ...
- python中2进制、10进制、16进制等之间的转换
10转2: bin(8) # '0b1000' 2转10: int( 10转16: hex(15) # '0xf' 16转10: int( 2进制和16进制中间通过转10进制可以相互转换 from b ...
- hdu----(1257)最少拦截系统(dp/LIS)
最少拦截系统 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Subm ...
- App crash 报错 'NSUnknownKeyException'
报错: *** Terminating app due to uncaught exception , reason: '[<NSObject 0x6e36ae0> setValue:fo ...
- iOS项目的目录结构和开发流程
转自无网不剩的博客 网上相关的资源不多,开源的且质量还不错的iOS项目也是少之又少,最近正好跟同事合作了一个iOS项目,来说说自己的一些想法. 目录结构 AppDelegate Models Ma ...
- springMvc配置编码过滤器
在web.xml中配置 <!-- 编码过滤器 --> <filter> <filter-name>characterEncodingFilter</filte ...
- [转载]ME51n,ME52n,ME53n屏幕增强
原文地址:ME51n,ME52n,ME53n屏幕增强作者:cyzhang811 http://blog.sina.com.cn/s/blog_721b218c0100zch9.html 使用增强:ME ...