[暴力题解系列] 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;
}
然后非常出乎意料的是,蓝桥杯官网的数据弱到这样都能过百分百的数据,笑麻了。