拓扑排序+DFS(POJ1270)
【日后练手】(非解题)
拓扑排序+DFS(POJ1270)
#include<stdio.h>
#include<iostream>
#include<cstdio>
#include<queue>
#include <vector>
#include<map>
#include<stack>
#include<cmath>
#include<cstring>
#include<cstdlib>
#include<climits>
#include<algorithm>
using namespace std;
#define LL long long
#define PI acos(-1.0)
#define ING 0x7fffffff
#define INF 0x3f3f3f3f
#define DA 100005
#define N 1010
bool ma[40][40];
int pre[40];
map<char,int>gg;
int rsk;
char ans[40];
char da[30];
void tuopu(int sum)
{
if(sum==rsk)
{
printf("%s\n",ans);
return;
}
for(int i=0;i<rsk;i++)
{
if(pre[i]==0)
{
pre[i]--;
ans[sum]=da[i];
for(int j=0;j<rsk;j++)
{
if(ma[i][j])
{
pre[j]--;
}
}
tuopu(sum+1);
pre[i]++;
for(int j=0;j<rsk;j++)
{
if(ma[i][j])
pre[j]++;
}
}
}
}
int main()
{
char c;
char s1[55];
char s[55];
while(gets(s1))
{
int flat=0;
int lg=strlen(s1);
int num=0;
for(int i=0;i<lg;i++)
{
if(s1[i]>='a'&&s1[i]<='z')
da[num++]=s1[i];
}
// da[num]='\0';
rsk=num;
sort(da,da+num);
for(int i=0;i<num;i++)
gg[da[i]]=i;
gets(s);
int len=strlen(s);
int j1,j2;
memset(pre,0,sizeof(pre));
memset(ma,0,sizeof(ma));
for(int i=0;i<len;i++)
{
if(s[i]>='a'&&s[i]<='z')
{
if(flat==0)
{
j1=s[i];
flat=1;
}
else
{
j2=s[i];
ma[gg[j1]][gg[j2]]=1;
pre[gg[j2]]++;
flat=0;
}
}
}
memset(ans,0,sizeof(ans));
tuopu(0);
printf("\n");
}
return 0;
}
拓扑排序+DFS(POJ1270)的更多相关文章
- ACM/ICPC 之 拓扑排序+DFS(POJ1128(ZOJ1083)-POJ1270)
两道经典的同类型拓扑排序+DFS问题,第二题较第一题简单,其中的难点在于字典序输出+建立单向无环图,另外理解题意是最难的难点,没有之一... POJ1128(ZOJ1083)-Frame Stacki ...
- 拓扑排序-DFS
拓扑排序的DFS算法 输入:一个有向图 输出:顶点的拓扑序列 具体流程: (1) 调用DFS算法计算每一个顶点v的遍历完成时间f[v] (2) 当一个顶点完成遍历时,将该顶点放到一个链表的最前面 (3 ...
- Ordering Tasks(拓扑排序+dfs)
Ordering Tasks John has n tasks to do. Unfortunately, the tasks are not independent and the executio ...
- HDU 5438 拓扑排序+DFS
Ponds Time Limit: 1500/1000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others)Total Sub ...
- POJ1128 Frame Stacking(拓扑排序+dfs)题解
Description Consider the following 5 picture frames placed on an 9 x 8 array. ........ ........ ... ...
- poj1270Following Orders(拓扑排序+dfs回溯)
题目链接: 啊哈哈.点我点我 题意是: 第一列给出全部的字母数,第二列给出一些先后顺序. 然后按字典序最小的方式输出全部的可能性.. . 思路: 整体来说是拓扑排序.可是又非常多细节要考虑.首先要按字 ...
- Codeforces Round #292 (Div. 2) D. Drazil and Tiles [拓扑排序 dfs]
传送门 D. Drazil and Tiles time limit per test 2 seconds memory limit per test 256 megabytes Drazil cre ...
- 拓扑排序/DFS HDOJ 4324 Triangle LOVE
题目传送门 题意:判三角恋(三元环).如果A喜欢B,那么B一定不喜欢A,任意两人一定有关系连接 分析:正解应该是拓扑排序判环,如果有环,一定是三元环,证明. DFS:从任意一点开始搜索,搜索过的点标记 ...
- CodeForces-1217D (拓扑排序/dfs 判环)
题意 https://vjudge.net/problem/CodeForces-1217D 请给一个有向图着色,使得没有一个环只有一个颜色,您需要最小化使用颜色的数量. 思路 因为是有向图,每个环两 ...
随机推荐
- 《ASP.NET》数据绑定—DataList实践篇
上篇文章大概讲了DataList的一些基础知识,掌握这些知识在将来的应用中起到非常大的作用,如今我们就開始讲上篇文章中说的基础知识做一个小样例. 首先,我机子的数据库中有一张person表.例如以下图 ...
- NBUT 1457 Sona (莫队算法)
题目大意: 求一段区间内 出现的数字的次数的三次方的和 思路分析: 这要水过去的题目真是难,各种优化. 不能用map , 要离散化之后 先处理lowerbound. 优化输入. . . 时间卡的非常紧 ...
- HDU 4422 The Little Girl who Picks Mushrooms(数学)
题目链接:http://acm.hdu.edu.cn/showproblem.php? pid=4422 Problem Description It's yet another festival s ...
- Solidworks如何运行Toolbox
现在的问题不是没安装,没配置,这两项已经勾选了 Toolbox也配置到第五步了,但是没有什么"完成"按钮,我只能点击关闭把这个窗口关了,而且下次要拉一颗螺丝进来也不行 这样 ...
- iOS开发之UITabBarController和UICollectionView的使用
这一篇要记录的是iOS开发中UITabBarController控件和UICollectionView控件的使用.APP跑起来之后的效果例如以下图: watermark/2/text/aHR0cDov ...
- 使用word2010写文章发布到blog
参考文档: http://www.cnblogs.com/liuxianan/archive/2013/04/13/3018732.html 使用Windows Live Writer 2012和Of ...
- 【转载】.NET Remoting学习笔记(三)信道
目录 .NET Remoting学习笔记(一)概念 .NET Remoting学习笔记(二)激活方式 .NET Remoting学习笔记(三)信道 参考:♂风车车.Net .NET Framework ...
- mac系统下为emacs设置中文字体,解决乱码问题
近期换了个系统,如今用mac系统. 当打开emacs后,中文支持的不是非常好.有的地方能显示.在.el文件的凝视里显示为口口口口口口口口这种框.例如以下图所看到的 找了半天.是由于中文字体的问题.仅仅 ...
- Vue 基础
1. data 数据 methods 方法 watch 监听变化 2. 模版指令(类似 angular) {{}} v-text 渲染数据 v-html html 结构 3. v-if v-show ...
- uboot1.1.6中启动流程
U-Boot启动内核的过程可以分为两个阶段,两个阶段的功能如下: (1)第一阶段的功能 Ø 硬件设备初始化 Ø 加载U-Boot第二阶段代码到RAM空间 Ø 设置好栈 Ø 跳转到第二阶段代码入口 (2 ...