題意:
給一個字符集和一些字符之間的小於關系,求字符集上的所有可能排列。
分析:
暴力枚舉可以分為枚舉子集,枚舉排列,枚舉組合,這題是個簡單的枚舉排列,枚舉過程中用小於關系剪枝即可。
代碼:
//poj 1270 //sep9 #include#include using namespace std; char vars[64],constraint[256],ans[64]; int g[128][128],vis[256]; int len; void dfs(int cur) { if(cur==len){ puts(ans); return ; } for(int i=0;i ='a'&&vars[i]<='z') vars[len++]=vars[i]; vars[len]='\0'; ans[len]='\0'; sort(vars,vars+len); dfs(0); puts(""); } return 0; }