1 条题解

  • 0
    @ 2025-8-24 22:09:26

    自动搬运

    查看原文

    来自洛谷,原作者为

    avatar 犇犇犇犇
    菜qaq

    搬运于2025-08-24 22:09:26,当前版本为作者最后更新于2019-04-20 18:21:11,作者可能在搬运后再次修改,您可在原文处查看最新版

    自动搬运只会搬运当前题目点赞数最高的题解,您可前往洛谷题解查看更多

    以下是正文


    这道题数据范围也比较小,所以直接模拟就好了

    如果图片的任何一边长度超过了 GG ,那么系统会不断地对图片的长宽同时减半(向下取整),直至两边长度G \leq G 为止。

    while(w>g || h>g) //若两边有一边大于g
    {
    	w/=2; 
    	h/=2; //两边同时减半
    }
    

    如果图片有任何一边小于 LL,请输出 "Too Young"

    if(w<l || h<l)
    {
    	cout<<"Too Young"<<endl;
    }
    

    如果图片满足大小条件但不为正方形,请输出"Too Simple"

    else if(w!=h)
    {
    	cout<<"Too Simple"<<endl;
    }
    

    如果图片满足大小条件并且是正方形,请输出"Sometimes Naive"

    else cout<<"Sometimes Naive"<<endl;
    

    所以只要对每一个wi,hiw_i,h_i都做一遍就好了

    #include <bits/stdc++.h>
    using namespace std;
    int n,l,g,w,h;
    int main()
    {
    	int i,j;
    	cin>>n>>l>>g;
    	for(i=1;i<=n;i++)
    	{
    		cin>>w>>h;
    		while(w>g || h>g)
    		{
    			w/=2;
    			h/=2;
    		}
    		if(w<l || h<l)
    		{
    			cout<<"Too Young"<<endl;
    		}
    		else if(w!=h)
    		{
    			cout<<"Too Simple"<<endl;
    		}
    		else cout<<"Sometimes Naive"<<endl;
    	}
    	return 0;
    }
    
    • 1

    信息

    ID
    4288
    时间
    1000ms
    内存
    125MiB
    难度
    2
    标签
    递交数
    0
    已通过
    0
    上传者