tyvj p1340 送礼物
来源:互联网 发布:人力资源大数据分析 编辑:程序博客网 时间:2024/04/28 08:14
时间: 1000ms / 空间: 131072KiB / Java类名: Main
描述
作为惩罚,GY被遣送去帮助某神牛给女生送礼物(GY:貌似是个好差事)但是在GY看到礼物之后,他就不这么认为了。某神牛有N个礼物,且异常沉重,但是GY的力气也异常的大(-_-b),他一次可以搬动重量和在w(w<=2^31-1)以下的任意多个物品。GY希望一次搬掉尽量重的一些物品,请你告诉他在他的力气范围内一次性能搬动的最大重量是多少。
输入格式
第一行两个整数,分别代表W和N。
以后N行,每行一个正整数表示G[i],G[i]<= 2^31-1。
输出格式
仅一个整数,表示GY在他的力气范围内一次性能搬动的最大重量。
测试样例1
输入
20 5
7
5
4
18
1
输出
19
备注
对于20%的数据 N<=26
对于40%的数据 W<=2^26
对于100%的数据 N<=45 W<=2^31-1
【分析】
折半搜索。
然而中间二分一直挂。
【代码】
//tyvj 1340 送礼物 #include<cstdio>#include<cstring>#include<algorithm>#define ll long long#define M(a) memset(a,0,sizeof a)#define fo(i,j,k) for(i=j;i<=k;i++)using namespace std;int n,tp=0,tp2,ans;long long w;int a[49],cun[9000001];bool vis[49];inline int max(int x,ll y) {if(x>y) return x;return y;}inline int read(){ int x=0,f=1;char ch=getchar(); while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();} while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();} return x*f;}inline bool cmp(int x,int y) {return x>y;}inline void dfs(int l,int r,ll now){ int i,j; if(now>w) return; cun[++tp]=now; fo(i,l,r) dfs(i+1,r,(long long)now+a[i]);}inline void dfs2(long long now,int step,int dep){ if (now>w) return ; if (step>dep) { int l=1,r=tp; while (l<r) { int mid=(l+r)/2+1; if ((long long)now+cun[mid]>w) r=mid-1; else l=mid; } long long tmp=(long long)now+cun[l]; if (tmp>w||tmp<0) return ; ans=max(ans,tmp); return; } dfs2(now+a[step],step+1,dep); dfs2(now,step+1,dep);}int main(){ int i,j; w=read();n=read(); fo(i,1,n) a[i]=read(); int mid=n/2; dfs(1,n/2,0); sort(cun+1,cun+tp+1); dfs2(0,n/2+1,n); printf("%d\n",ans); return 0;}
1 0
- tyvj p1340 送礼物
- 送礼物
- 送礼物
- 【JSOI2015】送礼物
- [SMOJ1176]送礼物
- 谁在圣诞节送礼物?
- 送礼物送什么好
- [单调队列] gift 送礼物
- tyvj1340送礼物 折半枚举
- 现身说法,如何给上司送礼物
- 2010年结婚送礼物攻略!
- usaco Greedy Gift Givers (送礼物)
- 公众号微信支付直播室送礼物
- 濮阳,明天母亲节,怎么送礼物?团购送礼物。相关资料。20160507
- TYVJ
- 洛谷P1340 兽径管理
- luogu P1340 兽径管理
- 男女之间互送礼物的含义大全 别送错了
- 《JavaScript学习指南》阅读笔记1(160913)
- [2]-Mysql
- Java输入输出流详解
- lspci
- Accp7.0第12章课后题第5题参考答案
- tyvj p1340 送礼物
- jar包转换成在别的没有配置jdk的电脑"独立"运行的exe文件
- 王爽汇编实验9
- 搭建samba共享服务器
- 自定义view实现下拉缩放顶部imageview banner和上拉加载
- 关于LinkedHashMap实现LRU缓存算法
- pinpoint源码分析--第一节 安装与说明
- SSM框架使用POI技术导出Excel表
- 面试题之用两个栈实现一个队列