首页 > ACM题库 > HDU-杭电 > hdu 2252 The dress rehearsal of opening ceremony待解决[解题报告]C++
2014
01-04

hdu 2252 The dress rehearsal of opening ceremony待解决[解题报告]C++

The dress rehearsal of opening ceremony

问题描述 :

As we all known, the Beijing Olympic Games had been hold in Aug 8th,2008.We are all excited about the opening ceremony directed by Yimou Chang. But how many people can taste the difficulties and the tears during the dress rehearsal.
I know we must have a deep impression to the performance named “Print”, finally it displays the Chinese word “和”, which means our Chinese people love peace and harmony. Yimou tells me that there are many actresses in the play, each one has a number from 1, 9, … to 9^m(0<=m<2^31). Those whose number’s first digit is 9, will stand to make up the “和” at last, while others will squat. The total number of people who make up the “和” is N. Maybe N is too big, so let N=N%249+2.
Another moving story, there are N small circles on the ground. Each circle stands an actress. The N small circles form a big circle. At the beginning, the actresses play around the big circle clockwise. That means one actress jumped to the adjacent small circle in colckwise of the small circle she is now in. But clever Yimou find that after N times, every actress will be back to her original place. The time is too short. In order to lengthen the time of the performance, he changes his mind. Yimou also sets N arrows on the ground. Each small circle is just the start of a arrow and the end of another arrow. No circle has the same arrow’s start and end. Every actress jumps to the next circle along the direction of the arrow. When all the actresses return to their original circle, their performance ends. Now Yimou wants to know the maximal steps they can have. If you know the answer, please call “110” to tell Yimou, I think you will get a BIG surprise!

输入:

There are multiple test cases. Each case only have an interger m. Process to the End Of File.

输出:

There are multiple test cases. Each case only have an interger m. Process to the End Of File.

样例输入:

1
23

样例输出:

3
4


  1. #include <stdio.h>
    int main(void)
    {
    int arr[] = {10,20,30,40,50,60};
    int *p=arr;
    printf("%d,%d,",*p++,*++p);
    printf("%d,%d,%d",*p,*p++,*++p);
    return 0;
    }

    为什么是 20,20,50,40,50. 我觉得的应该是 20,20,40,40,50 . 谁能解释下?

  2. 这道题这里的解法最坏情况似乎应该是指数的。回溯的时候
    O(n) = O(n-1) + O(n-2) + ….
    O(n-1) = O(n-2) + O(n-3)+ …
    O(n) – O(n-1) = O(n-1)
    O(n) = 2O(n-1)