题目描述

食品店里有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 ;
}

P2712 摄像头的更多相关文章

  1. 洛谷 P2712 摄像头

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

  2. 在DevExpress中使用CameraControl控件进行摄像头图像采集

    在我们以前的项目了,做摄像头的图片采集,我们一般还是需要做一个封装处理的,在较新版本的DevExpress控件里面,增加了一个CameraControl控件,可以直接调用摄像头显示的,因此也可以做头像 ...

  3. ubuntu-Linux系统读取USB摄像头数据(gspca)

    将摄像头图像保存为jpg格式.摄像头需要是gspca免驱的.uvc若用uvc格式的需要在图像中插入Huffman表.否则无法正常显示. 程序代码: #include <stdio.h> # ...

  4. ubuntu-Linux系统读取USB摄像头数据(uvc)

    这几天在做小车的过程中,需要用到图像采集.我想现在用的摄像头是UVC免驱的.根据国嵌的教程中有一个gspca摄像头的程序.我发现把gspca的采集程序用到uvc上时,在显示图像的时候提示没有huffm ...

  5. C# 使用AForge调用笔记本摄像头拍照

    vs2012  winform 连接摄像头设备,这里需要引入 代码: using AForge; using AForge.Controls; using AForge.Imaging; using ...

  6. Opencv摄像头实时人脸识别

    Introduction 网上存在很多人脸识别的文章,这篇文章是我的一个作业,重在通过摄像头实时采集人脸信息,进行人脸检测和人脸识别,并将识别结果显示在左上角. 利用 OpenCV 实现一个实时的人脸 ...

  7. Opencv VideoCapture实时捕捉摄像头信息

    #include "opencv2/highgui/highgui.hpp" #include <iostream> using namespace cv; using ...

  8. Unity打开摄像头占满全屏

    Unity打开摄像头占满全屏 AR项目需求,Unity打开摄像头作为背景渲染占满全屏~ Unity对设备硬件操作的API并不是太友好~打开一个摄像头,渲染到屏幕上也都得自己写,虽然步骤少,提取摄像头t ...

  9. Vuforia unity开发摄像头问题

    Vuforia unity开发摄像头问题 项目一直在赶进度,写博的时间越来越少了~从事Unity开发也快两个月了,AR方向~ 使用的是高通家的SDK Vuforia...从工程融合一直到对unity和 ...

随机推荐

  1. 自制简单的range(Vue)

    废话不多说先上成果图 实现思路 主要分界面与逻辑两大块 界面分为5个部分 左滑块长度 左内容位置 中间长度 右滑块长度 右内容位置 逻辑 touch3个事件 各滑块长度及位置计算 选中时变色 具体实现 ...

  2. MYSQL进阶学习笔记十二:MySQL 表分区!(视频序号:进阶_29,30)

    知识点十三:MySQL 表的分区(29) 一.什么要采用分区: 分区的定义: 当数据量过大的时候(通常是指百万级或千万级数据的时候),这时候需要将一张表划分几张表存储.一些查询可以得到极大的优化,这主 ...

  3. hdu 2112 HDU Today 解题报告

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2112 题目意思:又是求最短路的,不过结合埋字符串来考查. 受之前1004 Let the Balloo ...

  4. 计算机科学 —— 时间戳(timestamp)

    时间戳的一个重要属性即是:唯一性,以起到唯一标识的作用: 1. linux 命令行 $ date +%s 1506222745 2. Python 时间戳 内置 time 库 >> tim ...

  5. SPOJ:Lexicographically Smallest(并查集&排序)

    Taplu and Abhishar loved playing scrabble. One day they thought of inventing a new game using alphab ...

  6. [SoapUI] Jenkins 配置

    cd %WORKSPACE% cmd /c call "%SOAPUI_PRO_HOME%\bin\testrunner.bat" -a -j -PprojectPath=&quo ...

  7. servlet中的servletURL,servletURI和servletPath

    String    servletURL=request.getservletURL(); url:站点名+当前web应用名+(目录名)+页面名 String    servletURI=reques ...

  8. 201响应为什么进了AJAX error回调函数

    明明AJAX发送请求成功,但是后端返回的不是200,而是201,结果进了error的回调函数,想这种情况,只需要把“dataType:"json",改成dataType:" ...

  9. 一个C#文件传输模块,支持断点续传

    一个C#文件传输模块,支持断点续传 最近做一个程序需要传送文件,在网上找了好久也没找到好用的方案,于是自己写了一个,与大家分享,希望大家帮忙改进,拍砖欢迎-文件采取分块发送,每块单独校验,能够保证文件 ...

  10. 基于ANDROID平台,U3D对蓝牙手柄键值的获取

    对于ANDROID平台,物理蓝牙手柄已被封装,上层应用不可见,也就是说对于上层应用,不区分蓝牙手柄还是其它手柄: 完成蓝牙手柄和ANDROID手机的蓝牙连接后,即可以UNITY3D中获取其键值: 在U ...