BZOJ1110: [POI2007]砝码Odw
来源:互联网 发布:牛贝公众号淘宝客系统 编辑:程序博客网 时间:2024/05/29 10:27
这题有个很特别的性质就是“任何两个砝码都有一个特征,他们的中总有一个的重量是另外一个的整数倍,当然他们也可能相等。”
那么,我们将所有砝码从小到大排之后(假设没有重复的),我们将他们转成一个第一位是a[1]进制,第二位是a[2]进制,第三位是a[3]进制….的数,那么每个砝码的数只有一位是1
然后再把容器也转成这样的数,每一位上加起来(不能进位能退位),二分答案判一下
code:
#include<set>#include<map>#include<deque>#include<queue>#include<stack>#include<cmath>#include<ctime>#include<bitset>#include<string>#include<vector>#include<cstdio>#include<cstdlib>#include<cstring>#include<climits>#include<complex>#include<iostream>#include<algorithm>#define ll long long#define inf 1e9using namespace std;const int maxn = 110000;int n,m;ll w[maxn],a[maxn];ll t[maxn]; int tp;int id[maxn];ll ts[maxn],s[maxn];bool judge(const int mid){ for(int i=0;i<=tp;i++) s[i]=ts[i]; int pos=tp; for(int i=mid;i>=1;i--) { while(id[i]<pos) s[pos-1]+=s[pos]*t[pos],pos--; if(!s[pos]) return false; s[pos]--; } return true;}int main(){ scanf("%d%d",&n,&m); for(int i=1;i<=n;i++) scanf("%lld",&w[i]); sort(w+1,w+n+1); for(int i=1;i<=m;i++) scanf("%lld",&a[i]); sort(a+1,a+m+1); t[tp=1]=a[1]; id[1]=1; for(int i=2;i<=m;i++) { if(a[i]!=a[i-1]) t[++tp]=a[i]/a[i-1]; id[i]=tp; } for(int i=1;i<=n;i++) { ll now=w[i]; int ti=0; while(ti<tp&&now) { ts[ti]+=now%t[ti+1]; now/=t[++ti]; } ts[ti]+=now; } int l=1,r=m; while(l<=r) { int mid=l+r>>1; if(judge(mid)) l=mid+1; else r=mid-1; } printf("%d\n",l-1); return 0;}
阅读全文
0 0
- BZOJ1110: [POI2007]砝码Odw
- 【bzoj1110】 [POI2007]砝码Odw
- BZOJ1110: [POI2007]砝码Odw
- bzoj1110 [POI2007]砝码Odw 贪心+进制拆分
- 【进制】BZOJ1110[砝码Odw]题解
- [POI2007]砝码Odw
- BZOJ1100 [POI2007]砝码Odw 贪心
- BZOJ 1110 POI2007 砝码Odw 贪心
- BZOJ 1110 [POI2007]砝码Odw 进制+贪心
- [进制 贪心] BZOJ 1110 [POI2007]砝码Odw
- bzoj 1110: [POI2007]砝码Odw 贪心
- BZOJ 1110: [POI2007]砝码Odw 进制转换+贪心
- 1110: [POI2007]砝码Odw 进制拆分,贪心
- bzoj1110 [POI2007]对称轴osi manacher(kmp)
- poi2007
- poi2007
- 砝码
- poi2007--drz。
- BZOJ1109: [POI2007]堆积木Klo
- [Codeforces Round #436](Div. 2)
- Java线程池使用与原理
- 转载:自动化测试金字塔与反模式
- 小白算法学习 KMP
- BZOJ1110: [POI2007]砝码Odw
- BI Informatica 汇总组件
- ansible常用模块用法
- 建筑的永恒之道-道与禅
- 用html5 js实现浏览器全屏
- 培养微积分小糊涂虫有何用处?
- 关于学习计划
- ubuntu16.04下使用lnmp1.4安装nginx和memcache3.0.8发生502错误解决方法
- DEP bypass