P1084 数字三角形4

题解:dp+dfs.

#include <iostream>
#include <cstdio>
#include <algorithm>
#include <cstring>
using namespace std;
const int maxn = ;
int dp[maxn][maxn];
int cnt[maxn][maxn];
int n;
int dfs(int x,int y)
{
if(x==&&y==) return cnt[][];
if(y==) return dfs(x-,y)+cnt[x][y];
if(x>)return max(dfs(x-,y),dfs(x-,y-))+cnt[x][y];
}
int main()
{
scanf("%d",&n);
for(int i=;i<=n;i++)
{
for(int j=;j<=i;j++)
{
scanf("%d",&cnt[i][j]);
}
}
int x,y;
scanf("%d %d",&x,&y);
for(int i=;i<=n;i++) dp[n][i] = cnt[n][i];
for(int i=n-;i>=x;i--)
{
for(int j=;j<=i;j++)
{
dp[i][j] = max(dp[i+][j],dp[i+][j+])+cnt[i][j];
}
}
int sum = ;
sum = dfs(x,y);
sum = sum+dp[x][y]-cnt[x][y];
printf("%d\n",sum);
return ;
}
/*
4
7
1 2
3 4 5
7 3 8 9
3 2
*/

卷珠帘

P1004 滑雪

题解:dfs.咦,我本来是来炼dp的。。。不做水题了。

#include <cstdio>
#include <algorithm>
#include <cstring>
using namespace std;
int n,m;
const int maxn = ;
int cnt[maxn][maxn];
int vis[maxn][maxn];
int dp[maxn][maxn];
int dfs(int x,int y)
{
if(x<||y<) return ;
if(x>n||y>m) return ;
if(vis[x][y]) return dp[x][y];
vis[x][y] = ;
int a,b,c,d;
a = b = c = d = ;
if(cnt[x-][y]<cnt[x][y]) a = dfs(x-,y);
if(cnt[x+][y]<cnt[x][y]) b = dfs(x+,y);
if(cnt[x][y+]<cnt[x][y]) c = dfs(x,y+);
if(cnt[x][y-]<cnt[x][y]) d = dfs(x,y-);
dp[x][y] = max(max(a,b),max(c,d))+;
return dp[x][y];
}
int main()
{
scanf("%d %d",&n,&m);
for(int i=;i<=n;i++)
{
for(int j=;j<=m;j++)
{
scanf("%d",&cnt[i][j]);
}
}
int maxx = ;
for(int i=;i<=n;i++)
{
for(int j=;j<=m;j++)
{
maxx = max(dfs(i,j),maxx);
}
}
printf("%d\n",maxx);
}

卷珠帘

nyoj15 括号匹配(二)

题解:接触的第一道区间dp题。

#include <cstdio>
#include <algorithm>
#include <cstring>
using namespace std;
const int maxn = ;
char s[maxn];
int dp[maxn][maxn];
int main()
{
int t;
scanf("%d",&t);
while(t--)
{
scanf("%s",s+);
int n = strlen(s+);
for(int i=;i<=n;i++)
{
for(int j=;j<=n;j++)
{
if(i == j) dp[i][j] = ;
else dp[i][j] = ;
}
dp[i][i-] = ;
}
//i和j分别表示一段连续字符的起点和终点
for(int l=;l<=n-;l++)
{
for(int i=;i+l<=n;i++)
{
int j = i+l;
if(s[i]=='('&&s[j]==')'||(s[i]=='['&&s[j]==']')) dp[i][j] = min(dp[i][j],dp[i+][j-]);
for(int k=i;k<j;k++)
{
dp[i][j] = min(dp[i][j],dp[i][k]+dp[k+][j]);
}
}
}
printf("%d\n",dp[][n]);
}
} /*
31
()([)][])
*/

卷珠帘

