codeforce 812CSagheer and Nubian Market(二分查找)
来源:互联网 发布:the rain 久石让 知乎 编辑:程序博客网 时间:2024/06/05 18:34
题目链接:http://codeforces.com/problemset/problem/812/C
写在前面:快期末了,这几天又是忙忙碌碌,但是感觉没做什么事情,好几天了啊。。。。一直没补题,感觉要爆炸,下午来补下吧。
题目大意:题目就是说 有n个货物,你有m元钱,你要用这m元钱在他的规则下买尽量多的货物,第一眼看起来题目很水,但是仔细一想,如果你用朴素的方法一个一个查找的话,肯定就会T掉,所以就可以用到二分查找的方法来优化一下。
个人心得:一般来说,让你寻找合适的值,在看似暴力的情况下,要用二分!!!!
代码:
#include<iostream>#include<cstdio>#include<algorithm>using namespace std;#define ll long longconst int maxn = 1e5+10;ll a[maxn];ll b[maxn];int main(){ ll n,m; while(~scanf("%lld%lld",&n,&m)){ for(ll i=1;i<=n;i++) scanf("%lld",&a[i]); ll ans=0,l=1,r=n; while(l<=r){ ll mid=(l+r)>>1; for(int i=1;i<=n;i++) b[i]=a[i]+i*mid;//按照题目所述的规则进行计算 sort(b+1,b+1+n); ll sum=0; for(ll i=1;i<=mid;i++) sum+=b[i]; if(sum<=m){//表示我的钱没有花完或者我的钱刚刚够 ans=mid;//保存答案 l=mid+1; } else //表示钱不够花,只能从mid-1里面查找,二分 r=mid-1; } for(ll i=1;i<=n;i++) b[i]=a[i]+i*ans; sort(b+1,b+1+n); ll sum=0; for(ll i=1;i<=ans;i++) sum+=b[i]; printf("%lld %lld\n",ans,sum); }}
阅读全文
0 0
- codeforce 812CSagheer and Nubian Market(二分查找)
- 文章标题 codeforce 812C Sagheer and Nubian Market(二分)
- Codeforces812C Sagheer and Nubian Market(二分查找)
- CF# 812 C. Sagheer and Nubian Market(二分)
- Sagheer and Nubian Market(二分)
- Sagheer and Nubian Market (二分)
- Codeforces Round #417 (Div. 2) C. Sagheer and Nubian Market(二分查找)
- Codeforces 812C Sagheer and Nubian Market[二分]
- Codeforces 812C Sagheer and Nubian Market【二分】水题
- codeforces 812 C. Sagheer and Nubian Market(二分答案)
- 【Codeforces 812 C. Sagheer and Nubian Market】+ 二分
- codeforces 812C Sagheer and Nubian Market (二分)
- Codeforces812C Sagheer and Nubian Market(贪心+二分)
- codeforces 812C——Sagheer and Nubian Market(二分)
- Codeforces 812C-Sagheer and Nubian Market
- Codeforces 812 C Sagheer and Nubian Market
- Codeforces 812C Sagheer and Nubian Market
- codeforces 812C Sagheer and Nubian Market
- 当人工智能敲响了门 我们将迎来怎样的世界?/智库2861
- 多线程-多线程方式3的求和案例
- PHP之加载GD库
- initWithFrame、initWithCoder、awakeFromNib 和layoutSubviews
- 智力题--跳格子
- codeforce 812CSagheer and Nubian Market(二分查找)
- 连接池中的maxIdle,MaxActive,maxWait等参数详解
- ES2015数组扩展
- 第三章 Linux特殊字符和正则表达式
- 把视频数据写到文件里面去来分析
- urllib.request.Request的用法
- 封装UGUI的点击事件
- JavaScript类型转换
- spring-boot笔记-Servlet、过滤器、监听器(三)