日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

动态规划——硬币找零和币值最大化问题

發布時間:2024/9/30 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 动态规划——硬币找零和币值最大化问题 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、硬幣找零問題

1.問題

有面值為1元、3元和5元的硬幣若干枚,給定一個輸入面額,問如何采用最少的硬幣數目,得到當前面額

2.思路

找出狀態轉移方程,每次可以拿取1元、3元或者5元的硬幣,每次拿取,硬幣數加1,用d[v]表示當前面額為v的最小硬幣數目,

d[0]=0;? //硬幣數為0,不拿??

d[1]=d[1-1]+1 ;? ?//硬幣數為1,只能拿取1元的硬幣,相應的當前硬幣數加1

d[2]=d[2-1]+1;? ?//硬幣是為2,只能拿取1元的硬幣,相應的當前硬幣數加1

d[3]=d[3-1]+1 或者 d[3-3]+1;? ? //有兩種拿法,一種拿1元的,一種拿3元的,每次拿取硬幣數加1,要求最小數,比較兩種的硬幣數目,分別為3和1,因此采取第二種拿法,d[3]=min{d[3-1]+1,d[3-3]+1}

d[5]=d[5-1]+1、d[5-3]+1、d[5-5]+1,三種拿法,d[5]=min{d[3-1]+1,d[3-3]+1,d[5]=d[5-5]+1},最小數目為1

.........以此類推

d[v]=min{d[v-1]+1,d[v-3]+1,d[v-5]+1},其中v>=0,v<0時,不算入硬幣數

3.代碼如下所示

public class Main {public static int way(int d[],int n){for (int i = 1; i <=n ; i++) {int k1=Integer.MAX_VALUE,k3=Integer.MAX_VALUE,k5=Integer.MAX_VALUE;if (i-1>=0) //拿取面值為1的硬幣,面額減1,數量相應的加1k1=d[i-1]+1;if (i-3>=0) //拿取面值為3的硬幣,面額減3,數量相應的加1k3=d[i-3]+1;if (i-5>=0) //拿取面值為5的硬幣,面額減5,數量相應的加1k5=d[i-5]+1;//得到當前組成面額的最少硬幣數int min1=Math.min(k1,k3);d[i]=Math.min(min1,k5);System.out.println("面值為"+i+"最少硬幣數為:"+d[i]);}return d[n];}public static void main(String[] args) {Scanner sc=new Scanner(System.in);int n=sc.nextInt();int d[]=new int[n+1];int k=way(d,n);System.out.println("最少硬幣數量為:"+k);} }

4.實驗結果

輸入15

二、幣值最大化問題

1.題目

給定一排n枚硬幣,面值為正整數c1,c2,...,cn,面值可能相同,請問如何選取硬幣,可以使得在其原始位置不相鄰的條件下。所選幣值總和最大

2.思路

c[i]為第i個硬幣的面值,定義一個d[i],代表從開始位置到第i個硬幣當前最大的幣值總和,那么對于第i個位置的硬幣,根據不相鄰的選擇,只有兩種選擇,一種是選取它,則轉變為求它前i-2位置的幣值最大和問題,d[i]=d[i-2]+c[i],另外一種是不選取它,則轉變為求它前i-1位置的幣值最大和問題,相應的d[i]=d[i-1],則狀態轉移方程為:
d[i]=max{d[i-2]+c[i],d[i-1]}

3.代碼

public class Main {public static int way(int c[],int n,int d[]){if (n<2) //長度小于2的話,直接返回結果return d[n];d[0]=0;//第0個位置為0d[1]=c[1]; //第一個位置就為第一個位置硬幣的面值for (int i = 2; i <=n ; i++) {d[i]=Math.max(d[i-2]+c[i],d[i-1]); //狀態轉移方程System.out.println("當前位置為"+i+"的最大硬幣和為:"+d[i]);}return d[n];}public static void main(String[] args) {Scanner sc=new Scanner(System.in);int n=sc.nextInt();int c[]=new int[n+1];int d[]=new int[n+1];for (int i = 1; i <= n; i++) {c[i]=sc.nextInt();}int max_sum=way(c,n,d);System.out.println(max_sum);} }

4.結果

總結

以上是生活随笔為你收集整理的动态规划——硬币找零和币值最大化问题的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 免费看成人啪啪 | 亚洲成人日韩在线 | 国产手机在线视频 | 男人的天堂a在线 | 亚洲av永久无码精品国产精品 | 免费看黄色小视频 | 欧美一区二区高清视频 | 69人妻一区二区三区 | 免费观看国产精品视频 | 91丝袜在线 | 国产不卡在线观看 | 欧美精品中文 | 欧美性猛交xxxx乱大交俱乐部 | 激情亚洲视频 | av777777| 精品人妻一区二区三区四区久久 | 久久网站免费观看 | 国产一区二区高清 | 特黄aaaaaaaaa毛片免 | 欧美极品在线播放 | 国产传媒国产传媒 | 免费爱爱网站 | 一级黄色片免费 | 国产成人精品白浆久久69 | 亚洲性一区 | 亚洲av无码专区在线 | 99久久国产综合 | 国产男女猛烈无遮挡免费观看网站 | 大肉大捧一进一出好爽视频动漫 | 热播网| 大肉大捧一进一出视频 | 亚洲在线观看一区 | h片在线免费看 | 欧美色涩在线第一页 | 91插视频 | 特级少妇 | 日本大胆人体视频 | 国产精品久久久无码一区 | 成人涩涩网 | 巨乳在线播放 | 亚洲精品国产日韩 | 老司机在线免费视频 | 麻豆视频在线 | 国产精品传媒视频 | 四虎成人精品永久免费av九九 | 中日毛片 | 国产成人午夜精华液 | 久久精品视频一区 | 夜夜嗨av一区二区三区网页 | 欧美理论在线观看 | 欧美一区二区三区久久 | 日韩女优在线观看 | 欧美在线观看网站 | 蜜桃av在线看 | 印度午夜性春猛xxx交 | 欧美不卡视频在线观看 | 呦呦色| 成人国产一区二区三区精品麻豆 | 亚洲精品在线中文字幕 | 中文字幕乱码在线人视频 | 番号动态图 | 在线欧美国产 | 国产精品人成在线观看免费 | 精品国产乱码久久久人妻 | 男女一级特黄 | 亚洲AV成人无码久久 | 天天射天天干天天 | 欧美日韩不卡视频 | 高清国产mv在线观看 | 三级黄色网络 | 中文字幕精品在线 | 国产a一区二区三区 | 精品人妻伦一二三区久 | 天堂中文资源在线 | 免费亚洲精品 | 狂野欧美性猛交xxxx | 亚洲精品一区二区三区四区乱码 | 久草国产在线视频 | 91精品国产色综合久久不8 | 国产在线xx | 日韩精品偷拍 | 欧美理论片在线观看 | 91看视频| 黄色.com | 狠狠操夜夜爽 | 久久婷婷综合色丁香五月 | 噜噜色成人 | 99国产精品久久久久久久久久久 | 亚洲精品6 | 日韩精品久久久久久久酒店 | 亚洲永久精品视频 | 国产欧美一区二区精品久久久 | 香蕉视频久久久 | 成人一二三 | 你懂的在线网站 | 午夜黄色小视频 | 99在线成人精品视频 | 捆绑裸体绳奴bdsm亚洲 | 中文黄色片 |