这题是最大子序列和(hdu1003)的拓展。先复习一下最大子序列和(DP,hdu1003)吧:思路:用dp[i]表示以第i个数为结尾的子序列和最大值;状态转移方程:dp[i]=a[i] (dp[i-1]<0)dp[i]= dp[i-1]+a[i] (dp[i-1]>=0)这是有数组的做法。程序本人不提供下面提供一个无数组的代码,其实思想还是一样的hdu1003hdu1003#include<stdio.h>int main(){ int n,s,e,max,maxs,maxe,i,num,T,sum,u=0; scanf("%d",&T); Read More
posted @ 2012-07-01 17:08
To be an ACMan
Views(1845)Comments(1)Diggs(1)
排序+二分查找:http://acm.pku.edu.cn/JudgeOnline/problem?id=1318最小公倍数:http://acm.zju.edu.cn/show_problem.php?pid=1797数列的周期性:http://acm.zju.edu.cn/show_problem.php?pid=2105数三角形:http://acm.zju.edu.cn/show_problem.php?pid=1629高精度加法:http://acm.zju.edu.cn/show_problem.php?pid=1292非10进制高精度加法:http://acm.zju.edu.c Read More
posted @ 2012-06-29 22:19
To be an ACMan
Views(399)Comments(0)Diggs(0)
题目来源:http://acmpj.zstu.edu.cn/JudgeOnline/showproblem?problem_id=2552动态规划基本步骤(本人觉得):1.确定数组的维数,一维,二维等等;2.弄清数组下标的含义3.找出状态转移方程式;4实现自己的想法;本题思路:二维数组dp[i][j],i表示前i个马棚放马完毕,j表示队列前j匹马已经进入马棚,dp[i][j]记录前j匹马放在前i个马棚里的最小不愉快系数,用f(a,b)表示只把第a匹马到第b匹马放在一个马棚里的不愉快系数;思考得出 状态转移方程:dp[i][j]=min(dp[i-1][t]+f(t,j));注意范围:(i-1& Read More
posted @ 2012-06-29 15:03
To be an ACMan
Views(301)Comments(0)Diggs(0)
经典三维BFS,此题用DFS会超时,用BFS不剪枝也会超时,其实跟二维的BFS没什么区别View Code #include<stdio.h>#define maxn 31struct node{ int x,y,z; int cnt;};const int dir[6][3]={{0,-1,0},{-1,0,0},{0,1,0},{1,0,0},{0,0,-1},{0,0,1}};int map[maxn][maxn][maxn];int a,b,c,t;int bfs(){ node q[maxn*maxn*maxn]; node n,p; int i,rea... Read More
posted @ 2012-06-02 20:41
To be an ACMan
Views(176)Comments(0)Diggs(0)