2014年7月25日 星期五

uva 10079 Pizza Cutting

把 0 ~ 10 計算出來就會比較有感覺,他是有個規律在。

0 : 1
1 : 2
2 : 4
3 : 7
4 : 11
5 : 16
6 : 22
7 : 29
8 : 37
9 : 46
10 : 56

從上面可以發現,下一個的塊數為上一個的塊數 + 這次的直線數量

如果接下來都是這樣,可以歸納出一個公式 : ( n ^ 2 + n ) / 2 + 1


接下來都會符合,因為:

最大塊數和這條直線可以在上一個最大塊數的情況下最多可以經過幾個區塊,每經過一個區

塊,就會多切出一塊;

最多可以經過幾個區塊跟上一個的直線數有關,區塊和區塊之間是由線分隔,兩條線最多只

會有一個交點,區塊之間由交點分隔,區塊 = 交點數 + 1,最多交點數為上一個的直線數。

Sn : n 條線最多可以切出的塊數

Sn = Sn-1 + n  => ( n ^ 2 + n ) / 2 + 1


注意:測資大小的範圍 : 0 <= N <= 210000000 => 可用 long long int

long long int 如果在 windows 下跑  210000000出現 overflow 的情況,這是因為環境的問

題,judge 的環境,long long int 可以處理這麼大的數字的。


#include <stdio.h>
#include <stdlib.h>

int main(void){
    long long int line;

    while(scanf("%lld",&line)!=EOF){
        if(line < 0) break;

        printf("%lld\n", ( (line*line+line)/2 + 1 ) );
    }

    return 0;
}

1 則留言:

  1. Emperor Casino Slot Machine | Shootercasino.com
    This is a game from the game 'Royal Casino' 제왕카지노 that features a 5 reels, 4 rows and 4096 kadangpintar ways to win. 1xbet

    回覆刪除