描述

我们正在设计这样的一款儿童探险游戏:游戏由很多故事场景组成,每个场景中都有一个问题,游戏根据玩家的回答将进入下一场景,经过巧妙的设计,我们保证在一次“探险旅行”中,不会重复的进入任何相同的场景,因此最终探险故事将根据玩家的选择结束在某个场景中。玩家总希望能够让自己的探险之旅尽可能的长,给定故事情节布局,请判断最长能够到达多少个场景?
我们对故事的m个场景进行编号(1~m),并且每次都是从编号为1开始探险之旅。

输入

输入数据有多组,每组数据的第一行位一个正整数n,表示数据的组数。
每组数据的第一行为一个正整数m(1<m<1000),表示故事场景的总数,接下来有m行,第i行描述了第i个场景的信息,包括3种情况:
(1)如果该行包含1个正整数j,则表示由第i个故事场景只能到达第j个场景;
(2)如果该行包含2个正整数j和k,则表示由第i个故事场景可以到达第j或者k个场景;
(3)如果该行包含1个字符串“ENDING”,表示故事在第i个场景结束;

输出

每组数据输出格式如下:

Case #x: y

x为测试数据编号,从1开始计算,y为一个整数,表示最多能经过的场景数量。

样例输入

2
3
2 3
ENDING
ENDING
5
4 5
ENDING
2
3
4

样例输出

Case #1: 2
Case #2: 5

题意

给你一个有向无环图,求每个点只能经过一次最长路

题解

因为是有向无环图,所以可以每条边权值设为-1,跑一遍dij

代码

 #include<bits/stdc++.h>
using namespace std; const int maxn=;
int T,sum,n,o=,d[maxn];
vector< vector<int> >G(maxn);
int dij()
{
memset(d,,sizeof d);
queue<int>q;
q.push();
while(!q.empty())
{
int u=q.front();q.pop();
for(auto v:G[u])
{
if(d[v]>d[u]-)
{
d[v]=d[u]-;
q.push(v);
}
}
}
return *min_element(d+,d++n)*-1+1;
}
int main()
{
string s;
cin>>T;
while(T--)
{
cin>>n;
cin.get();
for(int i=;i<=n;i++)
{
G[i].clear();
getline(cin,s);
if(s[]=='E')continue;
stringstream ss(s);
while(ss>>sum)G[i].push_back(sum);
}
printf("Case #%d: %d\n",o++,dij());
}
return ;
}

TZOJ 3659 神奇的探险之旅(有向无环每个点只能经过一次最长路dij)的更多相关文章

  1. 从一段 Dubbo 源码到 CPU 分支预测的一次探险之旅

    每个时代,都不会亏待会学习的人. 大家好,我是 yes. 这次本来是打算写一篇 RocketMQ 相关文章的,但是被插队了,我也是没想到的. 说来也是巧最近在看 Dubbo 源码,然后发现了一处很奇怪 ...

  2. OAuth 2.0 的探险之旅

    前言 OAuth 2.0 全称是 Open Authorization 2.0, 是用于授权(authorization)的行业标准协议. OAuth 2.0 专注于客户端开发人员的简单性,同时为 W ...

  3. 【我的Android进阶之旅】Android Studio查看Logcat时,如果一行Log太长如何换行显示?

    使用Android Studio一段时间了,还有很多小技巧没有掌握.今天又发现了一个比较好用的小技巧,这里分享出来. 1.Android Studio默认显示效果 比如我们用Logcat来查看打印的L ...

  4. 我的Android进阶之旅------&gt;Android无第三方Jar包的源代报错:The current class path entry belongs to container ...的解决方法

    今天使用第三方Jar包afinal.jar时候.想看一下源码,无法看 然后像加入jar相应的源代码包.也无法加入相应的源代码,报错例如以下:The current class path entry b ...

  5. 集训队日常训练20181110 DIV2 题解及AC代码

    4375: 孪生素数  Time Limit(Common/Java):1000MS/3000MS     Memory Limit:65536KByteTotal Submit: 324       ...

  6. IOS开发-表单控件的应用

    1. 需求描述 2. 开发环境介绍 3. 创建一个工程 4. 工程配置介绍 5. 目录结构介绍 6. 界面设置 7. 关联输入输出 8. 关联事件代码 9. 运行结果 10. UITextField ...

  7. IOS开发应用

    IOS开发应用 我的第一个IOS开发应用 1. 需求描述 2. 开发环境介绍 3. 创建一个工程 4. 工程配置介绍 5. 目录结构介绍 6. 界面设置 7. 关联输入输出 8. 关联事件代码 9.  ...

  8. 物联网设备OTA软件升级之:升级包下载过程之旅

    OTA概述 大家好,我是一个软件升级包.这几天呢,我将会进行一次神奇的网络之旅,从开发者的电脑中,一直跑到终端嵌入式设备中. 大家都把我的这个旅游过程叫做 OTA,也就是在线升级. 那么啥叫 OTA ...

  9. 用浏览器快速开启Docker的体验之旅

    互联网科技发展创造了很多奇迹,比如我今天要提到的 docker 技术就是其一.我很早就关注它(在2015年写过这方面的博客),那会儿还只是一个开源项目,现在已经是一个行业事实标准了,它推动了云原生的变 ...

随机推荐

  1. 机器学习进阶-光流估计 1.cv2.goodFeaturesToTrack(找出光流估计所需要的角点) 2.cv2.calcOpticalFlowPyrLK(获得光流检测后的角点位置) 3.cv2.add(进行像素点的加和)

    1.cv2.goodFeaturesToTrack(old_gray, mask=None, **feature_params)  用于获得光流估计所需要的角点参数说明:old_gray表示输入图片, ...

  2. React Native,flexbox布局

    Flexbox布局 flex:使组件在可利用的空间内动态地扩张或收缩.flex:1会使组件撑满空间.当有多个组件都指定了flex的值,那么谁的flex值大谁占得空间就大,占得大小的比例就是flex值的 ...

  3. CSS中clear属性的both、left和right浅析

    前端开发中,我们知道clear属性有none.both.left和right四个值. 它们的具体含义如下: none:允许两边都可以有浮动对象: both:不允许有浮动对象; left:不允许左边有浮 ...

  4. linux下安装Tomcat7.0

    1.下载安装文件:Download apache-tomcat-7.0.14.tar.gz        下载1              下载 2.输入命令解压文件:tar - zxvf apach ...

  5. How to Pronounce Work vs. Walk

    How to Pronounce Work vs. Walk Share Tweet Share Tagged With: Comparison If you’re confused about th ...

  6. 处理TypeError: Converting circular structure to JSON

    // Demo: Circular reference var o = {}; o.o = o; // Note: cache should not be re-used by repeated ca ...

  7. openwrt用WEB刷固件型号不对问题强行处理

    参照这里:https://blog.csdn.net/caoshunxin01/article/details/79355602 原机是一块mt7620A的通板,之前刷了一个叫WE826型号的固件,发 ...

  8. JAVAWEB 一一 Spirng(AOP面向切面)

    applicationContext.xml <?xml version="1.0" encoding="UTF-8"?> <!-- < ...

  9. 【deep learning】斯坦福CS231n—深度学习与计算机视觉(资料汇总)

    官网 链接:CS231n: Convolutional Neural Networks for Visual Recognition Notes: 链接:http://cs231n.github.io ...

  10. swift杂记

    1.0   数据类型强转  范围小 --->范围大  不会丢失精度  : 范围大 ---> 范围小 ,可能丢失精度 如 :Int(4.2) = 4 :CGFloat(2) = 2.0 2. ...