Codeforces812C Sagheer and Nubian Market(贪心+二分)
来源:互联网 发布:linux 内核经典代码 编辑:程序博客网 时间:2024/06/05 17:42
题目链接:http://codeforces.com/contest/812/problem/C
题意:商店出售n种不同的商品。第i个纪念品价格ai元。购买时如果购买k个,第i个纪念品的价格就是a[i]+k*i,求在最大限额为s的条件下最多能购买商品的种数和最小花费。
思路:二分购买mid个物品,重新计算每个物品的现价,排序后计算购买mid个价格最小的总花费是否小于S就可以了
#pragma GCC diagnostic error "-std=c++11" #include<iostream>#include<cmath>#include<cstdio>#include<algorithm>#include<string>#include<map>#include<vector>#include<set>#include<cstring>using namespace std;#define rep(i,a,b) for(int i=a;i<b;i++)#define CLR(a,b) memset(a,b,sizeof(a))#define maxn 1000010const int MOD = 1000000007;typedef long long ll;ll a[maxn],b[maxn];bool check(int x,int n,int s)//check买x种商品花费是否不超过s{ rep(i,1,n+1) b[i]=a[i]+x*(ll)i; sort(b+1,b+1+n); ll sum=0; rep(i,1,x+1) sum+=b[i]; if(sum<=s) return true; return false;}int main(){ ios::sync_with_stdio(false); cin.tie(0); int n,s; cin>>n>>s;//输入n种商品的价格和最大限额s rep(i,1,n+1)cin>>a[i]; int l=1; int r=n; ll ans=0; while(l<=r) { int mid=(l+r)>>1; if(check(mid,n,s)) l=mid+1,ans=mid; else r=mid-1; } ll sum=0; rep(i,1,n+1) b[i]=a[i]+ans*(ll)i; sort(b+1,b+1+n); rep(i,1,ans+1)sum+=b[i]; cout<<ans<<' '<<sum<<endl;//输出最大能购买的种数和最小花费额 return 0;}
阅读全文
0 0
- Codeforces812C Sagheer and Nubian Market(贪心+二分)
- Codeforces812C Sagheer and Nubian Market(二分查找)
- Codeforces812C Sagheer and Nubian Market
- 二分+堆——Codeforces812C Sagheer and Nubian Market
- Sagheer and Nubian Market(二分)
- Sagheer and Nubian Market (二分)
- CF# 812 C. Sagheer and Nubian Market(二分)
- Sagheer and Nubian Market
- Sagheer and Nubian Market
- Sagheer and Nubian Market
- 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 (二分)
- codeforces 812C——Sagheer and Nubian Market(二分)
- Codeforces Round #417 (Div. 2) C. Sagheer and Nubian Market(二分查找)
- Cookie的跨域共享
- 算法排序(3):选择排序
- Prime Path
- Ajax的Post提交与Get提交的不同方式
- 51Nod 1445
- Codeforces812C Sagheer and Nubian Market(贪心+二分)
- 数据可视化
- 深入解析HashMap、HashTable
- 作业代码
- HLT团队内部GitLab使用指南
- GROMACS运行参数整理(一)
- 左右连接(left,right)及等值连接(inner)
- 回文数
- gdb 7.10.1(最新版) 编译安装