很狗的一道題;
這種題在我們紹興一中出題人是要被阿掉的;
首先就是兩個char會出現相同的情況;
然後每個char最多出現52次;
所以n其實不小的;
我靠;
這些東西都沒有很明白的說清楚;
然後我們發現n對關係n+1個點;
就是尤拉迴路;
其實就是一筆畫問題;
度數為奇的點為2或者0的話可以有一筆畫;
那麼對於這兩種情況取字典序最小的乙個點開始dfs,一定可以出結果;
然後資料的話codevs有的;
#include
#define ll long long
using
namespace
std;
const ll n=100;
bool f[n][n];
int a[n*100],a[n];
int n,x,y,m,sum,u1,u2;
int get()
void out()
void dfs(int x,int k)
}int main()
for(int i=99;i;i--)
if(a[i])if(a[i]&1)sum++,u1=i;else u2=i;
if(sum!=0&&sum!=2)
if(sum)dfs(u1,1);else dfs(u2,1);
}
無序字母對 洛谷1341 尤拉迴路
給定n個各不相同的無序字母對 區分大小寫,無序即字母對中的兩個字母可以位置顛倒 請構造乙個有n 1個字母的字串使得每個字母對都在這個字串中出現。第一行輸入乙個正整數n。以下n行每行兩個字母,表示這兩個字母需要相鄰。輸出滿足要求的字串。如果沒有滿足要求的字串,請輸出 no solution 如果有多種...
洛谷1341 無序字母對(尤拉迴路)
點此看題面 大致題意 給你 n 個各不相同的無序字母對 注意 兩個字母可能相同,被這個坑了好幾次 請構造乙個長度為 n 1 的字串包含每個字母對。這是一道裸的尤拉迴路,只不過是字串版的,步驟較經典版略顯麻煩。依照尤拉迴路的思路,我們先統計出每個字母出現的次數。然後對其中奇點的個數分類討論 若沒有奇點...
洛谷 P1341 無序字母對
這道題第一眼以為是一道字串的題,但細想一下是一道求尤拉路的圖論題。把每一對對應關係看成一條邊,本題即求這張圖上是否存在乙個尤拉迴路或尤拉路,並要求字典序最小的方案,那麼我們在dfs的時候就要從該點所連的最小的點開始便利,並將所得的結果存在乙個陣列中,最後逆序輸出。include include in...