zoukankan      html  css  js  c++  java
  • Codeforces Round #493 (Div. 2)

    C - Convert to Ones

    给你一个01串 x是反转任意子串的代价 y是将子串全部取相反的代价 问全部变成1的最小代价

    两种可能 一种把1全部放到一边 然后把剩下的0变成1  要么把所有的 0 直接变成1

    #include<bits/stdc++.h>
    using namespace std;
    #define LL long long
    int main(){
      LL  n,x,y;
      string a;
      cin>>n>>x>>y>>a;
      bool fa=0;
      LL  s=0,s1=0;
      for(LL  j=0;j<a.size();j++){
         if(a[j]=='1'&&fa) continue;
         else if(a[j]=='1'&&fa==0){
            s++;
            fa=1;
         }else if(a[j]=='0') fa=0;
      }
      LL  l=a.size();
      LL ans=0;
      if(a[0]=='0'&&a[l-1]=='0'){
          s1=s+1;
          ans=x*s;
      }else if(a[0]=='0'&&a[l-1]=='1'||a[0]=='1'&&a[l-1]=='0'){
          s1=s;
          ans=x*(max(1LL*0,s-1));
      }else if(a[0]=='1'&&a[l-1]=='1'){
         s1=max(1LL*0,s-1);
         ans=x*(max(1LL*0,s-2));
      }
      ans+=y;
      ans=min(ans,y*s1);
      cout<<ans<<endl;
    }

    D - Roman Digits

    打表? 问 n个字符 能组成几个数

    #include<bits/stdc++.h>
    using namespace std;
    #define LL long long
    int ans[50]={0,4,10,20,35,56,83,116,155,198,244,292};
    int main() {
        LL n;
        scanf("%lld",&n);
        if (n<=11) printf("%d
    ",ans[n]);
        else  printf("%lld
    ",292+(n-11)*49);
        return  0;
    }
  • 相关阅读:
    培训第一天
    jQuery日期时间控件
    java.lang.ExceptionInInitializerError
    j2ee 获取上下文环境
    BeanUtil.ConversionException
    Python3.x和Python2.x的区别
    Apache开启伪静态
    总结
    常用的视频网站
    lua语言萌新之路
  • 原文地址:https://www.cnblogs.com/Dvelpro/p/9935086.html
Copyright © 2011-2022 走看看