• 2018多校第九场1010 (HDU6424) 数学


    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6424

    解法:找规律。因为最多三项,a1^a2^a3可以拆成(a1+2)+(a2+1)*a3,然后建成数对,其中数对的第一个元素是两个元素中的最小值,第二个是最大值。

    (a1+2)可以变成(a1+2)*inf  (因为无限个log趋近于1),用pair的比较方式即可。每个数组都能建成两个数对,两个数对也按从小到大的顺序排好,然后按pair的方式比较即可。

    #include<bits/stdc++.h>
    using namespace std;
    #define INF 1e9+10
    typedef pair<long long,long long> PLL;
    long long a[5],b[5];
    void maintain(PLL &a){
        PLL tmp;
        tmp.first=min(a.first,a.second);
        tmp.second=max(a.first,a.second);
        a=tmp;
    }
    int main(){
        int T,ans,n,m;
        scanf("%d",&T);
        while(T--){
            ans=0;
            scanf("%d%d",&n,&m);
            for(int i=0;i<=3;i++){
                a[i]=b[i]=INF;
            }
            PLL a1,a2,b1,b2;
            for(int i=1;i<=n;i++){
                scanf("%lld",&a[i]);
            }
            for(int j=1;j<=m;j++){
                scanf("%lld",&b[j]);
            }
            a1=make_pair(a[1]+2,INF),a2=make_pair(a[2]+1,a[3]);
            b1=make_pair(b[1]+2,INF),b2=make_pair(b[2]+1,b[3]);
            maintain(a1),maintain(b1),maintain(a2),maintain(b2);
            if(a1>a2)swap(a1,a2);
            if(b1>b2)swap(b1,b2);
            if(a1<b1)ans=1;
            else if(a1>b1)ans=-1;
            else{
                if(a2<b2)ans=1;
                else if(a2>b2)ans=-1;
            }
            printf("%d
    ",ans);
        }
    } 
  • 相关阅读:
    Ural 2070:Interesting Numbers(思维)
    Codeforces 760B:Frodo and pillows(二分)
    Codeforces 760C:Pavel and barbecue(DFS+思维)
    Codeforces 730I:Olympiad in Programming and Sports(最小费用流)
    HDU-2102 A计划
    HDU-2181 哈密顿绕行世界问题
    HDU-1226 超级密码
    学习系列
    学习系列
    学习系列
  • 原文地址:https://www.cnblogs.com/pkgunboat/p/9513805.html
Copyright © 2020-2023  润新知