原创 反素數 TIMUS 1748

題意:給出n,求1—n中因子最多的數的最小值,即反素數 思路:根據反素數分解質因數後,質因子越小,其對應指數越大的性質,直接DFS即可 #include <cstdio> #include <cstdlib> #include <cst

原创 POJ 2449 A*k短路

題意:給出一個有向圖,起點終點以及k,求k短路 思路:使用A*算法,首先預處理出每個點到終點的距離h[i],搜索時使用優先隊列,關鍵字爲(f + h[i]),其中f 是已經走的距離,i是當前走到的節點 注意:此題坑點巨多: 1)起點可能與

原创 DBFS POJ1198 Solitaire

題意:給出一個初始局面和目標局面,每個局面有四個棋子,每進行一步操作可以將一個棋子向四個方向走一格,如果某個方向已經有與它相鄰的棋子,則可以跳過這個棋子到下一個空格,求能否在8步之內得到目標局面。 思路:壓縮狀態判重,注意棋子是無序的

原创 HNOI 2010 彈飛綿羊LCT

%SAK:blog.csdn.net/frods 動態樹要求我們維護一個由若干棵子結點無序的有根樹組成的森林。 要求這個數據結構支持對樹的分割,合併,對某個點到它的根的路徑的某些操作, 以及對某個點的子樹進行的某些操作。其中解決問題使用

原创 IDA* POJ2331 Water pipe

題意: 給出起點與終點,以及k種水管的長度及其數量,求消耗的最少水管從起點修到終點 思路: 首先在假設水管無限多的情況下分別求出橫縱座標到終點的最少步數,然後迭代加深搜索+剪枝即可 代碼: #include <cstdio> #inc

原创 遞推+矩陣快速冪

由於長度爲一的方塊只有一種方案,長度爲二的有四種方案(不包含長度爲一中的情況),長度爲三的有兩種方案(不包含長度爲二中的情況),得遞推式: f[i] = f[i-1] + f[i-2] * 4 + f[i-3

原创 POJ 1639 度限制最小生成樹Prim

題意:給出n條無向帶權邊,求所有點的最小生成樹,其中“Park”的度數不超過最後輸入的k,輸入保證有解。 思路:思路其實很好理解,分爲幾個步驟: 1.當然將“Park”作爲根節點,一開始先刪掉它,則原圖會分爲m個連通分量,分別記錄它們的最

原创 POJ 2831 Prim

題意:給出一個n點m邊的無向帶權圖,以及q個詢問,每個詢問查詢當第i條邊的權值改爲x時,第i條邊是否在該圖的最小生成樹(可能不唯一)之中。 思路:用Prim在n*n時間內求出最小生成樹,並用Max[i][j]記錄最小生成樹上從i到

原创 POJ 2989 Bron-Kerbosch算法 極大團數量

題意:給出n個人,其中m對朋友,求極大團數量(若超過1000則輸出“Too many maximal sets of friends.”)。 思路: 1)定義:一個點集S被稱爲極大團,當且僅當S中的所有點均互爲朋友,且所有不在S中的人,均

原创 POJ 1845 質因數分解+等比數列求和

題意:給出A,B,求A^B的所有約數之和 思路:首先給A分解質因數,若A = C1 ^ e1 * ... * Cn ^ en,則A ^ B = C1 ^ (e1 * B) * ... * Cn ^ (en * B),           

原创 POJ 3463 Dijkstra 次小生成樹及數量

題意:T組數據,每組數據給一個有向圖,以及起點和終點,求從起點到終點的最短路個數,加上長度爲(最短路長度+1)的路徑條數。 思路:Dijkstra             cnt[i][0] 表示到第i個節點的最短路條數, d[i][0]

原创 POJ 3164 有向圖的最小生成樹

題意:給出n個點以及每個點的座標,以及m條有向邊(邊權爲兩點距離),求一個最小生成樹,使1號點可以到達其它所有點。 思路:朱劉算法 1)找出除根節點外其它點 i 的最小入邊,將邊權 in[i] 加入答案 2)若找出的邊不構成環,輸出答案;

原创 POJ 3612 DP

題意:給出n根電線杆的高度和參數C,農夫約翰要在電線杆之間搭電話線,相鄰兩根電線杆搭線的花費爲 |h[i] - h[i+1]| * C, 現可以將電線杆擡高,擡高的的花費爲x * x,其中x爲擡高的高度。 思路:設dp[i][j]爲前i根

原创 POJ1811 PrimeTest Miller-Robin+Pollard-Rho

題意:T個數,若爲素數則輸出Prime,否則輸出其最小的質因子。 思路: (1)素數判定(Miller-Robin): 根據費馬小定理,有: a ^ (p - 1) % p = 1; 其中

原创 POJ 3904 容斥原理

題意:給n個數,求它們能夠組成的四元組(a, b, c, d)的個數,其中gcd(a, b, c, d) = 1。 思路:容斥原理求出不滿足要求的四元組個數,            比如若這n個數只有2,3,5三種質因數,設P[i]爲n個