F - Cow Bowling
Time Limit:1000MS Memory Limit:65536KB 64bit IO Format:%I64d & %I64u
Submit Status Practice POJ 3176
Description
The cows don't use actual bowling balls when they go bowling. They each take a number (in the range 0..99), though, and line up in a standard bowling-pin-like triangle like this:
7
3 8
8 1 0
2 7 4 4
4 5 2 6 5
Then the other cows traverse the triangle starting from its tip and moving "down" to one of the two diagonally adjacent cows until the "bottom" row is reached. The cow's score is the sum of the numbers of the cows visited along the way. The cow with the highest score wins that frame.
Given a triangle with N (1 <= N <= 350) rows, determine the highest possible sum achievable.
Input
Line 1: A single integer, N
Lines 2..N+1: Line i+1 contains i space-separated integers that represent row i of the triangle.
Output
Line 1: The largest sum achievable using the traversal rules
Sample Input
5
7
3 8
8 1 0
2 7 4 4
4 5 2 6 5
Sample Output
30
Hint
Explanation of the sample:
7
*
3 8
*
8 1 0
*
2 7 4 4
*
4 5 2 6 5
The highest score is achievable by traversing the cows as shown above.
题意:
数N代表一共有多少层,然后从顶层走到最下层,求数加起来的最大和。
思路:
这是简单的动态规划题,列出状态转移方程sum[ i ][ j ]=max { sum [ i+1 ][ j ],sum[ i+1 ][ j+1 ] } + a[ i ][ j ],所以可以从底部开始递推上去,首先先令 sum [N] [1]=a [N] [1],然后从最底层开始向上循环,循环体为sum[i][j]+=(sum[i+1][j]>sum[i+1][j+1]?sum[i+1][j]:sum[i+1][j+1])+a[i][j],则最后输出sum[1][1]即可算出得数。
AC:
#include<stdio.h> int main() { int a[400][400],sum[400][400]; int N,i,j; scanf("%d",&N); for(i=1;i<=N;i++) for(j=1;j<=i;j++) scanf("%d",&a[i][j]); for(i=1;i<=N;i++) sum[N][i]=a[N][i]; for(i=N-1;i>=0;i--) for(j=1;j<=N;j++) sum[i][j]+=(sum[i+1][j]>sum[i+1][j+1]?sum[i+1][j]:sum[i+1][j+1])+a[i][j]; printf("%d\n",sum[1][1]); }
总结:
这是前几天就做过的题,今天再完整的写一遍出来,当做复习一遍。
相关推荐
北大POJ3176-Cow Bowling
北京大学的在线判题系统POJ(Problem Online Judge)中有一道颇受欢迎的题目——"Cow Bowling",编号为3176。这是一道涉及动态规划和概率计算的编程题目,旨在考察参赛者的算法设计和实现能力。 题目描述: 在本题...
《基于OGRE实现的小游戏Wii_Bowling(保龄球)》 在这个项目中,我们探讨了如何利用OGRE(Object-Oriented Graphics Rendering Engine)游戏引擎来开发一款类似于Wii上的保龄球小游戏。OGRE是一款强大的、开源的3D...
Opengl 制作的保龄球Demo 带碰撞处理
在我们面前的是一个名为"bowling.rar"的压缩包,里面包含了一个由用户制作的简单保龄球游戏。这个项目不仅展示了作者的编程技能,还揭示了图形学在游戏开发中的应用。通过分析这个游戏,我们可以学习到多个关键的IT...
Bowling Run 3D 保龄球冲刺3D Unity休闲体育游戏项目源码C# 支持Unity版本2021.3.16f1及以上 打一场精彩的保龄球! 您操控保龄球瓶并引导它们到达球门! 这不是普通的保龄球游戏! 你必须一边走一边毁掉随处可见的...
bowling_outline
【标题】"baolingqiu.rar_baolingqiu_bowling_保龄球" 提供的是一个关于保龄球游戏的源代码项目。保龄球游戏是一种模拟真实保龄球运动的电子游戏,通常包括投球、追踪球路、计算得分等核心功能。 【描述】"保龄球源...
Haghshenas-Jaryani 和 Bowling - 2013 - A new switching strategy for addressing Euler para.pdf.zipHaghshenas-Jaryani 和 Bowling - 2013 - A new switching strategy for addressing Euler para.pdf....
精品运动PPT模板bowling_outline011
保龄球记分程序_bowling-score
保龄球计分程序_bowling_score
一个保龄球计分程序_Bowling
保龄球计分,C语言实现1、bai 全中:当每一个格的第一次投球击倒全du部竖立的十个瓶zhi子时,称为全中。用(X)符号记录在记分表上dao该格上方右边的小方格中。全中的记分是10分加该运动员下两次投球击倒的瓶数。...
保龄球的计分规则_bowling_game
我重构了 XP Bowling 一集中 Bob 大叔的代码。 我在 Unlce Bob 的代码中看到的一个问题是,一个对象既要聚合帧分数,又要对每一帧进行评分。 我尝试了很多设计,但我发现使用状态模式的设计是唯一令人满意的设计。...
保龄球活动(react版本)_bowling-active
本篇文章将深入探讨一个基于Unity引擎开发的3D保龄球游戏,即"(5-2019)3d保龄球游戏(单人多人)3D-bowling-game.rar",通过分析其项目结构和关键技术,来揭示3D游戏开发中的核心知识点。 一、Unity引擎基础 ...
营销策划 -D-BOWLING潮流运动服饰品牌手册.pdf
Real Bowling Experience 真正的保龄球体验 – 高级源代码 描述 真正的保龄球体验 – 优质源代码 – 广告集成 这是Android手机上最好、最真实的3D保龄球游戏。这是唯一完全拥抱的保龄球游戏。 保龄球世界俱乐部的...