Educational Codeforces Round 3
A. USB Flash Drives
水题,排序即可
int a[];
int main()
{
int n,m;
scanf("%d%d",&n,&m);
for(int i=;i<n;i++) scanf("%d",&a[i]);
int ans=; sort(a,a+n);
for(int i=n-;m>;i--)
ans++,m-=a[i];
cout<<ans<<endl;
}
B. The Best Gift
本来以为要缩点,结果m<10,具体看代码
int x,n,m,b[];
ll sum;
int main()
{
memset(b,,sizeof(b)); sum=;
scanf("%d%d",&n,&m);
for(int i=;i<=n;i++)
scanf("%d",&x),b[x]++,sum++;
ll ans=;
for(int i=;i<=m;i++) {
sum-=b[i];
ans+=sum*b[i];
}
cout<<ans<<endl;
}
C. Load Balancing
依旧是水题。。
typedef long long ll;
int a[];
int main()
{
ll ans=,sum=;
int n; scanf("%d",&n);
for(int i=;i<n;i++) scanf("%d",&a[i]),sum+=a[i];
sort(a,a+n);
ll sa=sum/n+,sb=sum/n;
int na=sum%n,nb=n-sum%n;
//cout<<na<<nb<<sa<<sb<<endl;
for(int i=;i<n;i++) {
if(nb&&a[i]<=sb)
nb--,ans+=sb-a[i];
else if(na&&a[i]<=sa)
na--,ans+=sa-a[i];
}
cout<<ans<<endl;
}
D. Gadgets for dollars and pounds
题目读起来很麻烦,而且刚开始还理解错题意了。。以为每件物品既可以用英镑支付又可以用美金支付,
写完才发现样例过不了。
题目一看就是二分,第一反应以为要使用RMQ,后来发现不用也行。
首先把用美金和英镑的分开并排序,然后对于天数二分,在天数区间内遍历
得到最低美金兑换的日子,和英镑的日子,然后比较后选择花费最少burles的gadget购买
typedef long long ll;
typedef pair<int,int> pii ; #define N 200089
#define M 400009
#define f0(i,n) for(int i=0;i<(n);i++)
#define ff(i,n) for(int i=1;i<=(n);i++)
#define p_b push_back
#define m_p make_pair
#define Abs(a) (a)<0?-(a):(a)
#define Clr(a) memset(a,0,sizeof(a))
#define MID(a,b) (a+((b-a)>>1))
#define Lbit(a) (x)&(-(x))
#define X first
#define Y second
const ll INF=1LL<<-;
const int lim=<<+; int n,m,k,s;
int a[N],b[N];
vector<pii> d,p;
vector<pii> ans,tans; int judge(int day) {
tans.clear();
int d0=,d1=;
for(int i=;i<=day;i++) {
if(a[i]<a[d0]) d0=i;
if(b[i]<b[d1]) d1=i;
}
int cnt=k,pd=,pp=;
ll sb=s;
while(cnt) {
ll vd=INF,vp=INF;
if(pd<d.size())
vd=1LL*a[d0]*d[pd].X;
if(pp<p.size())
vp=1LL*b[d1]*p[pp].X; if(vd<vp) {
//ans[d[pd].Y]=d0;
tans.p_b(m_p(d[pd].Y,d0));
cnt--; sb-=vd; pd++;
}
else {
//ans[p[pp].Y]=d1;
tans.p_b(m_p(p[pp].Y,d1));
cnt--; sb-=vp; pp++;
}
}
// cout<<day<<" "<<sb<<" "<<cnt<<endl;
if(sb>=) {
ans=tans; return ;
}
return ;
}
bool cmp(pii c1,pii c2) { return c1.X<c2.X; } int main()
{ int x,y,z;
cin>>n>>m>>k>>s;
d.clear(); p.clear();
for(int i=;i<=n;i++) scanf("%d",&a[i]);
for(int i=;i<=n;i++) scanf("%d",&b[i]);
for(int i=;i<=m;i++) {
scanf("%d%d",&x,&y);
if(x==) d.p_b(m_p(y,i));
else p.p_b(m_p(y,i));
}
sort(d.begin(),d.end(),cmp);
sort(p.begin(),p.end(),cmp);
int l=,r=n,mid,res,flag=;
while(l<=r) {
mid=(l+r)>>;
if(judge(mid)) {
flag=; res=mid; r=mid-;
}
else l=mid+;
//cout<<l<<" "<<r<<endl;
}
if(flag) {
printf("%d\n",res);
for(int i=;i<ans.size();i++)
printf("%d %d\n",ans[i].X,ans[i].Y);
}
else puts("-1");
return ;
}
Educational Codeforces Round 3的更多相关文章
- [Educational Codeforces Round 16]E. Generate a String
[Educational Codeforces Round 16]E. Generate a String 试题描述 zscoder wants to generate an input file f ...
- [Educational Codeforces Round 16]D. Two Arithmetic Progressions
[Educational Codeforces Round 16]D. Two Arithmetic Progressions 试题描述 You are given two arithmetic pr ...
- [Educational Codeforces Round 16]C. Magic Odd Square
[Educational Codeforces Round 16]C. Magic Odd Square 试题描述 Find an n × n matrix with different number ...
- [Educational Codeforces Round 16]B. Optimal Point on a Line
[Educational Codeforces Round 16]B. Optimal Point on a Line 试题描述 You are given n points on a line wi ...
- [Educational Codeforces Round 16]A. King Moves
[Educational Codeforces Round 16]A. King Moves 试题描述 The only king stands on the standard chess board ...
- Educational Codeforces Round 6 C. Pearls in a Row
Educational Codeforces Round 6 C. Pearls in a Row 题意:一个3e5范围的序列:要你分成最多数量的子序列,其中子序列必须是只有两个数相同, 其余的数只能 ...
- Educational Codeforces Round 9
Educational Codeforces Round 9 Longest Subsequence 题目描述:给出一个序列,从中抽出若干个数,使它们的公倍数小于等于\(m\),问最多能抽出多少个数, ...
- Educational Codeforces Round 37
Educational Codeforces Round 37 这场有点炸,题目比较水,但只做了3题QAQ.还是实力不够啊! 写下题解算了--(写的比较粗糙,细节或者bug可以私聊2333) A. W ...
- Educational Codeforces Round 60 (Rated for Div. 2) - C. Magic Ship
Problem Educational Codeforces Round 60 (Rated for Div. 2) - C. Magic Ship Time Limit: 2000 mSec P ...
- Educational Codeforces Round 60 (Rated for Div. 2) - D. Magic Gems(动态规划+矩阵快速幂)
Problem Educational Codeforces Round 60 (Rated for Div. 2) - D. Magic Gems Time Limit: 3000 mSec P ...
随机推荐
- HBuilder手机Iphone运行提示“未受信用的企业级开发者”
HBuilder手机Iphone运行提示“未受信用的企业级开发者” 解决方法:设置-----通用------设备管理-----点击Digtial Heaven....---信任"Digtia ...
- nginx 代理 proxy_pass设置
#img.test.com/img1 实际访问的路径是 http://127.0.0.1:123/a1 #img.test.com/img2 实际访问的路径是 http://127.0.0.1:123 ...
- ubuntu上 安装 基于sphinx 的 coreseek 全文搜索
原生sphinx不支持中文, sphinx-for-chinese匹配中文时也不返回结果 ,真纠结, 最好试了 coreseek,这个能正确返回结果了, 所以记录一下 1 http://www.co ...
- html5生成柱状图(条形图)
<html> <canvas id="a_canvas" width="1000" height="700">< ...
- 简易的RestClient代码
package tests; import java.io.*; import org.apache.http.HttpEntity; import org.apache.http.HttpRespo ...
- express cookie-session解惑
express的中间件基于connect模块而来,所以相关文档可以直接参考 http://www.senchalabs.org/connect/ 使用cookie-session中间件过程中,比较困惑 ...
- TDirectory.GetFileSystemEntries获取指定目录下的目录和文件
使用函数: System.IOUtils.TDirectory.GetFileSystemEntries 所有重载: class function GetFileSystemEntries(const ...
- log4N配置方式
方式一. <log4net> <!-- 启动日志 --> <appender name="PayAppender" type="log4ne ...
- mysql5.7版本无法启动服务问题
cmd情况下进入mysql的bin目录后 输入命令:mysqld --initialize-insecure d:\mysql\bin
- 如何解决C#编译中"csc不是内部或外部命令"的问题
安装完 VisualStudio 2010编译环境后,是不能用命令行直接编译写好的csc文件的,如果不配置环境变量,在命令提示符(cmd)中编译扩展名为cs的文件,会出现错误提示“csc不是内部或外部 ...