天天看點

hdu 1176

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

<code>數塔問題&lt;br&gt;#include&lt;iostream&gt;</code>

<code>#include&lt;cstring&gt;</code>

<code>using</code>

<code>namespace</code> <code>std;</code>

<code>int</code> <code>a[100009][12];</code>

<code>int</code> <code>maxi(</code><code>int</code>

<code>a,</code><code>int</code> <code>b,</code><code>int</code> <code>c)</code>

<code>{</code>

<code>    </code><code>int</code>

<code>max1;</code>

<code>    </code><code>max1=a&gt;b?a:b;</code>

<code>    </code><code>max1=max1&gt;c?max1:c;</code>

<code>    </code><code>return</code>

<code>}</code>

<code>int</code>

<code>main()</code>

<code>n,x,y;</code>

<code>    </code><code>while</code><code>(cin&gt;&gt;n)</code>

<code>    </code><code>{</code>

<code>        </code><code>if</code><code>(n==0)</code><code>break</code><code>;</code>

<code>        </code><code>int</code>

<code>max=0;</code>

<code>        </code><code>memset</code><code>(a,0,</code><code>sizeof</code><code>(a));</code>

<code>        </code><code>for</code><code>(</code><code>int</code>

<code>ii=0;ii&lt;n;ii++)</code>

<code>        </code><code>{</code>

<code>            </code><code>scanf</code><code>(</code><code>"%d%d"</code><code>,&amp;x,&amp;y);</code>

<code>            </code><code>//cin&gt;&gt;x&gt;&gt;y;</code>

<code>            </code><code>a[y][x]++;</code>

<code>            </code><code>if</code><code>(y&gt;max)</code>

<code>                </code><code>max=y;</code>

<code>        </code><code>}</code>

<code>i=max-1;i&gt;=0;i--)</code>

<code>            </code><code>if</code><code>(a[i+1][0]&gt;a[i+1][1]) a[i][0]+=a[i+1][0];</code>

<code>            </code><code>else</code>

<code>                </code><code>a[i][0]+=a[i+1][1];</code>

<code>            </code><code>for</code><code>(</code><code>int</code>

<code>j=1;j&lt;=9;j++)</code>

<code>                </code><code>a[i][j]+=maxi(a[i+1][j],a[i+1][j-1],a[i+1][j+1]);</code>

<code>            </code><code>if</code><code>(a[i+1][10]&gt;a[i+1][9])</code>

<code>                </code><code>a[i][10]+=a[i+1][10];</code>

<code>                </code><code>a[i][10]+=a[i+1][9];</code>

<code>        </code><code>cout&lt;&lt;a[0][5]&lt;&lt;endl;</code>

<code>    </code><code>}</code>

<code>0;</code>