硬幣找零(動態規劃)
#include "stdlib.h"
#define N 63
void GetChange(int n,int j,int m[],int c[][N] )
{
/*下標從1開始*/
int Max=10000;
int k,i,t;
int b[5]={0}; /*最好作為一個引數*/
for( i=1;i<=n;i++)
c[i][0]=0;
for(i=1;i<=j;i++)
{
if(i>=m[1])
{
c[1][i]=(i%m[1]==0)?i/m[1]:Max;
}
else
c[1][i]=Max;
}
for( i=2;i<=n;i++)
{
for(k=1;k<=j;k++)
{
if(k>=m[i])
{
c[i][k]=min (c[i][k-m[i]]+1,c[i-1][k]);
c[i][k]=min (c[i][k],Max);
}
else
{
c[i][k]=c[i-1][k];
}
}
}
k=j;
t=n;
if(c[t][k]<Max )
{
while(k>0)
{
if(c[t][k]==c[t-1][k]) t--;
else
{
b[t]++;
k-=m[t];
}
}
for(k=1;k<=n;k++)
{
printf("%d:%d ",m[k],b[k]);
}
printf("/n");
}
}
void main()
{
int m[]={0,2,3,5,8} ;
int n=5,j=13,c[6][N];
int i;
for(i=13;i<40;i++)
GetChange(n,i,m,c);
}
相關推薦
硬幣找零(動態規劃)
#include "stdlib.h"#define N 63 void GetChange(int n,int j,int m[],int c[][N] ) { /*下標從1開始*/ int Max=10000; int k,i,t; int b[5]={0
最少硬幣找零問題-動態規劃
動態規劃把問題分為子為題,解決了這些子問題,再把子問題合併起來,便可以得到問題的解。在解決子問題過程中,需要把子問題的解儲存起來方便後面使用。 最少硬幣找零問題為:給予不同面值的硬幣若干種種(每種硬幣個數無限多),用若干種硬幣組合為某種面額的錢,使硬幣的的個數最少。
硬幣找零問題(動態規劃)
硬幣找零(動態規劃) 問題介紹 給定指定的硬幣種類,面值為 1, 3, 5(在此具體化些),給定所找零的錢數 sum,給出最少的硬幣找零數,每個種類的硬幣無限使用。 問題分析 看到這問題,當時我想到用貪心演算法來求解,最後求解方案因為巧合對了,後來在網上看到動態
(java)找出陣列中和為K的一組解(動態規劃)
考慮N個數的陣列A中是否存在和為K的解,可以分為考慮(N-1個數中是否有和為K的解)或者(N-1個數中是否有和為K-A[N-1]的解(解包含A[N-1]的情況))。也就是說,動態規劃方程是:P[N][K]=P[N-1][K]||P[N-1][K-A[N-1]];直接上程式碼:
投擲硬幣(動態規劃)
#1506 : 投擲硬幣 時間限制:10000ms 單點時限:1000ms 記憶體限制:256MB 描述 小Hi有一枚神奇的硬幣。已知第i次投擲這枚硬幣時,正面向上的概率是P
hud2059龜兔賽跑(動態規劃)
n+1 動物 include output script text sam 起跑線 other 龜兔賽跑 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)T
ship(動態規劃)
動態規劃 輸出 一個 子序列 升序 端點 如果 2個 長度 (ships.pas/c/cpp) 來源:《奧賽經典》(提高篇)【問題描述】PALMIA國家被一條河流分成南北兩岸, 南北兩岸上各有N個村莊。 北岸的每一個村莊有一個唯一的朋友在南岸,且他們的朋友村莊彼此不同。每一
計蒜客--爬樓梯 (動態規劃)
tle nbsp vector main long 3.1 false n) 方法 假設你現在正在爬樓梯,樓梯有 nn 級。每次你只能爬 11 級或者 22 級,那麽你有多少種方法爬到樓梯的頂部? 輸入格式 第一行輸入一個整數 n(1\leq n \leq 50)n
【算法學習】雙調歐幾裏得旅行商問題(動態規劃)(轉)
png .com 16px 我們 pan 子結構 最小 而且 復雜度 雙調歐幾裏得旅行商問題是一個經典動態規劃問題。《算法導論(第二版)》思考題15-1和北京大學OJ2677都出現了這個題目。 旅行商問題描述:平面上n個點,確定一條連接各點的最短閉合旅程。這個解的一般形式
(動態規劃)4977:怪盜基德的滑翔翼
受傷 問題 while 超級 ret 輸入數據 col std namespace 描述 怪盜基德是一個充滿傳奇色彩的怪盜,專門以珠寶為目標的超級盜竊犯。而他最為突出的地方,就是他每次都能逃脫中村警部的重重圍堵,而這也很大程度上是多虧了他隨身攜帶的便於操作的滑翔翼。 有一天
(動態規劃)4978:寵物小精靈之收服
能夠 出了 哪些 整數 範圍 -- power 必須 方程 描述 寵物小精靈是一部講述小智和他的搭檔皮卡丘一起冒險的故事。 一天,小智和皮卡丘來到了小精靈狩獵場,裏面有很多珍貴的野生寵物小精靈。小智也想收服其中的一些小精靈。然而,野生的小精靈並不那麽容易被收服。對於每一個野
(動態規劃)6049:買書
動態 種類 blog namespace iostream sin += out bsp 描述 小明手裏有n元錢全部用來買書,書的價格為10元,20元,50元,100元。 問小明有多少種買書方案?(每種書可購買多本) 輸入 一個整數 n,代表總共錢數。(0 <=
decode-ways(動態規劃)
mine nta sage 方法 表示 subst nco ssa 嘗試 題目描述 A message containing letters fromA-Zis being encoded to numbers using the following map
Triangle(動態規劃)
ret from 新的 選擇 位置 ive 一個 top 原理 題目描述 Given a triangle, find the minimum path sum from top to bottom. Each step you may move to adjacent
【WC2001】【cogs358】高性能計算機(動態規劃)
結束 輸入輸出 計算機 stdout 所有 主存 時間 span 要花 【WC2001】【cogs358】高性能計算機(動態規劃) ##題面 【問題描述】 現在有一項時間緊迫的工程計算任務要交給你——國家高性能並行計算機的主管工程師——來完成。為了盡可能充分發揮並行計算機的
【BZOJ1899】午餐(動態規劃)
需要 記錄 表示 列隊 其中 truct ble read namespace 【BZOJ1899】午餐(動態規劃) 題面 BZOJ 題解 我太弱了 這種\(dp\)完全做不動。。 首先,感性理解一些 如果所有人都要早點走, 那麽,吃飯時間長的就先吃 吃飯時間短的就晚點吃
【BZOJ2998】Problem A(動態規劃)
gpo pre com space main ostream 最大 == while 【BZOJ2998】Problem A(動態規劃) 題面 BZOJ 題解 一個人的成績範圍可以確定為一個區間 這樣就變成了 選擇若幹區間,不重合, 每個區間有個權值,求最大權值和 這樣就可
ALGO-3 K好數(動態規劃)
con 正整數 const 方程 自然 自然數 include 由於 can 問題描述 如果一個自然數N的K進制表示中任意的相鄰的兩位都不是相鄰的數字,那麽我們就說這個數是K好數。求L位K進制數中K好數的數目。例如K = 4,L = 2的時候,所有K好數為11、13、20
ALGO-17 乘積最大(動態規劃)
最大乘積 插入 ont return 沒有 主持人 temp 國際 規劃 問題描述 今年是國際數學聯盟確定的“2000——世界數學年”,又恰逢我國著名數學家華羅庚先生誕辰90周年。在華羅庚先生的家鄉江蘇金壇,組織了一場別開生面的數學智力競賽的活動,你的一個好朋友XZ也有
【題解】 bzoj4033: [HAOI2015]樹上染色* (動態規劃)
規劃 math online 4.2 pro php 白色 AD truct bzoj4033,懶得復制,戳我戳我 Solution: 定義狀態\(dp[i][j]\)表示\(i\)號節點為根節點的子樹裏面有\(j\)個黑色節點時最大的貢獻值 然後我們要知道的就是子節點到