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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

洛谷 1658 购物

發布時間:2025/4/16 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 洛谷 1658 购物 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

              洛谷 1658 購物

題目描述

你就要去購物了,現在你手上有N種不同面值的硬幣,每種硬幣有無限多個。為了方便購物,你希望帶盡量少的硬幣,但要能組合出1到X之間的任意值。

輸入輸出格式

輸入格式:

第一行兩個數X、N,以下N個數,表示每種硬幣的面值。

【數據規模】

對于30%的數據,滿足N≤3,X≤20;

對于100%的數據,滿足N≤10,X≤1000.

輸出格式:

最少需要攜帶的硬幣個數,如果無解輸出-1.

輸入輸出樣例

輸入樣例#1:?
20 4 1 2 5 10 輸出樣例#1:?
5
題解:
這道題我記得我們之前考過,當時傻,所以并不會。就騙了三十分,hhh。
當時是我們區學長出的題,其實我們區除了hmq之外的學長都是挺有人性的。
這道題主要是用到了貪心的思想,

每一次都要在找到比當前該湊數錢小的最大面值數,這樣就可以在錢幣數量相同的情況下可拼湊價值最大。
代碼:
1 #include<iostream> 2 #include<cstdio> 3 #include<algorithm> 4 const int maxn=1005; 5 int i,j,n,x,s[maxn],ans,sum; 6 int main() { 7 std::cin>>x>>n; 8 for(i=0; i<n; i++) std::cin>>s[i]; 9 std::sort(s,s+n); 10 if(s[0]!=1) { 11 puts("-1");return 0; 12 } 13 while(sum<x) { 14 for(i=n-1; i>=0; i--) 15 if(s[i]<=sum+1) break; 16 ans++;sum+=s[i]; 17 } 18 printf("%d\n",ans); 19 return 0; 20 } View Code

?

?

轉載于:https://www.cnblogs.com/GTBA/p/9102077.html

總結

以上是生活随笔為你收集整理的洛谷 1658 购物的全部內容,希望文章能夠幫你解決所遇到的問題。

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