题目链接:http://acm.timus.ru/problem.aspx?space=1&num=2013

题目理解:

给定n个点的有向图:

下面n行,第一个数字表示点权,后面一个数字m表示有m条边。

起点是1.

对于每个点,输出2个值表示前驱点权1和该点点权2。

1、就是若有多条路径且全为“同一个值”输出“同一个值”,否则输出unknown;

  若有一条路径若前驱节点的权值>0,输出前驱结点的权值,否则输出sober;

2、否则若该点点权>0输出该点点权,否则输出前驱点权值(若有多条路径且全为“同一个值”输出“同一个值”,否则输出unknown;

  若有一条路径若前驱节点的权值>0,输出前驱结点的权值,否则输出sober)

AC代码+详解

 /* */
# include <iostream>
# include <stdio.h>
# include <string.h>
# include <algorithm>
# include <bitset>
# include <ctime>
# include <cmath>
# include <list>
# include <cctype>
# include <cassert>
# include <iomanip>
# include <deque>
# include <queue>
# include <stack>
# include <set>
# include <map>
# include <vector>
using namespace std; const int inf=0x3f3f3f3f;
const int maxn=2e5+;
int a[maxn];
int zt[maxn];
vector<int>ve[maxn]; void dfs(int x, int y)///x此结点,y前驱结点的权值
{
if( zt[x]==- )///有两个前驱,(既然已经判断出有两个前驱,且此路之前来过,就没必要再往下遍历了)
return ; if( !zt[x] )///还没有访问过
zt[x] = y;///记录其前驱节点的权值
else///已经访问过之后又来访问说明有两个前驱结点了,标记一下
zt[x] = -; if( a[x] )///此结点的权值不为0
y=a[x]; for( auto it:ve[x] )
{
if( zt[it]!=y )///之前的前驱结点的值不为现在前驱结点的值,
///若zt[it]原来为0,说明没有遍历过
///若zt[it]原来为-1,或者是一个正整数
///但之前前驱结点的值与此时前驱节点的值不一样
///那么就再进行一次遍历
///至于具体是什么情况,for有前面的判断决定
{
dfs(it, y);
}
} } int main()
{
memset(zt, , sizeof(zt));
int n;
cin>>n;
for(int i=; i<=n; i++ )
{
cin>>a[i];
int x;
cin>>x;
for(int j=; j<=x; j++ )
{
int y;
cin>>y;
ve[i].push_back(y);
}
}
dfs(, -); for(int i=; i<=n; i++ )
{
if( zt[i]==- )
cout<<"sober "; else if( zt[i]==- )
cout<<"unknown "; else
cout<<zt[i]<<' '; if( a[i]> )
cout<<a[i]<<endl; else
{
if( zt[i]==- )
cout<<"sober"<<endl; else if( zt[i]==- )
cout<<"unknown"<<endl; else
cout<<zt[i]<<endl;
}
}
return ;
}

Neither shaken nor stirred(DFS理解+vector存图)的更多相关文章

  1. POJ 1655.Balancing Act-树的重心(DFS) 模板(vector存图)

    Balancing Act Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 17497   Accepted: 7398 De ...

  2. Codeforce-1106-D. Lunar New Year and a Wander(DFS遍历+vector存图+set)

    Lunar New Year is approaching, and Bob decides to take a wander in a nearby park. The park can be re ...

  3. B - Cow Marathon DFS+vector存图

    After hearing about the epidemic of obesity in the USA, Farmer John wants his cows to get more exerc ...

  4. 【模板】Vector存图 + SPFA

    最近愉快地决定要由边集数组转向Vector存图,顺便开始图论集训 老惯例,以题写模板 P1339 [USACO09OCT]热浪Heat Wave 题目描述 The good folks in Texa ...

  5. POJ 1985.Cow Marathon-树的直径-树的直径模板(BFS、DFS(vector存图)、DFS(前向星存图))

    Cow Marathon Time Limit: 2000MS   Memory Limit: 30000K Total Submissions: 7536   Accepted: 3559 Case ...

  6. How far away(DFS+vector存图)

    There are n houses in the village and some bidirectional roads connecting them. Every day peole alwa ...

  7. 存图方式---邻接表&邻接矩阵&前向星

    基于vector存图 struct Edge { int u, v, w; Edge(){} Edge(int u, int v, int w):u(u), v(v), w(w){} }; vecto ...

  8. Safe Path(bfs+一维数组存图)

    题目链接:http://codeforces.com/gym/101755/problem/H 题目分析:先bfs一遍怪兽可以到达的点,再bfs人可以走的地方看可不可以到达终点: 很显然读到  2&l ...

  9. 图论算法(一)存图与STL第六弹——vector容器

    图论算法(一)存图 我发现我的博客阅读量贼低,问小伙伴们,ta们都说这些博客太长了QAQ! 今天来个短亿点的(也短不了多少……) 进入正题,图论究竟是什么? 图论就是给你一张图,让你在这张图上进行各种 ...

随机推荐

  1. 关于梯度下降之前需要进行feature scale的记录

    先上吴恩达老师的课件图 1.对于梯度下降而言,学习率很大程度上影响了模型收敛的速度.对于不同规模的特征,如果采用相同的学习率,那么如果学习率适应于scale大的数据,scale较小的数据由于学习率过大 ...

  2. js调用浏览器复制

    <script type="text/javascript"> function copyUrl2() { var Url2=document.getElementBy ...

  3. HTTPDNS

    传统 DNS 缺点 1.域名缓存问题     它可以在本地做一个缓存,也就是说,不是每一个请求,它都会去访问权威 DNS 服务器,而是访问过一次就把结果缓存到自己本地,当其他人来问的时候,直接就返回这 ...

  4. 【开发笔记】- Linux命令大全

    系统信息  arch 显示机器的处理器架构(1) uname -m 显示机器的处理器架构(2) uname -r 显示正在使用的内核版本 dmidecode -q 显示硬件系统部件 - (SMBIOS ...

  5. pillow安装出错的解决办法

    apt-get install python3-dev python3-setuptools libtiff5-dev zlib1g-dev libfreetype6-dev liblcms2-dev ...

  6. 广联达C++面经(一站式西安) - 2019秋招

    9月7号通知在广联达西安面试,早上在高新面完中兴一面就赶忙坐地铁倒公交去面试了.  一面(大概30-40min) 刚去签了一个到,就带我去面试了,在一个小型会议室,面试我的是一个女面试官(第一次碰见女 ...

  7. ThreadLocal源码及相关问题分析

    前言 在高并发的环境下,当我们使用一个公共的变量时如果不加锁会出现并发问题,例如SimpleDateFormat,但是加锁的话会影响性能,对于这种情况我们可以使用ThreadLocal.ThreadL ...

  8. 挂载nfs提示:mount.nfs: access denied by server while mounting...

    出现此类错误原因大致为: 权限问题 防火墙机制问题 共享配置文件问题 搭建好nfs服务后,在client端进行挂载时,提示: [root@web1 media]# mount -t nfs 192.1 ...

  9. MySQL Index--关联条件列索引缺失导致执行计划性能不佳

    某系统反馈慢SQL影响生产,查看SLOW LOG发现下面慢SQL: SELECT COUNT(DISTINCT m.batch_no) FROM ob_relation r INNER JOIN ob ...

  10. win下如何生成 github ssh公钥 GIT

    1. 安装git,可以去官网下最新的,但由于局域网问题,我们百度git即可,一般版本也比较新: 2. 一路默认下一步,安装成功后,从程序目录打开 "Git Bash": 3. 输入 ...