首页 > ACM题库 > HDU-杭电 > hdu 3906 Girls’ Party待解决[解题报告]C++
2015
04-14

hdu 3906 Girls’ Party待解决[解题报告]C++

Girls’ Party

问题描述 :

Issac H. Ives hosted a party for girls. He had some nice goods and wanted to distribute them to the girls as the presents. However, there were not enough number of presents and thus he needed to decide who would take them. He held a game for that purpose.
Before the game, Issac had all the girls divided into two teams: he named his close friends Bella and Gabriella as two leaders and asked other girls to join either Bella or Gabriella. After the two teams were formed, Issac asked the girls to form one big circle.
The rule of the game was as follows. The game consisted of a number of rounds. In each round, the girls called numbers from 1 to N in clockwise order (N was a number fixed before the game started). The girl calling the number N was told to get out of the circle and excluded from the rest of the game. Then the next round was started from the next girl, that is, the girls called the numbers again, and the one calling N left the circle. This was repeated until only the members of either team remained. The remaining team won the game.
As the game went on, Bella found far more girls of her team excluded than those of Gabriella’s team. Bella complained it, and requested Issac to make the next round begin with a call of zero instead of one. Issac liked her idea as he was a computer scientist, and accepted her request. After that round, many girls of Gabriella’s team came to leave the circle, and eventually Bella’s team won the game and got the presents from Issac.
Now let’s consider the following situation. There are two teams led by Bella and Gabriella respectively, where they do not necessarily have the same numbers of members. Bella is allowed to change the starting number from one to zero at up to one round (regardless the starting girl belongs to her team or not). We want to know how many girls of Bella’s team at most can remain in the circle. You are requested to write a program for it.

输入:

The input is a sequence of datasets. The first line of the input contains the number of datasets. The number of datasets does not exceed 200.
Each dataset consists of a line with a positive integer N (1 <= N <= 2^30) and a string that specifies the clockwise order of the girls. Each character of the string is either ‘B’ (that denotes a member of Bella’s team) or ‘G’ (Gabriella’s team). The first round begins with the girl indicated by the first character of the string. The length of the string is between 2 and 20000 inclusive.

输出:

The input is a sequence of datasets. The first line of the input contains the number of datasets. The number of datasets does not exceed 200.
Each dataset consists of a line with a positive integer N (1 <= N <= 2^30) and a string that specifies the clockwise order of the girls. Each character of the string is either ‘B’ (that denotes a member of Bella’s team) or ‘G’ (Gabriella’s team). The first round begins with the girl indicated by the first character of the string. The length of the string is between 2 and 20000 inclusive.

样例输入:

6
1 GB
3 GBGBBB
9 BBBGBBBGGG
9 GGBGBBGBBB
7 GBGGGGBGGG
3 BBBBBGBBBB

样例输出:

1
4
4
1
0
8


  1. 你的理解应该是:即使主持人拿走一个箱子对结果没有影响。这样想,主持人拿走的箱子只是没有影响到你初始选择的那个箱子中有奖品的概率,但是改变了其余两个箱子的概率分布。由 1/3,1/3 变成了 0, 2/3