原创 一鍋亂燉【數論】

1、斐波那契數列 F(n)=F(n-1)+F(n-2) F(n) =  2、最大公約數、最小公倍數 3、歐拉函數 點贊 收藏 分享 文章舉報 by_luoluo 發佈了22

原创 HDU Steps 2.2.1

參考:http://blog.csdn.net/niushuai666/article/details/7013352 -----------------------------------------------------------

原创 最短路模版

/* Bellmam_Ford 僞代碼: Bellman-Ford(G,w,s) :boolean //圖G ,邊集 函數 w ,s爲源點 for each vertex v ∈ V(G)

原创 HDU1005 Number Sequence(規律題)

f[i] 的值由 f[i-1] 和 f[i-2] 求出,而f[i]的值只取0~6,因此該數列是循環的,週期<=49。 奇怪的地方(暫時弄不懂,mark着): RE代碼 #include<stdio.h> int main() { int

原创 POJ3014 Cake Pieces and Plates DP

雖說是DP入門題,但第一次要理解還是會花很大的勁。 dp[i][j]表示j塊蛋糕放在i個盤子上的方法數,可有盤子是空的。 ①若i==j 當盤子有空,問題可轉化爲dp[i-1][j] (i-1保證了至少有一個盤子是空); 當盤子全滿,只有一

原创 HDU 1058 Humble Number DP

好好做專題系列= = DP第一題 【題意】因子只有{2、3、5、7}中一個或多個的數稱爲Humble Number,從小到大將它們排成數列,求第n個Humble Number。 這是前20個Humble Number {1, 2, 3,

原创 HDU 1018 Big Number

wiki: 斯特靈公式是一條用來取n階乘近似值的數學公式。一般來說,當n很大的時候,n階乘的計算量十分大,所以斯特靈公式十分好用,而且,即使在n很小的時候,斯特靈公式的取值已經十分準確。 公式爲: 這就是說,對於足夠大的整數n,這兩個數

原创 HDU 2546 飯卡 DP

題意顯而易見,不過一個細節看走眼奉獻了1WA 【分析】 (1)初始餘額m小於5,直接輸出m (2)初始餘額大於5: 找出最貴的菜,與最末的元素交換位置 然後轉化爲01揹包問題 選擇令前n-1種菜之和最接近m-5,然後餘額減去最大價值的菜即

原创 stirling

/*Stirling第一類數 #include<cstdio> #define N 20 __int64 mul[N+1], a[N+1][N+1]; void Solve() { mul[1] = 1; for(__int64 i

原创 a4

#include<stdio.h> #define N 100 #define INF 100000000 struct PCB { int id;//標誌數 int priority;//優先數 int cputime;//已佔用

原创 HDU 1160 FatMouse's Speed DP

簡單DP,最長遞減子序列,要保存路徑 矬代碼獻上: #include <stdio.h> #include <stdlib.h> #define N 1005 struct Mouse { int w,s; int id,pre

原创 POJ 1159 Palindrome dp

//題意:求至少添加多少個元素使原字符串構成迴文 //思路:將原字符串翻轉,兩字符串求最長公共子串,然後爲每個沒匹配到的字符在相應對稱的位置添加一個元素即可, //結果是n - Lcs.size //因爲開dp[5000][5000]超

原创 hdu 2141 二分查找

省賽跪在二分上= =,抓狂!!! 好吧,惡補基礎,找些二分的來做做。 數據比較大~用二分都擔心會超時,但它還是過了~~ 方法比較暴力,先把兩個數列合併爲一個數列。 怎樣合併?枚舉= =,n平方。 然後得出兩個數列,先給合併的數列排序。

原创 hdu 1969 二分查找

比較奇葩的二分: 【題意】N塊派(F+1)個分,每塊派的半徑爲r1~rn,分派條件是每個人必須相等並且派是一塊的(可由一塊分出,但不能兩塊拼湊)。求沒人分得的派的最大面積。 用n塊面積的總和除以F+1得最大每人可能分得的派max,於是從0

原创 卡特蘭數|斯特靈數

/* 卡特蘭數 1, 1, 2, 5, 14, 42, 132, 429, 1430, 4862, 16796, 58786, 208012, 742900, 2674440, 9694845, 35357670, 129644790,