首页 > ACM题库 > HDU-杭电 > hdu 2368 Alfredo’s Pizza Restaurant[解题报告]C++
2014
01-05

hdu 2368 Alfredo’s Pizza Restaurant[解题报告]C++

Alfredo’s Pizza Restaurant

问题描述 :

Traditionally after the Local Contest, judges and contestants go to their favourite restaurant, Alfredos Pizza Restaurant. The contestants are really hungry after trying hard for five hours. To get their pizza as quickly as possible, they just decided to order one big pizza for all instead of several small ones. They wonder whether it is possible to put the big rectangular pizza on the surface of the round table such that it does not overhang the border of the table. Write a program that helps them!

输入:

The input file contains several test cases. Each test case starts with an integer number r, the radius of the surface of the round table the contestants are sitting at. Input is terminated by r=0. Otherwise, 1 ≤ r ≤ 1000. Then follow 2 integer numbers w and l specifying the width and the length of the pizza, 1 ≤ w ≤ l ≤ 1000.

输出:

The input file contains several test cases. Each test case starts with an integer number r, the radius of the surface of the round table the contestants are sitting at. Input is terminated by r=0. Otherwise, 1 ≤ r ≤ 1000. Then follow 2 integer numbers w and l specifying the width and the length of the pizza, 1 ≤ w ≤ l ≤ 1000.

样例输入:

38 40 60
35 20 70
50 60 80
0

样例输出:

Pizza 1 fits on the table.
Pizza 2 does not fit on the table.
Pizza 3 fits on the table.

#include <stdio.h>

int main()
{
    double r,a,b;
    int cas = 1;
    while(~scanf("%lf",&r),r)
    {
        scanf("%lf%lf",&a,&b);
        a = a/2;
        b = b/2;
        if(a*a + b*b > r*r)
        printf("Pizza %d does not fit on the table.\n",cas++);
        else
        printf("Pizza %d fits on the table.\n",cas++);
    }

    return 0;
}

解题转自:http://blog.csdn.net/libin56842/article/details/15028497


  1. 您没有考虑 树的根节点是负数的情况, 若树的根节点是个很大的负数,那么就要考虑过不过另外一边子树了

  2. 如果两个序列的最后字符不匹配(即X [M-1]!= Y [N-1])
    L(X [0 .. M-1],Y [0 .. N-1])= MAX(L(X [0 .. M-2],Y [0 .. N-1]),L(X [0 .. M-1],Y [0 .. N-1])
    这里写错了吧。

  3. 学算法中的数据结构学到一定程度会乐此不疲的,比如其中的2-3树,类似的红黑树,我甚至可以自己写个逻辑文件系统结构来。

  4. a是根先忽略掉,递归子树。剩下前缀bejkcfghid和后缀jkebfghicd,分拆的原则的是每个子树前缀和后缀的节点个数是一样的,根节点出现在前缀的第一个,后缀的最后一个。根节点b出现后缀的第四个位置,则第一部分为四个节点,前缀bejk,后缀jkeb,剩下的c出现在后缀的倒数第2个,就划分为cfghi和 fghic,第3部分就为c、c