题目描述

食品店里有n个摄像头,这种摄像头很笨拙,只能拍摄到固定位置。现有一群胆大妄为的松鼠想要抢劫食品店,为了不让摄像头拍下他们犯罪的证据,他们抢劫前的第一件事就是砸毁这些摄像头。

为了便于砸毁摄像头,松鼠歹徒们把所有摄像头和摄像头能监视到的地方统一编号,一个摄像头能被砸毁的条件是该摄像头所在位置不被其他摄像头监视。

现在你的任务是帮松鼠们计算是否可以砸掉所有摄像头,如不能则输出还没砸掉的摄像头的数量。

输入输出格式

输入格式:

第1行,一个整数n,表示摄像头的个数。

第2到n+1行是摄像头的信息,包括:摄像头的位置x,以及这个摄像头可以监视到的位置数m,之后m个数y是此摄像头可以监视到的位置。(砸了这些摄像头之后自然这些位置就监视不到了)

输出格式:

若可以砸掉所有摄像头则输出“YES”,否则输出还没砸掉的摄像头的数量。

输入输出样例

输入样例#1:

5
1 1 2
2 1 1
3 1 7
4 1 1
5 0
输出样例#1:

2

神坑题啊,,,,

一没数据数据范围,二题目描述不清楚

“第2到n+1行是摄像头的信息,包括:摄像头的位置x”

这句话的意思就是和你说

一开始遍历的时候只需要遍历到n

查找答案的时候需要查找摄像头的位置

还有就是map其实可以省去。。。。

 #include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<queue>
#include<map>
using namespace std;
map<int,int>mp;
const int MAXN=;
struct node
{
int u;
int v;
int next;
}edge[MAXN];
int head[MAXN];
int num=;
int rudu[MAXN];
int n;
void add(int where,int will)
{
edge[num].u=where;
edge[num].v=will;
edge[num].next=head[where];
head[where]=num++;
}
void topsort()
{
queue<int>q;
for(int i=;i<=n;i++)
if(rudu[i]==)
q.push(i);
while(q.size()!=)
{
int p=q.front();
q.pop();
for(int i=head[p];i!=-;i=edge[i].next)
{
if(edge[i].u==&&edge[i].v==)break;
int to=edge[i].v;
rudu[to]--;
if(rudu[to]==)
q.push(to);
}
}
int ans=;
for(int i=;i<=n;i++)
if(rudu[mp[i]]!=)
ans++;
if(ans==)
printf("YES");
else
printf("%d",ans);
}
int main()
{
scanf("%d",&n);
for(int i=;i<=n;i++)head[i]=-;
for(int i=;i<=n;i++)
{
int where,m,will;
scanf("%d%d",&where,&m);
mp[i]=where;
for(int j=;j<=m;j++)
{
scanf("%d",&will);
rudu[will]++;
add(mp[i],will);
}
}
topsort();
return ;
}

最新文章

  1. SpringBoot-Learning
  2. HDU 1198(并查集)
  3. bootstrap小例子等
  4. PX(计算机语言中的像素)
  5. 给jdk写注释系列之jdk1.6容器(11)-Queue之ArrayDeque源码解析
  6. Android布局中的空格以及占一个汉字宽度的空格的实现
  7. secureCRT使用小贴士
  8. 复合命令A等效于$a
  9. Linux内存管理(一)
  10. LINUX sed grep awk之间比较整理
  11. AI制作icon标准参考线与多面板复制
  12. SD-WAN助力解决多云问题
  13. SharePoint 2013 APP 开发示例 (四)JQuery访问REST
  14. mongodb系列~mongodb数据迁移
  15. python对象序列化pickle
  16. openvSwitch tunnel
  17. iOS进阶学习笔记
  18. linux快速复制大量小文件方法 nc+tar【转】
  19. ASP.NET 构建高性能网站 第6篇
  20. vi重要操作指令

热门文章

  1. Hadoop 文件压缩
  2. Oracle:ORA-01790: expression must have same datatype as corresponding expression
  3. erlang的base64解码问题
  4. 官网下载java相关资源
  5. BZOJ_3063_[Usaco2013]Route Designing_DP
  6. liunx下的权限详解
  7. 利用PyCharm的Profile工具进行Python性能分析
  8. label标签的可访问性
  9. CS231n 2016 通关 第二章-KNN
  10. MyEclipse10.0的破解过程详细图解