• NOIP国王游戏


    #include<iostream>
    #include<cstdio>
    #include<cstdlib>
    #include<cstring>
    #include<algorithm>
    #include<cmath>
    using namespace std;
    
    int read()
    {
        int x=0,f=1;char ch=getchar();
        while(ch<'0' || ch>'9')
        {
            if(ch=='-') f=-1;
            ch=getchar();
        }
        while(ch>='0' && ch<='9')
        {
            x=x*10+ch-'0';
            ch=getchar();
        }
        return x*f;
    }
    
    struct node
    {
        int a,b;
    }f[1005];
    
    bool cmp(node x,node y)
    {
        return x.a*x.b<y.a*y.b;
    }
    
    int n,kinga,kingb,ans[100005],add[100005],sum[100005];
    int i,k;
    
    void cheng(int x)
    {
        memset(add,0,sizeof(add));
        int j;
        for(j=1;j<=ans[0];j++)
        {
            ans[j]*=x;
            add[j+1]+=ans[j]/10;
            ans[j]%=10;
        }
        for(j=1;j<=ans[0]+4;j++)//max 1000
        {
            ans[j]+=add[j];
            ans[j+1]+=ans[j]/10;
            ans[j]%=10;
            if(ans[j]!=0) ans[0]=max(ans[0],j);    
        } 
        return ;
    }
    
    void chu(int x)
    {
        int j;
        memset(add,0,sizeof(add));
        int q=0;
        for(j=ans[0];j>=1;j--)
        {
            q*=10;
            q+=ans[j];
            add[j]=q/x;
            if(add[0]==0 && add[j]!=0)
            {
                add[0]=j;
            }
            q%=x;
        }
        return ;
    }
    
    bool my_max()
    {
        if(sum[0]>add[0]) return 0;
        if(sum[0]<add[0]) return 1;
        int j;
        for(j=add[0];j>=1;j--)
        {
            if(add[j]<sum[j]) return 0;
            if(add[j]>sum[j]) return 1;
        }
        return 0;
    }
    
    void my_ans()
    {
        int j;
        memset(sum,0,sizeof(sum));
        for(j=add[0];j>=0;j--)
            sum[j]=add[j];
        return ;
    }
    
    int main()
    {
        n=read();
        f[0].a=read(); f[0].b=read();
        for(i=1;i<=n;i++)
        {
            f[i].a=read();
            f[i].b=read();
        }
        sort(f+1,f+n+1,cmp);
        ans[0]=ans[1]=1;
        for(i=1;i<=n;i++)
        {
            //cout<<"*"<<ans[0]<<"*";
            cheng(f[i-1].a);
            chu(f[i].b);
            if(my_max())
            {
                my_ans();
            }
                
            //for(k=1;k<=ans[0];k++) cout<<add[k];
            //cout<<endl;
            
        }
        for(i=sum[0];i>=1;i--) printf("%d",sum[i]);
        
        return 0;
    }
    国王游戏
  • 相关阅读:
    【cs231n笔记】assignment1之KNN
    【数据】常用卫星遥感数据下载地址整理
    ArcGIS中重采样栅格像元匹配问题
    python调用HEG工具批量处理MODIS数据
    Google Earth Engine学习资源分享
    地表温度反演的单通道方法辩异
    Android Studio无法下载sdk的问题
    Anaconda常用命令
    AMSR-E/AMSR-2数据介绍与下载
    NASA HEG tool安装心得
  • 原文地址:https://www.cnblogs.com/llllllpppppp/p/9124400.html
Copyright © 2020-2023  润新知