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

心已赠人 2022-07-14 02:52 237阅读 0赞

A. Alyona and copybooks

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

  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. typedef long long ll;
  4. int main(int argc, char const *argv[])
  5. {
  6. ll n,a,b,c;
  7. cin>>n>>a>>b>>c;
  8. n%=4;
  9. ll ans;
  10. if (n==0) ans=0;
  11. else if (n==1){
  12. ans=c;
  13. ans=min(ans,3*a);
  14. ans=min(ans,a+b);
  15. }else if (n==2){
  16. ans=b;
  17. ans=min(ans,2*c);
  18. ans=min(ans,2*a);
  19. }else {
  20. ans=a;
  21. ans=min(ans,3*c);
  22. ans=min(ans,c+b);
  23. }
  24. cout<<ans<<endl;
  25. return 0;
  26. }

B. Alyona and flowers

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

  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. int v[105];
  4. typedef long long ll;
  5. int main(int argc, char const *argv[])
  6. {
  7. int n,m;
  8. cin>>n>>m;
  9. for (int i=1;i<=n;i++) cin>>v[i];
  10. ll ans=0;
  11. for (int i=0;i<m;i++){
  12. int l,r;
  13. cin>>l>>r;
  14. int tt=0;
  15. for (int j=l;j<=r;j++) tt+=v[j];
  16. if (tt>0) ans+=tt;
  17. }
  18. cout<<ans<<endl;
  19. return 0;
  20. }

C. Alyona and mex

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

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

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

  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. const int N=1e5+5;
  4. int l[N],r[N];
  5. int v[N];
  6. int main(int argc, char const *argv[])
  7. {
  8. int n,m;
  9. cin>>n>>m;
  10. int p=n+1,q=0;
  11. for (int i=0;i<m;i++){
  12. cin>>l[i]>>r[i];
  13. if (r[i]-l[i]+1<p){
  14. p=r[i]-l[i]+1;
  15. q=i;
  16. }
  17. }
  18. cout<<p<<endl;
  19. int ll=0;
  20. for (int i=0;i<n;i++) {
  21. cout<<ll++<<" ";
  22. if (ll==p) ll=0;
  23. }
  24. return 0;
  25. }

发表评论

表情:
评论列表 (有 0 条评论,237人围观)

还没有评论,来说两句吧...

相关阅读

    相关 codeforces-round375-div2

    题目链接:[codeforces round 375 div2][] A题: 读一遍题目就知道是超级水的题目,,就是给你三个坐标,求三个坐标汇集到一个点所走的路程