修炼dp( 2 )的更多相关文章

  1. 修炼dp(1)

    从最简单的开始: POJ:The Triangle #include <cstdio> #include <algorithm> #include <cstring> ...

  2. hdoj 2059 :龟兔赛跑 (DP)[转]

      转的别人的找了很多就这个比较好理解.   Problem Description 据说在很久很久以前,可怜的兔子经历了人生中最大的打击——赛跑输给乌龟后,心中郁闷,发誓要报仇雪恨,于是躲进了杭州下 ...

  3. 杭电2059(dp)

    龟兔赛跑 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submis ...

  4. 【巧妙消维DP】【HDU2059】龟兔赛跑

    龟兔赛跑 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submi ...

  5. hdu 2059 龟兔赛跑(dp)

    龟兔赛跑 Problem Description 据说在很久很久以前,可怜的兔子经历了人生中最大的打击——赛跑输给乌龟后,心中郁闷,发誓要报仇雪恨,于是躲进了杭州下沙某农业园卧薪尝胆潜心修炼,终于练成 ...

  6. 龟兔赛跑(DP)

    龟兔赛跑 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submis ...

  7. 「NOI2013」小 Q 的修炼 解题报告

    「NOI2013」小 Q 的修炼 第一次完整的做出一个提答,花了半个晚上+一个上午+半个下午 总体来说太慢了 对于此题,我认为的难点是观察数据并猜测性质和读入操作 我隔一会就思考这个sb字符串读起来怎 ...

  8. HDU 2059 龟兔赛跑(超级经典的线性DP,找合适的j,使得每个i的状态都是最好的)

    龟兔赛跑 Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u Submit Status ...

  9. hdu 2059:龟兔赛跑(动态规划 DP)

    龟兔赛跑 Time Limit : 1000/1000ms (Java/Other)   Memory Limit : 32768/32768K (Java/Other) Total Submissi ...

随机推荐

  1. Django:之ORM、CMS和二维码生成

    Django ORM Django 的数据库接口非常好用,我们甚至不需要知道SQL语句如何书写,就可以轻松地查询,创建一些内容,所以有时候想,在其它的地方使用Django的 ORM呢?它有这么丰富的 ...

  2. html 时间单位

    <style>h1{font-size:16px;} .test{position:absolute;left:8px;width:200px;height:100px;margin:0 ...

  3. 漫谈QML

    漫谈 QML/Qt Quick QML是从Qt 4.7开始引入的,QML是一种声明语言,使得可以像设计师思考的一样编码,并且Qt Quick元素就是应用程序的编译单元,每一帧的故事板被声明为元素树中的 ...

  4. Let'sencrypt认证的网站Https配置

    推荐使用这个脚本,具体说明里面都有 https://github.com/xdtianyu/scripts/tree/master/le-dns 它是通过调用dns服务商的api更新txt记录实现,无 ...

  5. 12.04 ubuntu 更改IP

    在一个局域网里面,如果是自动获取IP,就会导致IP冲突 进入要连接的热点进行设置 IPV4 Setting address                     netmask           ...

  6. 使用固件库操作STM32F4时的必要配置(转)

    源:使用固件库操作STM32F4时的必要配置 使用STM32F4的固件库时,默认的晶振为25Mhz晶振,因此需要做一定的修改.之前因为一直没有注意这个问题,我捣腾了许久,发现工作时钟总是不对,查阅了一 ...

  7. TCP数据包结构

    源端口号( 16 位):它(连同源主机 IP 地址)标识源主机的一个应用进程.目的端口号( 16 位):它(连同目的主机 IP 地址)标识目的主机的一个应用进程.这两个值加上 IP 报头中的源主机 I ...

  8. php 批量导入数据的一种思维

    <?php $str="风湿免疫科 消化内科 内分泌科 神经内科 感染内科 心血管内科放疗中心";$arr=explode(' ',$str);$sql="&quo ...

  9. HTML5程序设计 Canvas API

    检测浏览器支持情况 <script type="text/javascript"> try { document.createElement("Canvas& ...

  10. 移动Web框架:jQuery Mobile VS Sencha Touch

    最近常被问到是用 jQuery Mobile还是Sencha Touch,本人也比较关注这两个框架,试图从以下两方面发表点儿见解: 身家背景,都系出名门 1.jQuery Mobile 建立在jQue ...