码迷,mamicode.com
首页 > 其他好文 > 详细

caohaha's stuff

时间:2017-08-20 12:41:40      阅读:123      评论:0      收藏:0      [点我收藏+]

标签:class   最大   int   alt   its   ima   代码   题目   面积   

2017-08-20 11:12:29

writer:pprp
CCPC预选赛水平太菜了,去不了了

这个是一个找规律的题目,题意一开始也很难理解

题意描述:

给你一个数,比如说1,在一个坐标系中你需要用多少个线段(横着竖着对角线都可以)才能围出1单位的面积

很容易发现,当尽可能多的是对角线才能满足面积最大

技术分享

规律如图:加一个边,两个边,三个边,四个边

这几种情况

代码如下:(大佬的)

#include <bits/stdc++.h>

using namespace std;

int main()
{
    int T, S;
    scanf("%d", &T);
    while(T--)
    {
        scanf("%d", &S);

        int L = sqrt(S/2);   
        int area = 2*L*L;          
        
        if(S - area == 0)  //如果恰好等于
        {
            printf("%d\n", L * 4);
        }
        else if(S - area <= L - 1)
        {
            printf("%d\n", L * 4 + 1);
        }
        else if(S - area <= 2 * L)
        {
            printf("%d\n", L * 4 + 2);
        }
        else if(S <= 2 * (L + 1) * (L + 1) - (L + 2))
        {
            printf("%d\n", L * 4 + 3);
        }
        else
        {
            printf("%d\n", (L + 1)*4);
        }
    }

    return 0;
}

orz ...

caohaha's stuff

标签:class   最大   int   alt   its   ima   代码   题目   面积   

原文地址:http://www.cnblogs.com/ilovelianghui/p/7399317.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!