简单DP入门四连发
复习一下一直不太懂的dp.
dp博大精深,路还长着呢
第一题;http://acm.hdu.edu.cn/showproblem.php?pid=2084
从下往上就是水题
#include<cstdio>
using namespace std;
int max(int x,int y)
{
if (x<y) return y;
else return x;
}
int main()
{
int t,n,yj[][],i,j;
scanf("%d",&t);
while (t--)
{
scanf("%d",&n);
for (i=;i<=n;i++)
{
for (j=;j<=i;j++)
scanf("%d",&yj[i][j]);
}
for (i=n-;i>=;i--){
for (j=;j<=i;j++)
yj[i][j]+=max(yj[i+][j],yj[i+][j+]);
}
printf("%d\n",yj[][]);
}
return ;
}
第二题;http://acm.hdu.edu.cn/showproblem.php?pid=1231
与贪心有点像,样例能过基本就能A
#include<cstdio>
using namespace std;
int a[];
int main()
{
int n,sum,mn,sx,sy,x,i;
while (~scanf("%d",&n))
{
if (!n) break;
int flag=;
for (i=;i<=n;i++)
{
scanf("%d",&a[i]);
if (a[i]>=) flag=;
}
if (!flag)
{
printf("0 %d %d\n",a[],a[n]);
continue;
}
sum=,mn=-;
sx=sy=x=;
for (i=;i<=n;i++)
{
sum+=a[i];
if (sum<)
{
while (a[i]<&&i<=n)
i++;
if (i<=n)
{
x=i;sum=a[i];
}
else break;
}
if (sum>mn)
{
sy=i;
sx=x;
mn=sum;
}
}
printf("%d %d %d\n",mn,a[sx],a[sy]);
}
return ;
}
第三题;http://acm.hdu.edu.cn/showproblem.php?pid=1003
和第二题差不多,只不过变成了输出头和尾的序号,注意这题对都是负数没有特别输出了,要求不同
#include<cstdio>
using namespace std;
int a[];
int main()
{
int t,ans=,i,n,sum,sx,sy,x;
scanf("%d",&t);
while (t--)
{
scanf("%d",&n);
int flag=,mx=-;
for (i=;i<=n;i++)
{
scanf("%d",&a[i]);
if (mx<a[i]) mx=a[i],sx=sy=i;
if (a[i]>=) flag=;
}
printf("Case %d:\n",ans++);
if (flag==)
{
printf("%d %d %d\n",mx,sx,sy);
if (t!=) printf("\n");
continue;
}
sum=,sx=,sy=,x=;
int mn=-;
for (i=;i<=n;i++)
{
sum+=a[i];
if (sum<)
{
while (a[i]<&&i<=n)
i++;
if (i<=n)
{
x=i;sum=a[i];
}
else break;
}
if (mn<sum)
{
sx=x;
sy=i;
mn=sum;
}
}
printf("%d %d %d\n",mn,sx,sy);
if (t!=) printf("\n");
}
return ;
}
第四题;http://acm.hdu.edu.cn/showproblem.php?pid=1087
求递增序列的最大和,有个题意设置的坑就是这个递增序列可以不连续
#include<stdio.h>
int main()
{
int i,j,n,max,t;
int a[];
int sum[];
while(~scanf("%d",&n))
{
if (n==)
break;
for(i=;i<n;i++)
{
scanf("%d",&a[i]);
sum[i]=a[i];
}
t=;
for(j=;j<n;j++)
{
max=;
for(i=;i<=j;i++)
{
if(a[i]<a[j])
{
if(sum[i]>max)
max=sum[i];
}
}
sum[j]=max+a[j];
if (sum[j]>t)
t=sum[j];
}
printf("%d\n",t);
}
return ;
}
简单DP入门四连发的更多相关文章
- HDU 2084 数塔(简单DP入门)
数塔 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submiss ...
- 简单DP入门(一) 数字三角形
数字三角形
- 简单DP入门(二) 最长上升子序列及其优化
最长上升子序列解决问题: 有N个数,求出它最长的上升子序列并输出长度. 在题里不会讲的这么直白,这个算法往往会与其他的算法混在一起使用. 在这篇文章中不会出现其他的例题,为了让大家更好的理解,我只会对 ...
- 微服务(入门四):identityServer的简单使用(客户端授权)
IdentityServer简介(摘自Identity官网) IdentityServer是将符合规范的OpenID Connect和OAuth 2.0端点添加到任意ASP.NET核心应用程序的中间件 ...
- hdu3555 Bomb 数位DP入门
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3555 简单的数位DP入门题目 思路和hdu2089基本一样 直接贴代码了,代码里有详细的注释 代码: ...
- 【专章】dp入门
动态规划(简称dp),可以说是各种程序设计中遇到的第一个坎吧,这篇博文是我对dp的一点点理解,希望可以帮助更多人dp入门. ***实践是检验真理的唯一标准,看再多文章不如自己动手做几道!!!*** 先 ...
- Spring Boot入门(四):开发Web Api接口常用注解总结
本系列博客记录自己学习Spring Boot的历程,如帮助到你,不胜荣幸,如有错误,欢迎指正! 在程序员的日常工作中,Web开发应该是占比很重的一部分,至少我工作以来,开发的系统基本都是Web端访问的 ...
- 脑残式网络编程入门(四):快速理解HTTP/2的服务器推送(Server Push)
本文原作者阮一峰,作者博客:ruanyifeng.com. 1.前言 新一代HTTP/2 协议的主要目的是为了提高网页性能(有关HTTP/2的介绍,请见<从HTTP/0.9到HTTP/2:一文读 ...
- 树形dp 入门
今天学了树形dp,发现树形dp就是入门难一些,于是好心的我便立志要发一篇树形dp入门的博客了. 树形dp的概念什么的,相信大家都已经明白,这里就不再多说.直接上例题. 一.常规树形DP P1352 没 ...
随机推荐
- JS计算滚动条的宽度
1.此方法检验成功 function getScrollbarWidth() { var oP = document.createElement('p'), styles = { width: '10 ...
- eclipse git 删除内容
- servlet 3.1 摘录
https://www.oschina.net/translate/non-blocking-io-using-servlet-3-1?cmp 非阻塞IO AsyncContext context = ...
- 面向对象程序设计(Java)本学期课程改革说明
1.教学方式采用反转课堂教学法,学生课前完成知识的学习,课堂是师生之间.学生之间互动的场所,包括答疑解惑.知识的运用技巧探讨等,教师的课堂责任是理解学生的问题和引导学生去运用知识. 2.为更好地执行反 ...
- 如何自学web安全(详细路径)
看到学习路径,收藏一下https://blog.csdn.net/q251500/article/details/79441316
- iptables禁止别人,允许自己
这里举个例子,以ping为案例:禁止别人ping自己,但允许自己ping别人. [root@localhost ~]# iptables -A INPUT -p icmp --icmp-type 8 ...
- 3D 模型
http://www.imooc.com/article/12670
- df、du、fdisk
[df.du.fdisk] 参考:http://os.51cto.com/art/201012/240726.htm
- dedecms 5.7sp2在用type标签时出现调用无效问题
{dede:type typeid='1'}栏目{/dede:type} 无效 和 {dede:type typeid='1'}[field:typename/]{/dede:type} 有效 ...
- CentOS 7安装Zabbix 3.4
01.最小化安装操作系统 02.升级系统组件到最新版本 yum -y update 03.关闭 SELinux sed -i “s/SELINUX=enforcing/SELINUX=disabled ...