光庭杯第九题

简介: 求子数组绝对值的和的最小值   动归 #include#include#define N 1001unsigned long int a[N], f[N];unsigned long int n; unsigned long int Abs(unsigned long int x){ ret...

求子数组绝对值的和的最小值

 

动归

#include<stdio.h>
#include<stdlib.h>
#define N 1001
unsigned long int a[N], f[N];
unsigned long int n;

unsigned long int Abs(unsigned long int x)
{
return x>0?x:-x;
}

unsigned long int dp()
{ /*
if (|f(x)+a(x+1)|<|a(x+1)|)
f(x+1) = f(x)+a(x+1)
else f(x+1) = a(x+1)
最后求出min(|f(0)|........|f(j)|)*/
unsigned long int i;
unsigned long int min;

f[0]=a[0];
for(i=0;i<n;i++)
{
if(Abs(a[i+1]+f[i]) < Abs(a[i+1])) f[i+1] = a[i+1]+f[i];
else f[i+1] = a[i+1];
}
min = Abs(f[0]);
for(i=1;i<n;i++)
if(min>Abs(f[i]))
min = Abs(f[i]);
return min;
}
int main()
{
unsigned long int i,j,T;
unsigned long int m=1;

scanf("%ld",&T);
while(T--)
{
scanf("%ld",&n);
for(i=0;i<n;i++)
{
scanf("%ld",&a[i]);
if(i>0)
f[i] = f[i-1]+a[i];
else f[0] = a[0];
}
printf("Case %ld: %ld\n",m,dp());
m++;
}
system("pause");
return 0;
}

 

 

 

 

 

 

 

 

 

 

 

 

超时代码

 

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<math.h>
#define N 1001
int leastsubsequencesum(int a[],int n)
{
int i,j,k;int sum,min=10001;
for(i=0;i<n;i++)
for(j=i;j<n;j++)
{
sum=0;
for(k=i;k<=j;k++)
sum+=a[k];
sum=abs(sum);
if(sum<min)
min=sum;
}
return min;
}
int main()
{
int i,j,T,n;int a[N];int s,k;int m=1;
memset(a,0,sizeof(a));
scanf("%d",&T);
k=T;
while(T--)
{
if(m<=k)
{
scanf("%d",&n);
for(i=0;i<n;i++)
scanf("%d",&a[i]);
s=leastsubsequencesum(a,n);
printf("Case %d: %d\n",m,s);
m++;
}
//T--;
}
return 0;
}

 

 

 

目录
相关文章
|
5月前
|
消息中间件 缓存 前端开发
No209.精选前端面试题,享受每天的挑战和学习
No209.精选前端面试题,享受每天的挑战和学习
No209.精选前端面试题,享受每天的挑战和学习
|
存储 运维 Linux
金鱼哥RHCA回忆录:CL210管理计算资源--红帽的超融合基础设施
第七章 管理计算资源--红帽的超融合基础设施
181 0
金鱼哥RHCA回忆录:CL210管理计算资源--红帽的超融合基础设施
|
SQL 存储 JavaScript
关系模型介绍
关系模型介绍
239 0
关系模型介绍
|
Web App开发 前端开发
|
SQL 缓存 算法
用了这么久的Mybatis,结果面试官问的问题,我竟然还犹豫了
前段时间阿粉的一个朋友和阿粉吃饭,在吃饭的时候和阿粉疯狂的吐槽面试官,说面试官问的问题都是些什么问题呀,我一个干了三四年的开发,也不说问点靠谱的,阿粉很好奇,问题问完基础的,一般不都是根据你自己的简历进行提问么?而接下来他说的出来的问题,阿粉表示,阿粉需要继续学习了。
用了这么久的Mybatis,结果面试官问的问题,我竟然还犹豫了
|
缓存 Java Shell
专项测试实战 | 如何测试 App 流畅度(基于 FPS 和丢帧率)?
专项测试实战 | 如何测试 App 流畅度(基于 FPS 和丢帧率)?
|
存储 弹性计算 缓存
项目3----云服务器及其提供商
项目3----云服务器及其提供商
317 0
HDOJ 1196 Lowest Bit(二进制相关的简单题)
HDOJ 1196 Lowest Bit(二进制相关的简单题)
97 0
|
监控 Linux Go
阿里云初体验
对于这次阿里云的初体验
|
机器学习/深度学习 存储 监控
物联网12大安全挑战
物联网12大安全挑战
1392 0
物联网12大安全挑战