hdu1181 dfs 字符串首尾可拼接,问是否可寻找到一条字串路径使得首尾分别是‘b’和‘m’,简单的搜索+回溯
2024-10-08 22:26:35
#include<bits/stdc++.h>
using namespace std;
typedef unsigned int ui;
typedef long long ll;
typedef unsigned long long ull;
#define pf printf
#define prime1 1e9+7
#define prime2 1e9+9
#define scand(x) scanf("%llf",&x)
#define f(i,a,b) for(int i=a;i<=b;i++)
#define scan(a) scanf("%d",&a)
#define dbg(args) cout<<#args<<":"<<args<<endl;
#define pb(i) push_back(i)
#define ppb(x) pop_back(x)
#define maxn 100005
int m,t,tot;
struct node{
char st,ed;
}n[maxn];
char s[maxn];
bool vis[maxn];
bool dfs(char a)
{
if(a=='m')return true;
f(i,,tot-)
{
if(n[i].st==a&&!vis[i])
{
vis[i]=true;
if(dfs(n[i].ed))return true;
vis[i]=false;
}
}
return false;
}
int main()
{
std::ios::sync_with_stdio(false);
while(scanf("%s",s)==)
{
if(strcmp(s,"")==)
{
if(dfs('b'))
{
pf("Yes.\n");
}
else pf("No.\n");
tot=;
memset(vis,false,sizeof(vis));
continue;
}
n[tot].st=s[];
n[tot].ed=s[strlen(s)-];
tot++;
}
}
最新文章
- RichText
- 三星四核RP4412开发板的root问题
- 半小时快速了解redis,基于ubuntu 12.04 + redis 2.8.9
- ActiveReports 报表应用教程 (9)---交互式报表之动态排序
- ios读取通讯录信息
- 初识 istringstream、ostringstream、stringstream 运用
- C++的优秀特性6:智能指针
- next_permutation()—遍历全排列
- http://www.cnblogs.com/xdp-gacl/p/4040019.html
- python基础之 Python os._exit() sys.exit() exit()区别
- C++多态及其实现原理
- 【Spark篇】---Spark中资源和任务调度源码分析与资源配置参数应用
- 《Effective C++》实现:条款26-条款31
- mfc简单框架的分析和原理记录
- (3)打造简单OS-MBR引导区转移加载简单程序(突破512限制)
- 【Java】【11】String数组和List相互转换
- mysql5.7设置默认编码
- Node.js学习入门
- UltraEdit窗口布局重新设置
- 《Linux内核分析》第四周:扒开系统调用的三层皮