Logo zibenlun 的博客

博客

一只蒟蒻的第亿篇题解

...
zibenlun
2025-12-01 12:58:15
分块好啊

本文章由 WyOJ Shojo 从洛谷专栏拉取,原发布时间为 2023-08-20 11:41:15

这题太水了!

首先我们可以发现因为有了其中一边是 $2$ 的 $x$ 方,所以我们可以轻而易举的算出其中一条边,那么另一条边就可以通过这条边推出。此时分为两种情况,第一种是已经算出的为高,另一种就是已经算出的边为宽,最后取最大值输出就可以了。

注意事项

要开 long long

我的 AC 代码

#include<bits\/stdc++.h>
using namespace std;
inline long long read()
{
	long long s=0;
	char ch=getchar();
	while(ch<'0'||ch>'9') ch=getchar();
	while(ch>='0'&&ch<='9') {
		s=(s<<3)+(s<<1)+(ch^48);
		ch=getchar();
	}
	return s;
}
inline void write(long long x)
{
	if(x<0) putchar('-'),x=-x;
	if(x>9) write(x\/10);
	putchar(x%10+'0');
}
long long h,w,ans=1;
int main()
{
\/\/	freopen(".in","r",stdin);
\/\/	freopen(".out","w",stdout);
	ios::sync_with_stdio(false);
	cin.tie(0);
	cout.tie(0);
	h=read();
	w=read();
	while(ans<<1 <= min(h,w)) ans<<=1;
	if(min(h, (long long)(ans*1.25))>=min(w, (long long)(ans*1.25))) {
		write(min(h, (long long) (ans*1.25)));
		putchar(' ');
		write(ans);
	} else {
		write(ans);
		putchar(' ');
		write(min(w, (long long) (ans*1.25)));
	}
	return 0;
}

我的 AC 截图

评论

暂无评论

发表评论

可以用@mike来提到mike这个用户,mike会被高亮显示。如果你真的想打“@”这个字符,请用“@@”。