C++练习 | 二分练习
2024-09-01 08:52:03
Codeforces 371C : Hamburgers
#include<bits/stdc++.h>
using namespace std;
char B='B',S='S',C='C';
string t;
int nb,ns,nc,pb,ps,pc,len;
long long r1;
map<char,int> m;
bool check(long long m1)
{
long long need=;
if(m1*m[B]>nb)
need+=(m1*m[B]-nb)*pb;
if(m1*m[S]>ns)
need+=(m1*m[S]-ns)*ps;
if(m1*m[C]>nc)
need+=(m1*m[C]-nc)*pc;
return need<=r1;
}
int main()
{
int num=;
cin>>t;
len=t.length();
for(int i=;i<len;i++)
{
m[t[i]]++;
}
cin>>nb>>ns>>nc>>pb>>ps>>pc>>r1;
long long l=,r=max(max(nb,ns),nc)+r1,mid;
while(l<=r)
{
mid=(l+r)/;
if(check(mid))
{
l=mid+;
}
else
r=mid-;
}
cout<<r<<endl;
return ;
}
样例
HDU 2141 : Can you find it?
签到题(艹)
样例
#include<bits/stdc++.h>
using namespace std;
int L,N,M,a[],b[],c[],d[],S,x,k;
int check(int d1[],int c1[],int X)
{
int l=,r=k-,m;
for(int i=;i<M;i++)
{
if(d1[r]+c1[i]<X)
continue;
l=;
r=k-;
while(l<=r)
{
m=(l+r)/;
if(d1[m]+c1[i]==X)
return ;
if(d1[m]+c1[i]<X)
{
l=m+;
}
else
{
r=m-;
}
}
}
return ;
}
int main()
{
// freopen("1.in","r",stdin);
int num=;
while(cin>>L>>N>>M)
{
num++;
k=;
cout<<"Case "<<num<<":"<<endl;
for(int i=;i<L;i++)
cin>>a[i];
for(int i=;i<N;i++)
cin>>b[i];
for(int i=;i<M;i++)
cin>>c[i];
sort(c,c+M);
for(int i=;i<L;i++)
{
for(int j=;j<N;j++)
{
d[k]=a[i]+b[j];
k++;
}
}
sort(d,d+k);
cin>>S;
while(S--)
{
cin>>x;
int t=check(d,c,x);
if(t)
cout<<"YES"<<endl;
else
cout<<"NO"<<endl;
}
}
return ;
}
主要思路是把前两个数组的元素两两相加后与第三个数组元素相加的时候使用二分法简化步骤
最新文章
- 《深入理解Java虚拟机》Java内存区域与内存溢出异常
- Navicat常用快捷键
- 7.5---两个正方形分成对半的直线(CC150)
- Spark集群 + Akka + Kafka + Scala 开发(4) : 开发一个Kafka + Spark的应用
- hdoj 5389 Zero Escape
- 用一个例子学习CSS的伪类元素
- Spark1.0.0新特性
- 解决TableView / ScrollView上的Menu问题(1滑出View区域还可点击2导致点击menu后View不能滑动)
- careercup-排序和查找 11.1
- 配置Myeclipse中的项目部署到服务器,报the selected server is enabled, but is not configured properly.
- log4net 生成多个空文件问题
- 桥模式设计模式进入Bridge
- MFC控件(9):network address control
- HDU - 2680 最短路 spfa 模板
- USACO Section 1.1 Greedy Gift Givers 解题报告
- Jmeter二次开发代码(2)
- jmap -histo pid 输出的[C [B [I [S methodKlass constantPoolKlass含义
- 你使用的ie版本过低请。。。
- [C#] LINQ之Join与GroupJoin
- python中的单例