題意:
n(10^5)個串每個串3個字符 兩個串abc、xyz能拼在一起前提是b=x&&c=y 它們能拼成ab(x)c(y)z 求n個串品在一起的串
思路:
將串abc變成ab->bc的一條邊 則原題變成了有向圖的歐拉路徑問題
有向圖歐拉路徑算法就是遍歷 因為歐拉路徑其實就是“每條邊走一遍”
代碼:
#include #include #include #include #include #include #include #include #include #include #include #include using namespace std; typedef unsigned long long ULL; #define N 3850 int n,m; int in[N],out[N],Edge[N][N],ans[200010]; int get(char a){ if(a>='0'&&a<='9') return a-'0'; if(a>='A'&&a<='Z') return a-'A'+10; return a-'a'+36; } char put(int a){ if(a>=0&&a<=9) return '0'+a; if(a>=10&&a<=35) return 'A'+a-10; return 'a'+a-36; } void dfs(int x){ for(int i=0;i1){ can=0; break; }else if(tmp==1){ if(ed==-1) ed=i; else{ can=0; break; } }else if(tmp==-1){ if(st==-1) st=i; else{ can=0; break; } } } if(can){ if(st==-1){ for(int i=0;i=0;i--){ if(i!=m-1) printf("%c",put(ans[i]%62)); else printf("%c%c",put(ans[i]/62),put(ans[i]%62)); } puts(""); }else puts("NO"); } else puts("NO"); return 0; }
C++中事件機制的簡潔實現,事件機制事件模型是被廣泛使用的好
leetcode筆記:Evaluate Reverse Po
// 無向圖的廣度優先搜索(采用
C實現通用數據結構--單鏈表,通用數據結構--單鏈單鏈表概述
Lucky Light Time Lim
在前面一文,說過二叉樹的遞歸遍歷算法(二叉樹先根(先序