1673: [Usaco2005 Dec]Scales 天平
来源:互联网 发布:苹果机下载软件 编辑:程序博客网 时间:2024/06/08 05:13
1673: [Usaco2005 Dec]Scales 天平
Time Limit: 5 Sec Memory Limit: 64 MBSubmit: 569 Solved: 215
[Submit][Status][Discuss]
Description
Farmer John has a balance for weighing the cows. He also has a set of N (1 <= N <= 1000) weights with known masses (all of which fit in 31 bits) for use on one side of the balance. He places a cow on one side of the balance and then adds weights to the other side until they balance. (FJ cannot put weights on the same side of the balance as the cow, because cows tend to kick weights in his face whenever they can.) The balance has a maximum mass rating and will break if FJ uses more than a certain total mass C (1 <= C < 2^30) on one side. The weights have the curious property that when lined up from smallest to biggest, each weight (from the third one on) has at least as much mass as the previous two combined. FJ wants to determine the maximum mass that he can use his weights to measure exactly. Since the total mass must be no larger than C, he might not be able to put all the weights onto the scale. Write a program that, given a list of weights and the maximum mass the balance can take, will determine the maximum legal mass that he can weigh exactly.
Input
* Line 1: Two space-separated positive integers, N and C.
* Lines 2..N+1: Each line contains a single positive integer that is the mass of one weight. The masses are guaranteed to be in non-decreasing order.
第2到N+1行:每一行仅包含一个正整数,即某个砝码的质量.保证这些砝码的质量是一个不下降序列
Output
* Line 1: A single integer that is the largest mass that can be accurately and safely measured.
一个正整数,表示用所给的砝码能称出的不压坏天平的最大质量.
Sample Input
1
10
20
INPUT DETAILS:
FJ has 3 weights, with masses of 1, 10, and 20 units. He can put at most 15
units on one side of his balance.
Sample Output
HINT
约翰有3个砝码,质量分别为1,10,20个单位.他的天平最多只能承受质量为15个单位的物体.用质量为1和10的两个砝码可以称出质量为11的牛.这3个砝码所能组成的其他的质量不是比11小就是会压坏天平
Source
Silver
#include<iostream>#include<cstdlib>#include<cstdio>#include<cmath>#include<cstring>#include<string>#include<climits>#include<algorithm>#include<queue>#include<map>#include<fstream>#define N 100using namespace std;typedef long long ll;ll a[N],n,ans=0,C;ll s[N];void dfs(ll u,ll val){if(val+s[u]<=ans)return;ans=max(ans,val);for(ll i=u;i;i--)if(val+a[i]<=C)dfs(i-1,val+a[i]);}int main(){//freopen("in.txt","r",stdin);//freopen("my.txt","w",stdout);scanf("%lld%lld",&n,&C);for(ll i=1;i<=n;i++){scanf("%lld",&a[i]);if(a[i]>C)n=i-1;else s[i]=s[i-1]+a[i];}dfs(n,0);printf("%lld\n",ans);}
- 1673: [Usaco2005 Dec]Scales 天平
- 1673: [Usaco2005 Dec]Scales 天平
- bzoj 1673: [Usaco2005 Dec]Scales 天平
- bzoj1673: [Usaco2005 Dec]Scales 天平
- 【bzoj1673】[Usaco2005 Dec]Scales 天平
- [bzoj1673][Usaco2005 Dec]Scales 天平
- bzoj 1673: [Usaco2005 Dec]Scales 天平(DFS)
- BZOJ 1673: [Usaco2005 Dec]Scales 天平 启发式搜索
- BZOJ1673: [Usaco2005 Dec] Scales 天平 【DFS】
- BZOJ 1673 USACO 2005 Dec Scales 天平
- bzoj1671 [Usaco2005 Dec]Knights of Ni 骑士
- bzoj 1731: [Usaco2005 dec]Layout 排队布局
- bzoj1671: [Usaco2005 Dec]Knights of Ni 骑士
- bzoj1672: [Usaco2005 Dec]Cleaning Shifts 清理牛棚
- bzoj1731/poj3169[Usaco2005 dec]Layout 排队布局
- 1671: [Usaco2005 Dec]Knights of Ni 骑士
- BZOJ1672: [Usaco2005 Dec]Cleaning Shifts 清理牛棚
- 【bzoj1731】[Usaco2005 dec]Layout 排队布局
- javascript 模块加载器——coolie
- linux之sed用法
- 线性回归
- 理解JavaScript 中hasOwnProperty()的作用
- SLAM第二篇:视觉里程计 | ExBot易科机器人实验室(高翔博士,Exbot)
- 1673: [Usaco2005 Dec]Scales 天平
- 机器学习非监督学习- kmeans算法
- Linux 命令---alias
- linux grep命令详解
- C++小记:C++实现简易单链表模板类,重载输出流“<<”。
- 微信开发学习记录:返回的图文消息看不到图
- JS学习47:transitionend 事件的折腾
- keyboard 26 letter mean
- webview透明看到下层的东西