zoukankan      html  css  js  c++  java
  • 2019年湘潭大学程序设计竞赛(重现赛)

    2019年湘潭大学程序设计竞赛(重现赛) 

    A:Who's better?

    #include<bits/stdc++.h>
    using namespace std;
    int main(){
        int n1,p1,s1,n2,p2,s2;
        cin>>n1>>p1>>s1;
        cin>>n2>>p2>>s2;
        if(n1!=n2){
            if(n1>n2)cout<<"1
    ";
            else cout<<"2
    ";
            return 0;
        }
        if(p1!=p2){
            if(p1<p2)cout<<"1
    ";
            else cout<<"2
    ";
            return 0;
        }
        if(s1!=s2){
            if(s1<s2)cout<<"1
    ";
            else cout<<"2
    ";
            return 0;
        }
        cout<<"God
    ";
        return 0;
    }
    View Code

    B:Number

    #include<bits/stdc++.h>
    using namespace std;
    int t,n;
    int main(){
        scanf("%d",&t);
        while(t--){
            int ans=0;
            scanf("%d",&n);
            while(n>1){
                int p=n%10;
                if(p==0){
                    ans++;
                    n/=10;
                }
                else{
                    n=n+10-p;
                    ans=ans+10-p;
                }
            }
            printf("%d
    ",ans);
        }
        return 0;
    }
    View Code

    C:Math Problem

    (a*k+1)3=a3*k3+3a2k2+3ak+1=(a2*k3+3a1k2+3k)a+1=a*x+1;

    即(a*k+1)的3次方也是a的倍数+1;

    #include<bits/stdc++.h>
    using namespace std;
    int t,l,r;
    
    int main(){
       
        
        scanf("%d",&t);
        while(t--){
            long long ans=0;
            scanf("%d%d",&l,&r);
            int p=l/192,q=r/192;
            if(l%192>1)p++;
            if(r%192<1)q--;
            for(int i=p;i<=q;i++){
                ans=ans+(long long )i*192+1;
            }
            printf("%lld
    ",ans);
        }
        return 0;
    }
    View Code

    D:Stone

    每次取最大堆与任一相邻合并,结果 : 总和-max

    #include<bits/stdc++.h>
    using namespace std;
    const int INF=1e9+10;
    const int N=1e5;
    int t,n;
    long long a[N];
     
    int main(){
        scanf("%d",&t);
        while(t--){
            long long ans=0;
            scanf("%d",&n);
            for(int i=0;i<n;i++){
                scanf("%lld",&a[i]);
            }
            sort(a,a+n);
            for(int i=0;i<n-1;i++){
                ans+=(long long )a[i];
            }
             
            printf("%lld
    ",ans);
        }
        return 0;
    }
    View Code

    F:Black & White

    二分+前缀和

    #include<bits/stdc++.h>
    using namespace std;
    const int N=1e5+100;
    int t,n,m;
    char str[N];
    int p[N];
    int solve(int x){
        for(int i=0;i+x<=n;i++){
            if(p[i+x]-p[i]+m>=x||(i+x-p[i+x])-(i-p[i])+m>=x) return 1;
        }
        return 0;
    }
    int main(){
        scanf("%d",&t);
        while(t--){
            scanf("%d%d%s",&n,&m,str);
            memset(p,0,sizeof(p));
            for(int i=1;i<=n;i++){
                if(str[i-1]=='1'){
                    p[i]=p[i-1]+1;
                }
                else{
                    p[i]=p[i-1];
                }
            }
            int l=0,r=n,mid;
            while(l<=r){
                mid=(l+r)/2;
                if(solve(mid)) l=mid+1;
                else r=mid-1;
            }
            printf("%d
    ",r);
        }
        return 0;
    }
    View Code
  • 相关阅读:
    戴德金分割第6页
    自己总结的学习方法
    自己总结的选股方法和建仓方法
    自编通达信公式集合
    电脑目录设置
    1·0天内跳空缺口的公式
    springsecurity
    java开发 日志框架选择
    javaFramwork title
    idea git忽略文件
  • 原文地址:https://www.cnblogs.com/YJing814/p/10810392.html
Copyright © 2011-2022 走看看