uva 10313 母函式性質 dp

2021-06-29 13:22:13 字數 837 閱讀 4409

題意:

有價值1到300的硬幣,現在給乙個面值。

若給乙個數字a,則計算用a或者更少硬幣得到這個面值的方法數;

若給倆數字a,b,則計算用a到b範圍內去湊這個面值的方法數。

解析:用到了母函式的乙個性質,整數n拆分成最大數k的拆分數,和數n拆分成k個數的和的拆分數相等。

證明用到了ferrers圖。

已經被這個結論繞進去了。

換到這題來講,就是用不超過k個硬幣湊出面值n的方案總數,和用面值不超過k的硬幣湊出面值n的方案總數相同。

dp[i][j]表示用面值不超過j的硬幣湊出面值i的方案數,當使用面值j,f[i - j] [j];若不使用j,則對應方案種數為f[i][j - 1]。

**:

#include #include #include #include #include #include #include #include #include #include #include #include #define ll long long

using namespace std;

const int maxn = 300 + 10;

const int inf = 0x3f3f3f3f;

const double eps = 1e-8;

const double pi = 4 * atan(1.0);

const double ee = exp(1.0);

ll dp[maxn][maxn];

char s[maxn];

void init()

}}int main()}}

return 0;

}

UVA 木塊問題 101

uva 木塊問題 101,好開森好開森。雖然花了很長時間,不過能一次就ac也是蠻開心的,用c 寫效率就是不錯 疊木塊其實是乙個二維空間,每個木塊都有縱橫座標 include include includeusing namespace std block用於記錄木塊所在位置,x是位於哪一疊木塊,y是...

UVA 非常可樂

include include include include include using namespace std struct node int vis 205 205 注意vis陣列用於 int s,n,m int cup left 3 記錄三個杯子中每個杯子的剩餘狀態 int bfs fo...

UVa百題總結

總算刷夠 演算法競賽入門經典 100題了,就像教主所說,有了練acm的誠意,受自身水平和眼界所限,這總結難免會有一些個人色彩和不正確的地方,大牛勿噴。另外我的文筆可能極其拙劣,將就著看吧。按照教主的進度安排,最理想的情況是寒假學完前八章,下學期開始學動態規劃 數學和圖論的基礎,為暑假集訓打下基礎。暑...