1. 程式人生 > >Polya定理模板

Polya定理模板

# include <stdio.h>
# include <math.h>
# define ll long long
const ll M=1000000007;
ll ppow(ll a, ll n){
	ll ans = 1, base = a;
	while (n > 0){
        if (n & 1 == 1) ans = (ans*base) % M;
        base = (base*base) % M;
        n >>= 1;  
    }
    return ans;
}


long long gcd(long long a, long long b)
{ return a == 0 ? b : gcd(b % a, a); }


ll shou(int t,int n)
{
	int i;
	ll zhuan=0,fan=0,sum=0;
	for(i=0;i<n;i++)
	{
		zhuan+=ppow(t,gcd(i,n));//旋轉不動點 
	}
	if(n&1)
	{
		fan=n*ppow(t,(n+1)/2)%M;//奇數珠子 翻轉 置換不動點 
	}
	else
	{
		fan=(n/2)*(ppow(t,(n/2+1))+ppow(t,(n/2)));//偶數珠子 翻轉置換不動點 
	}
	sum=(zhuan+fan)%M*ppow(2*n,M-2)%M;//但對於(a/b)%MOD這個式子,是不可以寫成(a%MOD/b%MOD)%MOD的,但是可以寫為(a*b^-1)%MOD,其中b^-1表示b的逆元。
	return sum;//https://blog.csdn.net/shutdown113/article/details/78022654
}



int main()
{
	int T,i;
	ll n,m,ans;
    scanf("%d",&T);
    for(i=0;i<T;i++)
    {
    	scanf("%d %d",&n,&m);
    	ans=shou(n,m);
    	printf("Case #%d: %d\n",(i+1),ans);
	}
	
}

相關推薦

poj2409(polya 定理模板)

構造 hide pan int names end col return nbsp 題目鏈接:http://poj.org/problem?id=2409 題意:輸入 m, n 表示有 m 種顏色,要構造一個長度為 n 的手環,旋轉和對稱的只算一種,問能組成多少個不同的

Polya定理模板

# include <stdio.h> # include <math.h> # define ll long long const ll M=1000000007; ll ppow(ll a, ll n){ ll ans = 1, ba

P4980 【模板Polya定理

fine isp 染色 結果 pla 直接 只需要 for arp P4980 【模板】Polya定理 題目描述 給定一個\(n\)個點,\(n\)條邊的環,有\(n\)種顏色,給每個頂點染色,問有多少種本質不同的染色方案,答案對\(10^9+7\)取模 註意本題的本質不同

Luogu4980 【模板Polya定理Polya定理+尤拉函式)

  對於置換0→i,1→i+1……,其中包含0的迴圈的元素個數顯然是n/gcd(i,n),由對稱性,迴圈節個數即為gcd(i,n)。   那麼要求的即為Σngcd(i,n)/n(i=0~n-1,也即1~n)。考慮列舉gcd。顯然gcd(i,n)=x在該範圍內解的個數是φ(n/x)。分解一下質因數即可。

Luogu4980 【模板Polya定理Polya定理+歐拉函數)

