Sagheer and Nubian Market
来源:互联网 发布:数据直报系统 编辑:程序博客网 时间:2024/06/07 20:42
题意:
输入纪念品的个数n及你要买的总钱数s,接着输入n个的价钱
因为他买东西是这种的
价钱=a【i】+k*i;
(k表示买了几个)
#include<iostream>#include<queue>using namespace std;priority_queue<long long ,vector<long long >,greater<long long> >q;long long sum,n,m,geshu,jiaqian,a[100001];bool check(long long x){ sum=0; while(!q.empty()) q.pop();//清空队列 for(long long i=1;i<=n;i++) q.push(a[i]+x*i);//价钱从a【i】+x*1-a【i】+x*n压入队列 for(long long i=1;i<=x;i++) sum+=q.top(),q.pop();//从最小的开始加一直加到够个数为止,不能买同一个纪念品 return sum>m?0:1;//如果sum大于价钱的话返回0;没有返回1}int main (){ while(cin>>n>>m) { for(int i=1;i<=n;i++) { cin>>a[i]; } long long l=0,r=n;geshu=0;jiaqian=0; while(l<=r) { long long mid=l+r>>1;//中间的个数,假设能买mid个 bool p=check(mid); if(p) geshu=max(geshu,mid),jiaqian=max(jiaqian,sum),l=mid+1;//比较,增大mid的个数 else r=mid-1; } cout<<geshu<<' '<<jiaqian<<endl; } return 0;}
阅读全文
0 0
- Sagheer and Nubian Market
- Sagheer and Nubian Market
- Sagheer and Nubian Market
- C. Sagheer and Nubian Market
- Codeforces812C Sagheer and Nubian Market
- Sagheer and Nubian Market(二分)
- Codeforces 812C-Sagheer and Nubian Market
- Codeforces 812 C Sagheer and Nubian Market
- Sagheer and Nubian Market (二分)
- Codeforces 812C 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 Round #417 (Div. 2) C. Sagheer and Nubian Market
- Codeforces Round #417 (Div. 2) C. Sagheer and Nubian Market
- 【Codeforces 812 C. Sagheer and Nubian Market】+ 二分
- 封装、静态
- Linux 系统管理-进程管理
- 计算机系统的虚拟内存
- table表头固定表体滚动
- 光学标定 (非计算机)
- Sagheer and Nubian Market
- oralce优化
- 使用ReadPixels方法,实现对游戏截取任意位置的屏幕,以及保存和显示截取结果
- tyer
- Python 2.7.x 和 3.x 版本的重要区别
- 多态、抽象
- Android Studio gradle 文件中 ${supportLibVersion} 用法
- logback日志
- 接口、异常