• Hdu 4223 Dynamic Programming?


    Dynamic Programming?

    Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)
    Total Submission(s): 2188    Accepted Submission(s): 1005

    Problem Description

    Dynamic Programming, short for DP, is the favorite of iSea. It is a method for solving complex problems by breaking them down into simpler sub-problems. It is applicable to problems exhibiting the properties of overlapping sub-problems which are only slightly smaller and optimal substructure.
    Ok, here is the problem. Given an array with N integers, find a continuous subsequence whose sum’s absolute value is the smallest. Very typical DP problem, right?

    Input

    The first line contains a single integer T, indicating the number of test cases.
    Each test case includes an integer N. Then a line with N integers Ai follows.

    Technical Specification
    1. 1 <= T <= 100
    2. 1 <= N <= 1 000
    3. -100 000 <= Ai <= 100 000

    Output

    For each test case, output the case number first, then the smallest absolute value of sum.

    Sample Input

    2

    2

    1 -1

    4

    1 2 1 -2

    Sample Output

    Case 1: 0

    Case 2: 1

    #include"stdio.h"
    #include"string.h"
    #define N 1101
    
    int abs(int a)
    {
    	if(a>0)return a;
    	return -a;
    }
    
    int main()
    {
    	int T;
    	int n;
    	int A[N];
    	int dp[N];
    	int i,j,t;
    	int ans,cnt;
    
    	scanf("%d",&T);
    	cnt=1;
    	while(T--)
    	{
    		scanf("%d",&n);
    		scanf("%d",&A[0]);
    		ans=dp[0]=abs(A[0]);
    		for(i=1;i<n;i++)
    		{
    			scanf("%d",&A[i]);
    			dp[i]=abs(A[i]);
    			t=A[i];
    			//因为要求是连续的,所以得从i-1开始
    			for(j=i-1;j>=0;j--)
    			{
    				t+=A[j];
    				if(abs(t)<dp[i])
    					dp[i]=abs(t);
    			}
    			if(dp[i]<ans)ans=dp[i];
    		}
    		printf("Case %d: %d
    ",cnt++,ans);
    	}
    	return 0;
    }
    

      

  • 相关阅读:
    C#中的索引器
    ASP.NET中解决乱码问题
    System.Web.HttpContext.Current.Session为NULL值的问题?
    C# winForm 自定义鼠标样式的两种方法
    SQL中的排名函数
    VS2005打包项目(带卸载功能)
    HttpModule与HttpHandler
    怎样为你的SQLServer表选择索引 zt
    如何使用SQLDiag工具来追踪死锁错误 ZT
    几个性能调优相关的文章
  • 原文地址:https://www.cnblogs.com/zhangliu/p/7063338.html
Copyright © 2020-2023  润新知