組合數學中的項鍊計數
給c種不同顏色寶石能穿成多少種長度為s的寶石項鍊(本質不同)
Burnside定理的應用:
當n為奇數時,有n種翻轉,每種翻轉都是以一個頂點和該頂點對邊的中點對稱。有k^(n/2+1)*n種。
當n為偶數時,有n種翻轉,其中一半是以兩個對應頂點,另一半是以兩條對邊對稱。有k^(n/2+1)*n/2+k^(n/2)*n/2種。
考慮旋轉:列舉旋轉角度360/n*i,(0<i<=n),也就是一個置換。經過該置換,顏色仍保持不變的著色方案有k^GCD(n,i)種。
一個長度為n的環,每i個上同一種顏色,可以上多少種顏色。
假設起點在x,則x,x+i,x+2*i,……,x+k*i,……
假設在第t次,第一次回到起點,則x=(x+t*i)%n => t*i%n=0 => t=LCM(i,n)/i=n*i/GCD(n,i)/i=n/GCD(n,i)。
那麼可以上n/t種顏色,即n/(n/GCD(n,i))種,所以旋轉的著色方案有k^GCD(n,i)種。
#include<cstdio> #include<iostream> using namespace std; typedef long long ll; ll power(ll a,ll b) { ll ans=1ll; while(b) { if(b&1) ans=ans*a; a=a*a; b=b>>1; } return ans; } ll gcd(ll a,ll b) { return b ? gcd(b,a%b) : a; } int main() { int c,s; ll ans; while(scanf("%d%d",&c,&s)!=EOF) { if(s&1) ans=power(c,s/2+1)*s; else ans=power(c,s/2)*(s/2)+power(c,s/2+1)*(s/2); for(int i=1;i<=s;i++) ans+=power(c,gcd(s,i)); printf("%lld\n",(ans/2)/s); } return 0; }
相關推薦
組合數學中的項鍊計數
給c種不同顏色寶石能穿成多少種長度為s的寶石項鍊(本質不同) Burnside定理的應用: 當n為奇數時,有n種翻轉,每種翻轉都是以一個頂點和該頂點對邊的中點對稱。有k^(n/2+1)*n種。 當n為偶數時,有n種翻轉,其中一半是以兩個對應頂點,另一半是以兩條
組合數學中排列組合一點理解
安排 一點 能夠 乘法 向上取整 解決 多少 排列 nbsp 在數學中,什麽是排列組合呢?其實在生活中我相信使用是非常廣泛的,下面做一個簡單闡述 集合中不同元素的排列,是對這些元素一種安排.我們也對集合中某些元素的有序安排感興趣.對一個集合中r個元素的有序安排稱為r排列
組合數學之Polya計數
rmi IT clu over any color div 題目 ive 1116: Let it Bead Time Limit(Common/Java):1000MS/10000MS Memory Limit:65536KByteTotal Submit: 7
2018黑龍江省賽 A Path Plan(組合數學 美妙的計數原理)
7217: A Path Plan 時間限制: 1 Sec 記憶體限制: 128 MB 提交: 66 解決: 31 [提交] [狀態] [討論版] [命題人:admin] 題目描述 WNJXYK hates Destinys so that he does no
java實現從M個元素中取N個元素的所有組合(數學中的組合問題)
package reverse; public class Cat {public static void main(String[] args) {int[] s = {4, 2, 1, 3, 0, 5};String tmp = "";for(int i=1;i<
組合數學中那些有趣的球和盒子的問題(超強悶騷版,再也不怕球球了)
介紹一下問題: n個球放到m個盒子裡,則球和盒子是否有區別?是否允許空盒? 這自然有23=8種狀態,用表格表示方案情況如下: 第一種情況的解釋:(n個無區別的球放進m個無區別的盒子中,允許空盒) 第二種情況的解釋:(n個無區別的球放進m個無區別的盒子中,不允
組合數學+lucas定理+逆元 BZOJ2111 [ZJOI2010]Perm 排列計數
can clas str void script space rip esc magic 2111: [ZJOI2010]Perm 排列計數 Time Limit: 10 Sec Memory Limit: 259 MBSubmit: 2118 Solved: 563
組合數學及其應用——polya計數
固定 更多 符號 .com 過程 嘗試 容易 高中 立方體 在處理類似下面的問題中,一般的計數方法會出現問題:假如你要用紅、藍兩種顏色給一個正四面體的四個頂點著色,試問存在多少種不同的著色方案? 在高中我們常用的方法是模擬塗色過程,分情況討論,然後基於分步乘法原理
bzoj 4517: [Sdoi2016]排列計數【容斥原理+組合數學】
沒有 原理 getchar() display del d+ getchar esp const 第一個一眼就A的容斥題! 這個顯然是容斥的經典問題------錯排,首先考慮沒有固定的情況,設\( D_n \)為\( n \)個數字的錯排方案數。 \[ D_n=n!-\su
[SDOI2016] 排列計數 (組合數學)
... sin name splay 兩個 solution .cn define getchar() [SDOI2016]排列計數 題目描述 求有多少種長度為 n 的序列 A,滿足以下條件: 1 ~ n 這 n 個數在序列中各出現了一次 若第 i 個數 A[i] 的值為
組合數學+錯排問題【p4071】[SDOI2016]排列計數
列數 out input while tro 理解 mod void script Description 求有多少種長度為 n 的序列 A,滿足以下條件: 1 ~ n 這 n 個數在序列中各出現了一次 若第 i 個數 A[i] 的值為 i,則稱 i 是穩定的。序列恰好有
bzoj 4693 雪中送溫暖 - 組合數學 - 盧卡斯定理 - 數位dp
題解: 考慮本質上是在對超矩形的每個點求從(1,1,…,1)走到這個點的方案數的奇偶性之和。 到 ( x
【普呂弗編碼 + 組合數學】bzoj 1211: [HNOI2004]樹的計數
1211: [HNOI2004]樹的計數 Description 一個有n個結點的樹,設它的結點分別為v1, v2, …, vn,已知第i個結點vi的度數為di,問滿足這樣的條件的不同的樹有多少棵。給定n,d1, d2, …, dn,程式設計需要輸出滿足d(vi)=di的樹的個數。
BZOJ4517:[SDOI2016]排列計數(組合數學,錯排公式)
++i color name 組合數 int sdoi for tput urn Description 求有多少種長度為 n 的序列 A,滿足以下條件: 1 ~ n 這 n 個數在序列中各出現了一次 若第 i 個數 A[i] 的值為 i,則稱 i 是穩定的。序列
【BZOJ 1211】HNOI2004]樹的計數(組合數學+Purfer序列)
1211: [HNOI2004]樹的計數 Time Limit: 10 Sec Memory Limit: 162 MB Submit: 3149 Solved: 1181 [Submit][Status][Discuss] Description 一個有n
牛客國慶集訓派對Day4 I-連通塊計數(思維,組合數學)
時間限制:C/C++ 1秒,其他語言2秒 空間限制:C/C++ 1048576K,其他語言2097152K 64bit IO Format: %lld 題目描述 小 A 有一棵長的很奇怪的樹,他
2018.10.25 atcoder Leftmost Ball(計數dp+組合數學)
傳送門 dp妙題啊。 我認為DZYODZYODZYO已經說的很好了。 強制規定球的排序方式。 然後就變成了一個求拓撲序數量的問題。 程式碼: #include<bits/stdc++.h>
BZOJ2839:集合計數(容斥,組合數學)
Description 一個有N個元素的集合有2^N個不同子集(包含空集),現在要在這2^N個集合中取出若干集合(至少一個),使得它們的交集的元素個數為K,求取法的方案數,答案模1000000007。(是質數喔~) Input 一行兩個整數N,K
UOJ#273. 【清華集訓2016】你的生命已如風中殘燭(組合數學)
傳送門 題解: 首先所有位置先-1,然後考慮m!m!m!種排列,如果全部字尾和小等於0(字首和大等於0)那麼是個合法排列,否則不合法。 這個時候有個自然的想法就是把小於0的最小的位置(若有多個則選最靠後
ACM中的【數學知識】之【組合數學】(一) Polya定理的簡單理解 POJ 1286
因為數學渣,Polya定理不是很清楚,但其實際操作大概如下。 解釋下上圖。 N個位置,K種顏色放置。 x1,x2,x3,x4,……,xn (x1,x2,x3……xn)∈{1 2 3 4 …… K} 則 放置總數為上圖 |G| 是【所有的(被定義的)置換(也就是變化的方式)