IMBA? HDU

来源:互联网 发布:ssh连接指定端口 编辑:程序博客网 时间:2024/06/07 00:55
As a kind problem setter, I should warn you, as you may already notice the sample output, it’s a horrible problem and very IMBA (imbalanced). 
Today we learn circle, a circle is a simple shape of Euclidean geometry consisting of those points in a plane that are a given distance from a given point, the center. The distance between any of the points and the center is called the radius. 
Circles are simple closed curves which divide the plane into two regions: an interior and an exterior. In everyday use, the term "circle" may be used interchangeably to refer to either the boundary of the figure, or to the whole figure including its interior; in strict technical usage, the circle is the former and the latter is called a disk. 
A circle can be defined as the curve traced out by a point that moves so that its distance from a given point is constant. A circle may also be defined as a special ellipse in which the two foci are coincident and the eccentricity is 0. Circles are conic sections attained when a right circular cone is intersected by a plane perpendicular to the axis of the cone. 
Now let’s draw a circle with your program. Given a radius R, we draw a circle in a (2*R + 1) * (2*R + 1) rectangle, set the center of circle at (R, R) (0-based), for all point, if the square root of the difference between the square of its distance to the center and the square of the radius is less than 
1.732050807568877293527446341505872366942805253810380628055806979451933016908800037081146186757248575675626141415406703029969945094998952478
81165551209437364852809323190230558206797482010108467492326501531234326690332288665067225466892183797122704713166036786158801904998653737985
9389467650347506576051, draw a star (‘*’), otherwise draw a blank. 
Refer to the output for more details. To avoid Presentation Error, you should output exactly the same characters in each row of one test case. The sample output are not completely standard for some non-shown blanks, take care. 
Input
The first line contains a single integer T, indicating the number of test cases. 
Each test case contains one integer R. 

Technical Specification 
1. 1 <= T <= 10 
2. 3 <= R <= 18 
Output
For each test case, output the case number in the first line, then a circle required in the description.
Sample Input
21013
Sample Output
Case 1:         ***      *       *    *           *   *             *  *               * *                 **                   **                   **                   * *                 *  *               *   *             *    *           *      *       *         ***Case 2:            ***        *         *      *             *  *                     * *                       **                         **                         **                         * *                       *  *                     *      *             *        *         *            ***          
Hint
If you can’t output the sample output, or you get a Wrong Answer and then find your program didn’t output as the sample, please don’t ask me why or talk to your teammate, “IS iSea a SX? Obviously wrong sample! ”, think, and think again.
虽然这个题是简单题,只要懂题意就行,但是还是得给刚入门的ER们多点材料。
题意:给定n个测试实例,然后给定R也即是半径,说以(R,R)为圆心,进行画图,总范围不能超过2*R+1,
此题关键是条件判断是“*”还是“ ”,条件是:每个点的坐标距离圆心的距离与半径的平方的差值不能超过体重给的那个数的平方,大约可以使3,若成立则“*”否则“ ”;
#include <cstdio>#include <algorithm>#include <iostream>#include <queue>#include <string.h>#include <math.h>#include <cmath>using namespace std;int main(){    int n;    cin>>n;    int r,k=1;    while(n--)    {        cin>>r;        int daxiao=2*r+1;        printf("Case %d:\n",k++);        for(int i=0; i<daxiao; i++)        {            for(int j=0; j<daxiao; j++)            {                if(abs((i-r)*(i-r)+(j-r)*(j-r)-r*r)<=3)                    printf("*");                else                    printf(" ");            }            printf("\n");        }    }}



原创粉丝点击