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 ...
随机推荐
- KeCode对照表(键盘按键的获取)
KeyCode键盘对照表: http://www.cnblogs.com/furenjian/articles/2957770.html
- Ubuntu_16.04 配置 Apache Rwrite URL 重写
Ubuntu Apache配置Rwrite URL重写 0. apache目录
- LeetCode Coins in a Line
There are n coins in a line. Two players take turns to take one or two coins from right side until t ...
- Mac系统下下删除加锁文件方法|使用终端命令强制清除废纸篓中的文件
链接地址1:http://jingyan.baidu.com/article/fdffd1f8e39403f3e98ca195.html 在Mac OS X下,无法删除的文件无外乎三种情况:1,文件( ...
- C++ : 类型的别名和对象的别名
#include <iostream>using namespace std; class human{public: void Talk(); ~human(){cout&l ...
- BZOJ 1816: [Cqoi2010]扑克牌( 二分答案 )
二分答案.. 一开始二分的初始右边界太小了然后WA,最后一气之下把它改成了INF... -------------------------------------------------------- ...
- mysql中varchar最长多少
4.0版本以下,varchar(20),指的是20字节,如果存放UTF8汉字时,只能存6个(每个汉字3字节) 5.0版本以上,varchar(20),指的是20字符,无论存放的是数字.字母还是UTF8 ...
- 2_Cat Years
2 // // ViewController.swift // Cat Years // // Created by ZC on 16/1/6. // Copyright © 2016年 ZC. Al ...
- Protel99se教程七:创建PCB元件封装
在上一节课当中,我们给大家讲解了如何制作SCH原理图的元件库,这一节课,我们给大家讲解的是如何制作protel99se封装,在我们制作好元件好,需要制作对应的封装库,以供PCB设计所用. 第一步:进入 ...
- PROTEL 99SE的打印设置
现在市面上关于PTROTEL99SE的书很多,但都没有具体叙述有关电路图的打印设置方法.PROTEL99SE的打印设置较之以前的版本有了很多不同之处.特别是在实际做电路板时有些细节须注意. 原理图的打 ...