博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
P1004 方格取数
阅读量:4663 次
发布时间:2019-06-09

本文共 1254 字,大约阅读时间需要 4 分钟。

题目链接:

emmmmmm
那么这个题目吧,也是好久之前做的,理解了一下代码,下面大概说一下做法哈
嗯首先,因为只要走两次,so我们可以假设一个从(1,1)开始向(n,n)走,而另一个从(n,n)开始向(1,1)走
实际上呢这题很想下午说的数字三角形变换的数字正方形,当然,做两次
那么因为n过小,so开四维也无所谓,前两维i,j表示第一个人走到(i,j)能够达到的做大值,而后两维k,l表示第二个人走到(k,l)时能达到的最大值
有一点需要注意的是如果两个人走到了同一位置,那么就需要减掉一次这一位置的数字
下面贴上代码:

1 #include
2 #include
3 #include
4 #include
5 #include
6 #include
7 #include
8 #include
9 #include
10 #include
11 #include
12 #include
13 #include
14 #include
15 #include
16 #include
17 #include
18 #include
19 using namespace std;20 21 int n;22 int a[10][10],f[10][10][10][10];23 24 int ma(int a,int b){ return a>b?a:b;}25 26 int main(){27 scanf("%d",&n);28 while(1){29 int x,y,z;30 scanf("%d%d%d",&x,&y,&z);31 if(x==0&&y==0&&z==0){32 break;33 }34 a[x][y]=z;35 }36 for(int i=1;i<=n;i++){37 for(int j=1;j<=n;j++){38 for(int k=1;k<=n;k++){39 for(int l=1;l<=n;l++){40 f[i][j][k][l]=ma(f[i-1][j][k-1][l],ma(f[i][j-1][k-1][l],ma(f[i-1][j][k][l-1],f[i][j-1][k][l-1])))+a[i][j]+a[k][l];41 if(i==k&&j==l){42 f[i][j][k][l]-=a[i][j];43 }44 }45 }46 }47 }48 printf("%d\n",f[n][n][n][n]);49 return 0;50 }

日常嘤嘤嘤

and

新人开博鼓励一下吧(哭唧唧)~~

转载于:https://www.cnblogs.com/hahaha2124652975/p/11123198.html

你可能感兴趣的文章
ASP.NET页面使用JQuery EasyUI生成Dialog后台取值为空
查看>>
EDM营销之双十一最新实战营销指南汇总
查看>>
SpringBoot系列——mail
查看>>
到处都是jQuery选择器的年代,不了解它们的性能,行吗?
查看>>
SDN第三次上机作业
查看>>
用信号量进程同步与互斥
查看>>
labview状态机
查看>>
twemproxy与sentinel整合步骤
查看>>
2018.0213java学习日志
查看>>
luogu 3865 【模板】ST表
查看>>
ASP.NET 高级编程基础第十一篇—WebForm和Page类成员
查看>>
Android的计量单位px,in,mm,pt,dp,dip,sp
查看>>
Phoenix映射HBase数据表
查看>>
HDU 3333 Turing Tree (树状数组)
查看>>
为什么学习html5
查看>>
又是一年六一
查看>>
对象的赋值
查看>>
通过Nginx配置文件抵御攻击
查看>>
策略模式
查看>>
Windows7与Window2008 64位IIS7上面DCOM配置Excel、Word等
查看>>