HDU_1003Max Sum 简单动归
以前做过这道题目,那是还不懂状态方程。乱搞一气:
#include<cstdio>
#include<algorithm>
using namespace std;
const int maxn=+;
int a[maxn];
int main()
{
int T;
scanf("%d",&T);
for(int i=;i<=T;i++)
{
int n;
scanf("%d",&n);
for(int j=;j<n;j++)
scanf("%d",&a[j]);
int maxd=a[];
int temp=a[];
int left=;
int right=;
int x=;
for(int j=;j<n;j++)
{
if(temp+a[j]<a[j])
{
// left=right=j;//刚开始这里错了,不能直接转过去,先存到x中
temp=a[j];
x=j;
}
else
temp+=a[j];
if(temp>maxd)
{
maxd=temp;
left=x;
right=j;
}
}
printf("Case %d:\n",i);
printf("%d %d %d\n",maxd,left+,right+);
if(i!=T);
printf("\n");
}
}
后来的做法:
//状态方程:dp[j]=max(dp[j-1]+a[j],a[j]);
//dp[0]=a[0];
#include <iostream>
using namespace std;
int dp[];
int a[];
int re_start[];
int main()
{
int i,t;
cin>>t;
for(i=;i<=t;i++)
{
int n,j;
cin>>n;
for(j=;j<n;j++)
cin>>a[j];
dp[]=a[];
re_start[]=;
for(j=;j<n;j++)
{
if(dp[j-]+a[j]>=a[j])
{
dp[j]=dp[j-]+a[j];
re_start[j]=re_start[j-];
}
else
{
dp[j]=a[j];
re_start[j]=j;
}
}
int d=dp[];
for(j=;j<n;j++)
if(dp[j]>d)
d=dp[j];
printf("Case %d:\n",i);
for(j=;j<n;j++)
if(d==dp[j])
{
printf("%d %d %d\n",d,re_start[j]+,j+);
break;
}
if(i!=t)
printf("\n");
}
return ;
}
HDU_1003Max Sum 简单动归的更多相关文章
- bjfu1332 简单动规
挺简单的动态规划题.我用记忆化搜索打的.直接上代码: /* * Author : ben */ #include <cstdio> #include <cstdlib> #in ...
- HITtrainning20140417题解
题目列表: ID Origin Title 10 / 15 Problem A FZU 2152 文件系统 0 / 16 Problem B FZU 2153 A simple geome ...
- 洛谷 P1052 过河
题目描述 在河上有一座独木桥,一只青蛙想沿着独木桥从河的一侧跳到另一侧.在桥上有一些石子,青蛙很讨厌踩在这些石子上.由于桥的长度和青蛙一次跳过的距离都是正整数,我们可以把独木桥上青蛙可能到达的点看成数 ...
- HDU-1518 Square(DFS)
Square Time Limit : 10000/5000ms (Java/Other) Memory Limit : 65536/32768K (Java/Other) Total Submi ...
- App启动页设计实例与技巧
App启动页,也称闪屏页,最初是为缓解用户等待Web/iOS/Android App数据加载的焦虑情绪而出现,后被设计师巧妙用于品牌文化展示,服务特色介绍以及功能界面熟悉等平台进行设计,被赋予了更加丰 ...
- 中山普及Day13——普及
又是迷之自信的说...估的230,考的50整,我欲上天呐!!! T1:深渊(怕不是黑暗种族聚集地???) 思路:动归.而且是简单动归.转移方程:Fi,j=max(Fi-1,j,Fi,j,Fi-1,(j ...
- [zoj3813]Alternating Sum 公式化简,线段树
题意:给一个长度不超过100000的原串S(只包含数字0-9),令T为将S重复若干次首尾连接后得到的新串,有两种操作:(1)修改原串S某个位置的值(2)给定L,R,询问T中L<=i<=j& ...
- 极简反传(BP)神经网络
一.两层神经网络(感知机) import numpy as np '''极简两层反传(BP)神经网络''' # 样本 X = np.array([[0,0,1],[0,1,1],[1,0,1],[1, ...
- 【mongoDB高级篇②】大数据聚集运算之mapReduce(映射化简)
简述 mapReduce从字面上来理解就是两个过程:map映射以及reduce化简.是一种比较先进的大数据处理方法,其难度不高,从性能上来说属于比较暴力的(通过N台服务器同时来计算),但相较于grou ...
随机推荐
- android raw与assets资源
*res/raw和assets的同样点: 1.两者文件夹下的文件在打包后会原封不动的保存在apk包中,不会被编译成二进制. *res/raw和assets的不同点: 1.res/raw中的文件会被映射 ...
- ASP.NET之电子商务系统开发-1(数据列表)
一.前言 首先声明的是,这是我第一个与别人合作的.net项目,另一个人做的是后台管理,我做的前台,这是一个电子商务的系统,主要实现的功能是查看商品以及购物功能. 二.开始 首先看一下我截取的项目部分商 ...
- ListView中响应item的点击事件并且刷新界面
---恢复内容开始--- 最近在在实现listview功能中遇到了这个问题: 点击事件写在了adapter的item中,不知道如何在listview的点击事件中更新数据的显示: 总结:1.要使用not ...
- Android adb 命令图解
做了这么长时间的开发与管理,在命令上总是自见则过,往往却忽视了在其命令上的分享过程,所以现在稍微有点时间就把 其命令的相关操作来简单的扫盲一番吧,也系统通过这种方式去授之以渔而不是鱼,好了,我以图解的 ...
- 5.5 Function类型
说起来ECMAScript中上面最有意思,我想那莫过于函数了,有意思的根源,则在于函数实际上是对象.每个函数都是Function类型的实例,而且都与其他引用类型一样具有属性和方法.由于函数是对象,因此 ...
- LINQ的用法
http://www.cnblogs.com/liulun/archive/2013/02/26/2909985.html(转载)
- IC卡,ID卡,M1卡,射频卡
一般把可读可写,频率是13.56MHz的射频卡称为IC卡,IC卡可以写入数据, 只能读,频率是125KHz的射频卡称为ID卡, M1卡是NXP公司的S50卡的一种叫法,国内的复旦F08,达华的TKS5 ...
- Windows Azure 网站 (WAWS) 中的服务器端包含 (SSI)
编辑人员注释:本文章由 Windows Azure 网站团队的项目经理Erez Benari 撰写. Windows Azure 网站客户普遍关心的一个问题是关于我们对服务器端包含(Server ...
- hdoj 5249 KPI(treap)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5249 思路分析:使用queue记录管道中的值并使用treap能够查询第K大的功能查询第floor(m/ ...
- android 在新建短信时,加入名称为","(英文逗号)的联系人时,应用崩溃的修改
请修改文件 /alps/frameworks/ex/chips/src/com/android/ex/chips/RecipientAlternatesAdapter.java private sta ...