HAProxy算法总结

nginx rewrite重定向访问本地其它目录,并且保留请求的地址和端口

  返回  

一道签到题:Er Ba Game

2021/7/21 12:17:17 浏览:

题目链接:https://ac.nowcoder.com/acm/contest/11253/D

题目:

给你两个值,分别为{a1,b1},{a2,b2}.

a1 <= b1,a2 <= b2 如果不符合要求,a,b互换一下即可,

现给你多个比较条件:

1.(2,8)是最大的一对。

2.如果两者都不是(2,8)则a == b的更大

3.如果两者都 a == b,则a更大的更大

4.如果两者都a != b,则 ( a + b) % 10大的更大

5.如果a != b , (a + b) % 10又相同,则b大的更大。

问哪个值大?

 发现一个有意思的解法:

就是给他们对应的分数

如果为2,8给他们一个很大的分

如果a == b 给它们一个次大的分,而这个次大的分中还会存在两个都a == b时,a更大的情况,则给他们 次大分 + a.

如果a != b 给他们一个很小的分,然后(a + b) % 10 可能会和 b起冲突,所以给 (a+b) % 10 * 比较大的值后,如果两个不相等, b就基本影响不到(a + b) % 10的判断。

如果两个相等,则判断 b.

代码实现:

 

# include <iostream>
using namespace std;

int get(int a  ,int b)
{
    if(a == 2 && b == 8)
    {
        return 9000000;
    }
    if(a == b)
    {
        return 800000 + a;
    }
    if(a != b)
    {
        return 10000 * ( (a + b) % 10) + b;
    }
    return 0;
}

int main()
{
    int n;
    scanf("%d",&n);
    while(n--)
    {
        int a1,b1,a2,b2;
        scanf("%d %d %d %d",&a1,&b1,&a2,&b2);
        if(a1 > b1)
        {
            swap(a1,b1);
        }
        if(a2 > b2)
        {
            swap(a2,b2);
        }
        int temp1 = get(a1,b1);
        int temp2 = get(a2,b2);
        if(temp1 > temp2)
        {
            printf("first\n");
        }
        else if(temp2 > temp1)
        {
            printf("second\n");
        }
        else
        {
            printf("tie\n");
        }
    }    
    
    return 0;
}

联系我们

如果您对我们的服务有兴趣,请及时和我们联系!

服务热线:18288888888
座机:18288888888
传真:
邮箱:888888@qq.com
地址:郑州市文化路红专路93号