当前位置:网站首页>POJ 3176 cow bowling (DP | memory search)
POJ 3176 cow bowling (DP | memory search)
2022-07-05 11:28:00 【Full stack programmer webmaster】
Cow Bowling
Time Limit: 1000MS | Memory Limit: 65536K | |
---|---|---|
Total Submissions: 14210 | Accepted: 9432 |
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
Number triangle problem .. Able to sit from bottom to top dp dp[i][j]=ma[i][j]+max(dp[i+1][j],dp[i+1][j+1])
Giant water .. Think of my ignorant brush six months ago dp I don't know anything .. Ah What a sad story ..
#include <algorithm>
#include <iostream>
#include <cstring>
#include <cstdlib>
#include <string>
#include <cctype>
#include <vector>
#include <cstdio>
#include <cmath>
#include <queue>
#include <stack>
#include <map>
#include <set>
#define ll long long
#define maxn 360
#define pp pair<int,int>
#define INF 0x3f3f3f3f
#define max(x,y) ( ((x) > (y)) ? (x) : (y) )
#define min(x,y) ( ((x) > (y)) ? (y) : (x) )
using namespace std;
int n,dp[maxn][maxn],ma[maxn][maxn];
void solve()
{
for(int i=0;i<n;i++)
dp[n-1][i]=ma[n-1][i];
for(int i=n-2;i>=0;i--)
for(int j=0;j<=i;j++)
dp[i][j]=max(ma[i][j]+dp[i+1][j],ma[i][j]+dp[i+1][j+1]);
printf("%d\n",dp[0][0]);
}
int main()
{
while(~scanf("%d",&n))
{
for(int i=0;i<n;i++)
for(int j=0;j<=i;j++)
scanf("%d",&ma[i][j]);
memset(dp,0,sizeof(dp));
solve();
}
return 0;
}
It can also be memorized from top to bottom Search for .. Then the meaning of the state array is almost the same .. Personally, I think search is easier to write ...
#include <algorithm>
#include <iostream>
#include <cstring>
#include <cstdlib>
#include <string>
#include <cctype>
#include <vector>
#include <cstdio>
#include <cmath>
#include <queue>
#include <stack>
#include <map>
#include <set>
#define ll long long
#define maxn 360
#define pp pair<int,int>
#define INF 0x3f3f3f3f
#define max(x,y) ( ((x) > (y)) ? (x) : (y) )
#define min(x,y) ( ((x) > (y)) ? (y) : (x) )
using namespace std;
int n,dp[maxn][maxn],ma[maxn][maxn];
int dfs(int x,int y)
{
if(x==n-1)return ma[x][y];
if(dp[x][y]>=0)return dp[x][y];
dp[x][y]=0;
dp[x][y]+=(ma[x][y]+max(dfs(x+1,y),dfs(x+1,y+1)));
return dp[x][y];
}
int main()
{
while(~scanf("%d",&n))
{
for(int i=0;i<n;i++)
for(int j=0;j<=i;j++)
scanf("%d",&ma[i][j]);
memset(dp,-1,sizeof(dp));
printf("%d\n",dfs(0,0));
}
return 0;
}
Publisher : Full stack programmer stack length , Reprint please indicate the source :https://javaforall.cn/109498.html Link to the original text :https://javaforall.cn
边栏推荐
- 如何将 DevSecOps 引入企业?
- pytorch训练进程被中断了
- 如何让全彩LED显示屏更加节能环保
- COMSOL -- three-dimensional graphics random drawing -- rotation
- 2048游戏逻辑
- 如何通俗理解超级浏览器?可以用于哪些场景?有哪些品牌?
- 解决readObjectStart: expect { or n, but found N, error found in #1 byte of ...||..., bigger context ..
- 紫光展锐全球首个5G R17 IoT NTN卫星物联网上星实测完成
- c#操作xml文件
- 爬虫(9) - Scrapy框架(1) | Scrapy 异步网络爬虫框架
猜你喜欢
DDR4硬件原理图设计详解
Three paradigms of database
How can China Africa diamond accessory stones be inlaid to be safe and beautiful?
修复动漫1K变8K
Modulenotfounderror: no module named 'scratch' ultimate solution
购买小间距LED显示屏的三个建议
Is it difficult to apply for a job after graduation? "Hundreds of days and tens of millions" online recruitment activities to solve your problems
How to introduce devsecops into enterprises?
[crawler] bugs encountered by wasm
Stop saying that microservices can solve all problems!
随机推荐
Ddrx addressing principle
Go language learning notes - first acquaintance with go language
Manage multiple instagram accounts and share anti Association tips
Golang application topic - channel
基础篇——REST风格开发
How to understand super browser? What scenarios can it be used in? What brands are there?
【Oracle】使用DataGrip连接Oracle数据库
跨境电商是啥意思?主要是做什么的?业务模式有哪些?
An error is reported in the process of using gbase 8C database: 80000305, host IPS long to different cluster. How to solve it?
Lombok 同时使⽤@Data和@Builder 的坑,你中招没?
How to make full-color LED display more energy-saving and environmental protection
Redis如何实现多可用区?
项目总结笔记系列 wsTax KT Session2 代码分析
FFmpeg调用avformat_open_input时返回错误 -22(Invalid argument)
PHP中Array的hash函数实现
[Oracle] use DataGrid to connect to Oracle Database
How can China Africa diamond accessory stones be inlaid to be safe and beautiful?
如何通俗理解超级浏览器?可以用于哪些场景?有哪些品牌?
[JS] extract the scores in the string, calculate the average score after summarizing, compare with each score, and output
Summary of thread and thread synchronization under window