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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

hdu1353 小暴力

發布時間:2025/6/17 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 hdu1353 小暴力 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題意:
? ? ? 題意是給你一個數,然后你有0.25,0.1,0.05,0.01的四種面額若干,讓你求出最小的錢幣紙張。

思路:

? ? ? 對于這種題目要自己觀察兩樣東西,一個是四種面額之間的關系,兩一個就是數據范圍,這個題目雖然說每個面額最多100張,但是自己算算根本不會全都達到這個數目,最大的總金額是5元=20*0.25=50*0.1,說到這懂了吧,直接暴力就行了,對于這樣的題目,如果總金額不是5元,是更大的數怎么辦呢?之前見過一個暴力過不去的,但是他給的四個貨幣是 10 5 1 0.1 這四個,前面的是后面的任意一個的整數倍,這樣的我們可以直接貪心去弄,如果是求最小就從大到小,能用就用,如果是求最多貨幣,那么還是從大到小,能不用就不用。

#include<stdio.h> int main () {int a ,b ,c ,d ,aa ,bb ,cc ,dd ,min;double num;while(~scanf("%lf %d %d %d %d" ,&num ,&a ,&b ,&c ,&d)){int t = int(num / 0.25 + 1);if(a > t) a = t;t = int(num/0.1 + 1);if(b > t) b = t;aa = bb = cc = dd = -1;min = 1000000000;for(int i = 0 ;i <= d && aa == -1;i ++)for(int j = 0 ;j <= c && aa == -1;j ++)for(int k = 0 ;k <= b && aa == -1;k ++)for(int w = 0 ;w <= a && aa == -1;w ++){if(i * 0.01 + j * 0.05 + k * 0.1 + w * 0.25 == num){if(min > i + j + k + w){min = i + j + k + w;aa = w ,bb = k ,cc = j ,dd = i;}}}aa == -1 ? puts("NO EXACT CHANGE"):printf("%d %d %d %d\n" ,aa ,bb ,cc ,dd);}return 0; }

總結

以上是生活随笔為你收集整理的hdu1353 小暴力的全部內容,希望文章能夠幫你解決所遇到的問題。

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