您的位置:首页 > 其它

Codeforces Round #381 (Div. 2) &&Codeforce_740

2016-11-24 19:26 295 查看
A. Alyona and copybooks

水题,让求满足条件的最小花费,注意组合可能是多个即可。

#include <bits/stdc++.h>
using namespace std;

typedef long long ll;

int main(int argc, char const *argv[])
{
ll n,a,b,c;
cin>>n>>a>>b>>c;
n%=4;
ll ans;
if (n==0) ans=0;
else if (n==1){
ans=c;
ans=min(ans,3*a);
ans=min(ans,a+b);
}else if (n==2){
ans=b;
ans=min(ans,2*c);
ans=min(ans,2*a);
}else {
ans=a;
ans=min(ans,3*c);
ans=min(ans,c+b);
}
cout<<ans<<endl;
return 0;
}


B. Alyona and flowers

也是水题,只要该区间的贡献小于0就略过去。

#include <bits/stdc++.h>
using namespace std;

int v[105];
typedef long long ll;
int main(int argc, char const *argv[])
{
int n,m;
cin>>n>>m;
for (int i=1;i<=n;i++) cin>>v[i];
ll ans=0;
for (int i=0;i<m;i++){
int l,r;
cin>>l>>r;
int tt=0;
for (int j=l;j<=r;j++) tt+=v[j];
if (tt>0) ans+=tt;
}
cout<<ans<<endl;
return 0;
}


C. Alyona and mex

给定一些区间,求这些区间的最小mex值最大为多少。

很明显,最小区间长度+1即为结果,然后直接构造就行,

当时敲到最后输出的时候,电脑没电了,很遗憾。

#include <bits/stdc++.h>
using namespace std;

const int N=1e5+5;
int l
,r
;
int v
;
int main(int argc, char const *argv[])
{
int n,m;
cin>>n>>m;
int p=n+1,q=0;
for (int i=0;i<m;i++){
cin>>l[i]>>r[i];
if (r[i]-l[i]+1<p){
p=r[i]-l[i]+1;
q=i;
}
}
cout<<p<<endl;
int ll=0;
for (int i=0;i<n;i++) {
cout<<ll++<<" ";
if (ll==p) ll=0;
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: