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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

天平

發布時間:2025/3/15 编程问答 17 豆豆
生活随笔 收集整理的這篇文章主要介紹了 天平 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Description
FJ有一架用來稱牛的體重的天平。與之配套的是N(1<=N<=40)個已知質量的砝碼(所有砝碼質量的數值都在31位二進制內)。每次稱牛時,他都把某頭奶牛安置在天平的某一邊,然后往天平另一邊加砝碼,直到天平平衡,于是此時砝碼的總質量就是牛的質量(FJ不能把砝碼放到奶牛的那邊,因為奶牛不喜歡稱體重,每當FJ把砝碼放到她的蹄子底下,她就會嘗試把砝碼踢到FJ臉上)。天平能承受的物體的質量不是無限的,當天平某一邊物體的質量大于C(1<=C<2^30)時,天平就會被損壞。
砝碼按照它們質量的大小被排成一行。并且,這一行中從第3個砝碼開始,每個砝碼的質量至少等于前面兩個砝碼(也就是質量比它小的砝碼中質量最大的兩個)的質量的和。
FJ想知道,用他所擁有的這些砝碼以及這架天平,能稱出的質量最大是多少。由于天平的最大承重能力為C,他不能把所有砝碼都放到天平上。
現在FJ告訴你每個砝碼的質量,以及天平能承受的最大質量。你的任務是選出一些砝碼,使它們的質量和在不壓壞天平的前提下是所有組合中最大的。

Input
第1行: 兩個用空格隔開的正整數,N和C。
第2…N+1行: 每一行僅包含一個正整數,即某個砝碼的質量。保證這些砝碼的質量是一個不下降序列。

Output
第1行: 一個正整數,表示用所給的砝碼能稱出的不壓壞天平的最大質量。

Sample Input
3 15
1
10
20

Sample Output
11

Data Constraint

Hint
【樣例說明】
FJ有3個砝碼,質量分別為1,10,20個單位。他的天平最多只能承受質量為15個單位的物體。用質量為1和10的兩個砝碼可以稱出質量為11的牛。這3個砝碼所能組成的其他的質量不是比11小就是會壓壞天平。

.
.
.
.
.
分析
一眼就能看出來用深搜,但純深搜必然會超時,那么我們要剪枝
從后往前搜,枚舉選和不選
如果現在質量超過了返回,如果剩下的砝碼質量加上當前的數量還不夠最優答案,返回

.
.
.
.
程序:

#include<iostream> #include<cstdio> #include<cstring> using namespace std; int n; long long c,ans=0,a[100],sum[100];void dfs(int wz,long long s) {if (s>ans) ans=s;if (s+sum[wz]<=ans) return; if (wz<1) return;for (int i=wz;i>=1;i--)if (s+a[i]<=c) dfs(i-1,s+a[i]); }int main() {scanf("%d%lld",&n,&c);int js=0;for (int i=1;i<=n;i++){scanf("%lld",&a[i]);sum[i]=sum[i-1]+a[i];}dfs(n,0);printf("%lld",ans);return 0; }

轉載于:https://www.cnblogs.com/YYC-0304/p/10458943.html

總結

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

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