原创 hdoj 1028 Ignatius and the Princess III(母函數)

【題目大意】:給出一個數,問一個數可以劃分成多少個數的和,其中4=1+3,4=3+1,視爲一種。 【解題思路】:典型的普通母函數,其一般問題是(把n個相同的球放入n個相同的盒子,每個盒子可以爲空) 【代碼】: 普通母函數模版測試:

原创 hdoj 4196 Remoteland(篩素數+奇偶判斷)

【題目大意】:找一個數D,是一個平方數,且他是由<=n中的若干個數構成。D要儘可能大,求D是多少。答案mod  1000000007 【解題思路】.:這道題兜了一個大圈,其實寫寫就會發現其實是找一個最大的平方數使得這個數是n!的除數。。

原创 zoj 2872 Binary Partitions(簡單遞推)

【題目大意】:把一個數拆成若干個2的冪的和,問有幾種拆法。 【解題思路】:遞推,當一個數是奇數的時候,沒辦法,它只能從它前面的那個偶數加個1轉移過來。當一個數是偶數的話,可以由它前一個數+1轉移過來,也可以是它的一半轉移過來,因爲偶數換

原创 hdoj 2069 Coin Change(母函數)

【題目大意】:有1,5,10,25,50五種硬幣,和一個價值n,問由總數不超過100的五種硬幣有多少種方式可以組成價值n 【解題思路】:母函數,總數有了限制,就加多了一維,每一次轉的時候,判斷總數是否超過100即可。 【代碼】: #

原创 zoj 1136 Multiple(數學+bfs)

【題目大意】:給你一個數n,以及m個數字,找一個最小的n的倍數,使得這個數僅由m個數字中的任意個組成。 【解題思路】:易知,a%n=x (a*10+b)%n=(x*10+b)%n。然後bfs掃過去就可以了,注意記錄餘數,和餘數的判重。

原创 poj 1221 UNIMODAL PALINDROMIC DECOMPOSITIONS(母函數)

【題目大意】:給出一個數n,把它拆分成若干個數的和,要求最大的數在中間並向兩邊非遞增。問拆法有多少種。 【解題思路】:母函數。枚舉中間的那一個數,因爲左右對稱,所以只需要求左邊部分的方案即可。注意,左右兩部分的取數必須小於中間的數,中間

原创 poj 3080 Flying Right(貪心+優先隊列)

【題目大意】:有一架坐位固定的飛機,每天早上從1號點飛到N號點,晚上從N號點飛回上號點,中途有些點會有人上飛機,在保證不超載的情況下求一天下來,能載的最多乘客數。 【解題思路】:對於每一個起飛站點,儘可能的放入人,遇到放不下的情況就踢除

原创 zoj 1095 Humble Numbers(醜數+dp)

【題目大意】:將一些僅含有因子2,3,5,7的數是Humble Number,給出一個n,輸出第n個Humble Numbers 【解題思路】:醜數的類型題。可用dp解。                             我們用u

原创 hdoj 4195 Regular Convex Polygon(餘弦定理+正凸多邊形性質)

【題目大意】:給你三個頂點,這三個點是一個正多邊形上的頂點,問該正多邊形的頂點有幾個。 【解題思路】:三個點,三角形-->外接圓-->必定也是該凸多邊形的外接圓-   設頂點數爲i,我們只要知道,三角形任意兩點所對應的圓心角是否是2pi

原创 hdoj 2152 Fruit(母函數)

【題目大意】:給出n種水果,從中選m個,其中每種水果要求不少於x個且不多於y個。問有幾種方法 【解題思路】:普通母函數,改變一下取數的範圍就可以了 【代碼】: #include <iostream> #include <cstdio

原创 SicilyOJ(SOJ) 5228 Generic Cow Protests(dp+離散化+樹狀數組優化)

【題目大意】:給出n個數,現在可以按順序隨意的把n個數劃分成任意部分,問使得每一部分的和均不小於0的劃分方式有多少種。 【解題思路】:dp的轉移方程很顯然,dp[i]表示前i個數,對其進行任意劃分之後滿足題設的種類有多少種。則dp[j]

原创 zoj 2760 How Many Shortest Path(Floyd+枚舉判邊是否在最短路上+最大流)

【題目大意】:給出n個點,和n*n的矩陣表示有向圖。maz[i][j]爲-1表示i到j沒有路徑;不爲-1則表示i到j的路徑長度。給出一個s和t,要求s到t的沒有公共邊的最短路有多少條?如果s和t重合輸出inf。 【解題思路】:用floy

原创 hdoj 1709 The Balance(母函數)

【題目大意】:給出一些砝碼,可以放在天秤的兩邊,問有[1,sum]中有哪些重量是不可稱出來的 【解題思路】:母函數,這裏比較特殊的一點是砝碼可以放在天枰的左右兩端,我們可以在c2[j+k]+=c1[j]後加多一句c2[abs(j-k)]

原创 hdoj 1398 Square Coins(母函數)

【題目大意】:給出一個數,問可以拆成多少個x^2數的和,其中x<=17 【解題思路】:母函數,跟hdoj 1028一樣 【代碼】: #include <iostream> #include <cstdio> #include <cs

原创 zoj 3077 Move to Baggage Office(離散化處理+揹包dp)

【題目大意】:一個人有能量s,現在有n件物品,每件物品有價值v,現在把這件物品要消耗能量x,搬完這件物品能回覆能量y。問最多可以搬動多少物品。 【解題思路】:揹包是明顯的....但是也是明顯錯誤的...因爲我可能拿了A之後拿不了B,但是