[暴力题解系列] 2023年蓝桥杯-冶炼金属

世界上存在很难的题,但不存在暴力偷不到分的题

​ 这题的暴力思路比你想的更简单,我直接枚举v的数值不就行了?

#include<iostream>
#include<algorithm>
using namespace std;
int a[10010], b[10010];
int main()
{
    int n;
    scanf("%d", &n);
    for(int i=1; i<=n; i++)
        scanf("%d%d", &a[i], &b[i]);
    int prevmin = 0, prevmax = 0;
    bool startRec = false;
    int minres = 1e9, maxres = 0;
    for(int v=1; v<=1e9; v++)    //暴力枚举v的值,从1到1e9
    {
        bool f = true;
        for(int i=1; i<=n; i++)    //检查是否符合要求
        {
            if(a[i]/v != b[i])
            {
                f = false;
                break;
            }
        }
        if(f)    //找到了解
        {
            if(!startRec)    //是不是第一次找到
                startRec = true;    //是,那就标记一下找到了答案区间的左边
            minres = min(minres, v);
            maxres = max(maxres, v);
        }
        else if(startRec)    //没找到,但是曾经已经找到了,那就说明已经离开了答案所在的区间,直接终结循环即可
        {
            break;
        }
    }
    printf("%d %d\n", minres, maxres);
    return 0;
}

然后非常出乎意料的是,蓝桥杯官网的数据弱到这样都能过百分百的数据,笑麻了。

posted @ 2024-03-23 21:55  ComputerEngine  阅读(51)  评论(0编辑  收藏  举报