博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
POJ1159解题心得
阅读量:6257 次
发布时间:2019-06-22

本文共 1142 字,大约阅读时间需要 3 分钟。

题目:

刚开始,从样例的特征去思考。总让我从回文数的角度去思考,想出几个方案,可都用了数据去检验,发现不行。如:ABCDDCB,BACDCABD等样例。

然后,思考半天,没想出可行的方案。于是,看人家的解题报告,发现如下公式:

此题所需的解 = 原字符串的长度 — 原字符串和逆字符串的最长公共子序列的长度

于是,啪啦啪啦把代码写完,测试,没问题。提交,发现,Rumtime Error。发现错误,动态规划的数组开辟空间过大,放在函数里面,把它放到函数外就OK了。然后,再次提交,发现,Memory Limit Exceed。解决办法,把动态规划的dp数组压缩空间,变成滚动数组。于是,AC代码就变成如下的样子了。

#include
#include
#include
#include
using namespace std;#define INF 88888888#define MAX_N 5000int length;char originalStr[MAX_N + 1];int dp[2][MAX_N + 1];//dp[i % 2][j]:=s1...si和s1...sj的LCS的长度void inputTestData(){ cin >> length; for(int i=0;i
> originalStr[i]; }}char* reverseStr(char* str,int length){ char* p = (char*)malloc(sizeof(char) * length); for(int i=0;i

附:使用C/C++出现Runtime Error的情况,基本都是如下原因:

1.数组越界;(本质上还是第二个原因)

2.访问没有权限访问的内容,即没有为指针分配足够的空间;

3.指针的值是NULL,即常说的“空指针”。

如果语言是Java,出现任何Exception或Error都会得到Runtime Error的结果。

常见的Exception或Error:

空指针异常,数组越界异常,类型转换异常,除0异常。

栈溢出错误(通常由无穷递归引起,也可能是方法内开辟的数组空间过大),断言错误(由于OJ无法看到错误栈的信息,所以,在算法竞赛中,不要用assert这个关键字)。

转载于:https://www.cnblogs.com/fuzhihong0917/p/6389056.html

你可能感兴趣的文章
Activity与Fragment数据传递之Fragment从Activity获取数据 分类: ...
查看>>
记一次小的51CTO聚会
查看>>
架構設計_案例說明_by 高老師
查看>>
VR內容開發(PAGE-2)
查看>>
飞舞的蝴蝶
查看>>
Linux环境下C语言模拟内存负载测试
查看>>
专栏《轻松玩转ELK海量可视化日志分析系统》已完结【附代码下载】
查看>>
新手IT人员,如何找到适合自己专业书籍的6个问题?
查看>>
初学者学习linux运维的几个问题及老鸟建议
查看>>
Server 2008 R2 AD RMS完整部署:RMS部署篇
查看>>
SFB 项目经验-45-用培训课件当运维文档,聪明
查看>>
使用Kubernetes创建PHP留言板系统
查看>>
时间管理,从洗碗开始
查看>>
我用EDM卖约会秘籍的半个月
查看>>
运营这个职业的诞生缘由「社区运营入门系列④」
查看>>
在VMM2012R2中使用二代虚拟机创建的模板无法创建虚拟机的解决方法
查看>>
大道至简 电话号码重新成为O2O新宠
查看>>
Office 365离线安装
查看>>
jar包与was版本不兼容怎么办
查看>>
将Windows Server 2008 R2网络升级到Windows Server 2012
查看>>