int return div 範圍 names ons || iostream har   對於置換0→i,1→i+1……,其中包含0的循環的元素個數顯然是n/gcd(i,n),由對稱性,循環節個數即為gcd(i,n)。   那麽要求的即為Σngcd(i,n)/n(i=0~

[洛谷P4980]【模板Polya定理

題目大意:給一個$n$個點的環染色,有$n$中顏色,問有多少種塗色方案是的旋轉後本質不同 題解:$burnside$引理:$ans=\dfrac1{|G|}\sum\limits_{g\in G}A_g$ 對於環,有$Polya$定理:$ans=\dfrac1{|G|}\sum\limits_{g\in

poj2409:Let it Bead(置換群 polya定理)

pre int lose cnblogs 翻轉 空格 else 位置 長度   題目大意:長度為n的項鏈,要染m種顏色,可以通過旋轉或翻轉到達的狀態視為同一種,問有多少種染色方案。   學了一波polya定理,發現很好理解啊,其實就是burnside定理的擴展。   bur

Polya定理應用實例

mes 個數 大於 所有 染色 nbsp times 行為 med 關於Polya原理的應用經典實例: 問題:用兩種顏色去染排成一個圈的6個棋子,如果通過旋轉得到只算作一種。問有多少種染色狀態。 解:先將棋子表上號: 1 6 2 5

數論總結 (常用定理+ 模板

擴展歐幾裏德算法 二項式 rime spa 模板 phi 歐拉函數 noip prim 刷了好幾天的數論了 noip要考的幾乎都刷了一遍 看著公式有生無可戀的感覺啊 下面是一些總結 1.組合數 去年的noip考了組合數遞推公式 C(n, m) = C(n - 1, m -

【數學基礎】【歐拉定理模板

技術分享 mage 個數 分享 cnblogs com 兩個 一個 一個數 先明確歐拉函數:計算任意給定的正整數n,在小於等於n的正整數中和n構成互質關系的正整數個數,比如φ(8) = 4,因為1,3,5,7都與8互質 性質1:n=1時,φ(1) = 1;

【數學基礎】【歐拉定理模板】【費馬小定理

基礎 int 復雜度 amp pan -1 log 分治 質數 費馬小定理:當p是一個質數時,且a和p互質,有ap-1=1(mod p) (歐拉定理的一種特殊情況) 歐拉定理:如果a和n互質,那麽aφ(n)=1(mod n) 對於任意a,b,n就有 ab=

[POJ2409]Let it Bead - Polya定理

height man 括號 other 簡單的 gcd bre 得到 values [POJ2409]Let it Bead Time Limit: 1000MS Memory Limit: 65536K Description "Let it Bead

Polya定理

組合數學 復合函數 left right 可能 映射 定義 使用 多少   Burnside和Polya定理都是高級計數的工具。對於一般計數問題,可以用排列組合來統計,但是對於更復雜的問題,比如對n個點用m種顏色染色,並且認為這n個點可以相互轉移,即第一個點的位置可以與第二

POJ2154 Color polya定理+歐拉定理

顏色 ring lld ref targe 技術分享 math while cstring 由於這是第一天去實現polya題,所以由易到難,先來個鋪墊題(假設讀者是看過課件的,不然可能會對有些“顯然”的地方會看不懂): POJ1286 Neckla

UVA10294 Arif in Dhaka (群論,Polya定理)

gpo 之前 pan 循環節 href 等價 polya定理 定義 limit UVA10294 Arif in Dhaka (群論,Polya定理) 題意 : 給你一個長為\(n\)的項鏈和手鐲,每個珠子有\(m\)種顏色. 兩個手鐲定義為相同,即它們通過翻轉和旋轉得

Burnside引理和Polya定理

開始 多少 tails 沒有 -s 圖片 detail 最簡 方案 轉載自:https://blog.csdn.net/whereisherofrom/article/details/79631703 Burnside引理   筆者第一次看到Burnside引理那個公式的時

poj1286 Necklace of Beads—— Polya定理

main printf polya nec i++ 感覺 ostream http clu 題目:http://poj.org/problem?id=1286 真·Polya定理模板題; 寫完以後感覺理解更深刻了呢。 代碼如下: #include<iostream&

Burnside引理與Polya定理

本質 left sum bsp 之間 染色 polya begin 兩個 感覺這兩個東西好鬼畜= = ,考場上出了肯定不會qwq。不過還是學一下吧用來裝逼也是極好的 群的定義 與下文知識無關。。 給出一個集合$G = \{a, b, c, \dots \}$和集合上的

置換群和Burnside引理,Polya定理

因子 不同的 mir details 構造 itl 置換群 模型 遇到 定義簡化版: 置換,就是一個1~n的排列,是一個1~n排列對1~n的映射 置換群,所有的置換的集合。 經常會遇到求本質不同的構造,如旋轉不同構,翻轉交換不同構等。 不動點:一個置換中,置換後和置換前沒有

Necklace of Beads (polya定理的引用)

std esc while blank all alt lec gcd ins Beads of red, blue or green colors are connected together into a circular necklace of n beads