題意:
先給你乙個字串,讓你給他們排序;
再給你一行,在這一行,每兩個就是第乙個需要在第二個前面;
思路:
//dfs寫多了感覺好有啊,就是排序過程中可能會有多種情況。
//我們考慮一下怎麼排好乙個位置,這個位置可能有多個東西可以佔,那麼這些東西對於這個位置都是等價的,
//那麼我們可以採用深搜下+回溯來解決。
//其實還是蠻簡單的
code:
#include
#include
#include
#include
using
namespace
std;
char ans[30];
char ss[30];
char s[100];
int ma[30][30];
int pre[30];
int gg[200];
int num;
void tuopu(int u)
for(int i=0;iif(pre[i]==0)
}tuopu(u+1);
//回溯;
pre[i]++;
for(int j=0;jif(ma[i][j])}}
}}int main()
}ss[num]='\0';
sort(ss,ss+num);
for(int i=0;ichar s1[110];
gets(s1);
int ll=strlen(s1);
int j1,j2,flag;
flag=0;
memset(pre,0,sizeof(pre));
memset(ma,0,sizeof(ma));
for(int i=0;iif(s1[i]<'a'||s1[i]>'z')
continue;
if(!flag)
else
}tuopu(0);
puts("");
}return0;}
/*a b f g
a b b f
v w x y z
v y x v z v w v
*/
POJ1270 拓撲排序 DFS
題意 先給你乙個字串,讓你給他們排序 再給你一行,在這一行,每兩個就是第乙個需要在第二個前面 思路 dfs寫多了感覺好有啊,就是排序過程中可能會有多種情況。我們考慮一下怎麼排好乙個位置,這個位置可能有多個東西可以佔,那麼這些東西對於這個位置都是等價的,那麼我們可以採用深搜下 回溯來解決。其實還是蠻簡...
POJ 1270 拓撲排序(刪邊法)
直接看到這道題就感覺好做,於是愉快的wa了十發,簡單說下坑點 1.按字典序輸出,需要開頭對陣列進行排序。2.中間可能不只有乙個空格,輸入需要特別處理。坑我一晚上,心裡都快崩潰了,簡直神坑,醉了。include include include include include includeusing ...
POJ1128 拓撲排序 DFS
看到題應該很容易想到利用拓撲排序來判斷相框之間的關係,對於每乙個相框,我們遍歷一遍可以找到他的 上下左右 四條邊的位置,再搜尋這幾條邊上是否有其他字母,有的話就新增乙個類似於a然後就是我個人認為的這道題的難點,怎麼按照字典序輸出所有可能答案,最開始我想的是利用bfs跑拓撲,確定每個點的層級,再對相同...