杭电OJ 1003
2015-11-08 22:30
323 查看
这是一道简单的DP(dynamic programing)问题。计算最大子序列。
在解题时需要注意考虑完全,还有就是算法的完整程度。
可以用这两个去测试完整度:-1,-2,-3,-4,-5;0,0,0,0,0
在计算中需要使用到动态规划的状态以及状态转移方程。
在这题中,状态是子序列的和,状态转移方程是,某个数与以某个数结尾的子序列中的最大子序列的大小比较
贴上AC代码:
THISSKY出品,原文链接:/article/5559387.html
在解题时需要注意考虑完全,还有就是算法的完整程度。
可以用这两个去测试完整度:-1,-2,-3,-4,-5;0,0,0,0,0
在计算中需要使用到动态规划的状态以及状态转移方程。
在这题中,状态是子序列的和,状态转移方程是,某个数与以某个数结尾的子序列中的最大子序列的大小比较
for(i = 1;i < n;i++){ if(num[i] > d[i - 1] + num[i]){//如果num[i]大于num[i] + d[i - 1](状态),那就不用考虑状态,直接进行状态转移 endex[i] = index[i] = i + 1; d[i] = num[i]; } else{//反之,继续累计 endex[i] = i + 1; index[i] = index[i - 1]; d[i] = d[i - 1] + num[i]; } }
贴上AC代码:
#include<stdio.h> #include<stdlib.h> int main(){ int i = 0; int n = 0; int r = 0; int max; int maxi = 0; int maxe = 0; int casen = 0; int *num; int *d,*index,*endex; scanf("%d",&casen); while(casen --) { if(r) printf("\n"); scanf("%d",&n); num = (int *)malloc(sizeof(int) * n);//动态开辟内存,避免空间不足 d = (int *)malloc(sizeof(int) * n); index = (int *)malloc(sizeof(int) * n); endex = (int *)malloc(sizeof(int) * n); for(i = 0 ;i < n;i ++){ scanf("%d",&num[i]); } index[0] = 1; endex[0] = 1; d[0] = num[0]; for(i = 1;i < n;i++){ if(num[i] > d[i - 1] + num[i]){ endex[i] = index[i] = i + 1; d[i] = num[i]; } else{ endex[i] = i + 1; index[i] = index[i - 1]; d[i] = d[i - 1] + num[i]; } } max = d[0]; maxi = 1; maxe = 1; for(i = 1;i < n;i ++){ if(max < d[i]){ max = d[i]; maxi = index[i]; maxe = endex[i]; } } r ++; printf("Case %d:\n",r); printf("%d %d %d\n",max,maxi,maxe); } return 0; }
THISSKY出品,原文链接:/article/5559387.html
相关文章推荐
- PHP中的urlencode,rawurlencode和JS中的encodeURI,encodeURIComponent
- 26.Oracle数据库SQL开发之 SQLPlus使用——格式化列
- libsvm支持向量机应用编程
- Android工程出现错误Unable to resolve target 'android-19'
- jquery
- 【数据结构】二维数组
- HDU 1027 Ignatius and the Princess II(求由1-n组成按字典序排序的第m个序列)
- netty rpc 框架
- rsync同步工具
- 20135333苏正生——信息安全系统设计基础第八周学习总结
- 25.Oracle数据库SQL开发之 SQLPlus使用——保存、检索并运行文件
- 黑马程序员-----线程
- 简单了解JAVA8的新特性
- 【数据结构】二叉树的基本操作
- 关于__FILE__,dirname()的使用小小心得
- 安装若干 VIM 插件(不断更新)
- 信息安全系统设计基础第八周学习总结
- php实现无限极分类
- springmvc No mapping found for HTTP request with URI in Dispatc
- [转]企业网站首页设计常见的6种布局方式