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
  • 相关阅读:
    利用URL protocol在网页打开本地exe
    [Leetcode]50. Pow(x, n)
    【转载】初识google test
    MySQL主从配置【转载】
    MySQL源码安装(centos)
    MySQL数据库MyISAM和InnoDB存储引擎的比较【转载】
    MySQL 事务
    MySQL 对于千万级的大表要怎么优化
    MySQL性能优化的最佳21条经验【转载】
    mysql日志详细解析【转载】
  • 原文地址:https://www.cnblogs.com/YJing814/p/10810392.html
Copyright © 2011-2022 走看看