Torn To Pieces-------------------------------思维(dfs+stringstream流)
题意:
给定n个站点连接的情况,最终询问能否从某个站点到达某个站点
解析:
用getline(cin,s) 把整个串读进来
然后用stringstream流 把字符串分解一下
然后把字符串数字化。
然后跑一遍dfs
如果能跑到终点我们直接输出路径。
#include<bits/stdc++.h>
using namespace std;
const int N=1e5+10000;
int n;
vector<int> G[N],r;
int cnt;
string a,b,s;
map<string,int> v;
map<int ,string > res;
int e;
int ans[N];
int dist[N], q[N]; // dist表示每个点到起点的距离, q 是队列 // 邻接表
bool st[N]; // 存储每个点是否在队列中
int pre[N];
void dfs(int u,int fa)
{st[u]=1;r.push_back(u);if(u==e){for(auto j :r) cout<<res[j]<<" ";cout<<endl;exit(0); }for(auto j: G[u]){if(!st[j]&&j!=fa){dfs(j,u);}}r.pop_back();
}
int main()
{scanf("%d",&n);getchar();for(int i=1;i<=n;i++){getline(cin,s);stringstream ss(s);ss>>a;if(!v[a]){v[a]=++cnt;res[cnt]=a;}while(ss>>b){if(!v[b]){v[b]=++cnt;res[cnt]=b;}G[v[a]].push_back(v[b]);G[v[b]].push_back(v[a]);}}int t;cin>>a>>b;if(!v[a]){v[a]=++cnt;res[cnt]=a;} if(!v[b]){v[b]=++cnt;res[cnt]=b;}int s=v[a];e=v[b];dfs(s,s);cout<<"no route found"<<endl;}
Torn To Pieces-------------------------------思维(dfs+stringstream流)相关推荐
- stringstream流分割字符串
目录 stringstream流分割空格隔开的字符串 配合getline指定特定字符分割 stringstream流分割空格隔开的字符串 先看下C++流的总体框架 so beautiful demo ...
- 凡人修c传(四)翻牌子(POJ - 3279 - Fliptile)(思维+dfs)
本萌新初来乍到,不知代码的险恶,曾看过一篇帖子,大佬说他一天就打了一题,十分崩溃,底下评论芸芸,另一位大佬说,没事,可能将来你一天看一个题解都未必能看懂. 当我打完这题时,我觉得大佬说的对...... ...
- Codeforces Round #548 (Div. 2) C. Edgy Trees(思维+dfs)
题目链接:https://codeforces.com/contest/1139/problem/C 题意是给了一棵树,n个点,m条边.让从中选k个点,使得从a1到a2,a2到a3,ak ...
- Codeforces Round #801 (Div. 2) D2(思维/dfs)
传送门 题意:给你一颗树,问最少取几点并且得知其与未知点x的距离可以确定树中任意x是哪个节点. 思考:观察可知,对于叶子节点,其兄弟节点到父节点所在的路径上都有点被取到时,不用取它也可以知道具体是哪个 ...
- AtCoder Beginner Contest 266 「A」「B 取模」「C 凸多边形」「D 状态机dp」「E 概率dp」「F 思维+dfs」
A - Middle Letter 题目描述: 给你一个长度为奇数的字符串,输出最中间的字符 思路: 水题 #include <bits/stdc++.h> using namespace ...
- Hrbust 2302 Another Tree【思维+Dfs】
Another Tree Time Limit: 1000 MS Memory Limit: 32768 K Total Submit: 46(17 users) Total Accepted: 17 ...
- Fzu 2207 以撒的结合【思维+Dfs序】好题!好题!
Problem 2207 以撒的结合 Accept: 68 Submit: 219 Time Limit: 1000 mSec Memory Limit : 32768 KB Prob ...
- 十面埋伏-------------------------------------思维(dfs)
解析: 先给整个方格打上'x' 对于'#'四周的'x'使其变成'*' 剩下的'x'变成'.'就可以了 #include<bits/stdc++.h> using namespace std ...
- C. Infected Tree(思维/dfs/树形dp)
题目 题意: 给定一颗树 ,根节点为2,每个结点的子节点数不超过2(也就是说这是一个二叉树).现在根节点被感染了,我们需要拯救这棵树. 有n次过程,每次过程如下: 我们可以选择砍掉一个非感染点,使得该 ...
最新文章
- ubuntu14.04如何在线安装eclipse以及C/C++开发组件,搭建软件开发平台
- hung-yi lee_p17_卷积神经网络
- post json 提示远程服务器500_解决WinServer2012R2服务器远程提示“参数错误”
- Pycharm设置pylint real-time scan实时扫描代码规范
- LeetCode-剑指 Offer 25. 合并两个排序的链表
- 07-11 Linux命令操作
- java三路快排,java二路快排很慢
- wxpython界面切换_wxpython中的图形用户界面
- 经典面试题(8):关于逻辑运算符,下面代码运行的结果是什么?
- 408数据结构:1.顺序表的定义
- flask html缓存,flask_cache如何缓存动态数据,如何调用缓存数据
- JanusGraph概述
- oracle学习笔记-转
- EXCEL单元格式(亿元,万元)
- Java的ASCII编码表
- matlab text函数
- 模仿微信朋友圈 图片浏览 js javascript 支持图片预览,滑动切换,双指缩放,图片缓存
- 高德地图定位及导航开发流程
- Tomcat 中 GET方式 请求 中文乱码 出现的原因
- openstack搭建教程