樣例輸入1:
2 2 998244353
樣例輸入2:
10 3 998244353
sample output
樣例輸出1:
24樣例輸出2:
考慮知道點權怎麼求
建出trie,對於trie的每個節點,如果它既有0兒子,又有1兒子,那麼這兩棵子樹分別聯通後,要找一條最小的邊把它們連起來。
於是我們可以列舉這個節點的深度,再列舉它的左子樹和右子樹的大小,問題轉換為:
有x和y個k位二進位制數,求它們之間的異或最小值。
設f[x][y][z][u]為有x和y個k位二進位制數,最小值≥u的方案數。
#include
#define ll long long
using
namespace std;
const
int n=
57,m=
1<<9;
ll mod;
ll power
(ll x,ll t)
return b;
}int n,m,_2[10]
;ll c[m]
[m],p[n]
[n][10]
[m],b[n]
;void
init
(int n)
}int
main()
for(
int i=
1; i<=n; i++
)for
(int j=
1; j<=n-i; j++
)for
(int k=
1; k<=m; k++)}
ll s=p[i]
[j][k]
[_2[k-1]
];for(
int w=
0; w<_2>
; w++
) p[i]
[j][k]
[w]=
(p[i]
[j][k]
[w]+s)
%mod;
} ll ans=0;
for(
int i=
1; i<=m; i++)}
printf
("%lld\n"
,ans)
;}
JZOJ 省選模擬 string
一行乙個整數表示答案。sample input 樣例輸入 3 3sample output 樣例輸出 首先我們忽略重複的字串,定義 n 表示長度為 n 的回文串,或由兩個回文串拼成的字串數量。那麼可以通過列舉第乙個回文串的長度 可以為 0 可以算出f n 但是正如剛才所說,會對如 abaaba 這樣...
JZOJ 省選模擬 Moorio Kart
description 由於目前可供奶牛們使用的約會 並沒有給 farmer john 留下深刻印象,他決定推出乙個基於新匹配演算法的奶牛交友 該演算法可基於公牛和母牛間的共同興趣對公牛和母牛進行匹配。bessie 在尋找情人節 barn dance 的合作夥伴時,決定試用這個 在註冊賬戶之後,fj...
JZOJ 省選模擬 挖寶
description 有乙個挖寶遊戲,它在一棵 n 個點的樹上進行,寶藏埋在某個未知的點 每次挖掘乙個點 u,玩家得到的反饋資訊是乙個數值 d,表示 u 號點到 號點簡單路徑上的邊數。這個遊戲會進行 q 次,每次遊戲藏寶的位置不一定相同。你作為一名優秀的 er,對自己無比自信。你希望用最少的挖掘次...