2017CCPC网络赛1005 hdu6154 CaoHaha's staff

来源:互联网 发布:人工智能 估值 编辑:程序博客网 时间:2024/05/16 08:17

题目

找规律题目,当时有些思路,但是懒得写了。
后来看了看别人博客,发现有更成熟的思想。
传送门
从面积为2的正方形能推出以后全部的。每四个笔画一个循环。
第一笔和第三笔都是向外“凸”出,凸出的大小是x1,从0.5开始每次循环的第一笔+1.
第二笔和第三笔都是比最开始加了一个正方形,也就是x2,从2开始,每次循环的第二笔+2.

(看了pz大爷的代码风格,好优美,学习一下。)

#include<bits/stdc++.h>using namespace std;const int MAXN=1e5;double D[MAXN];void init(){    double x1 = 0.5,x2 = 2.0;    D[4] = 2;    for (int i = 5; i < MAXN; i++)    {        if(i%4 == 1) D[i] = D[i-1] + x1, x1 + = 1.0;        if(i%4 == 2) D[i] = D[i-2] + x2, x2 + = 2.0;        if(i%4 == 3) D[i] = D[i-1] + x1;        if(i%4 == 0) D[i] = D[i-2] + x2;    }}int main(){    int testCase;    double n;    scanf("%d",&testCase);    init();    while (testCase--)    {        scanf("%lf",&n);        for (int i = 5; i < MAXN; i++)        {            if (D[i] >= n)            {                printf("%d\n",i);                break;            }        }    }    return 0;}
原创粉丝点击