拦截导弹 (NYOJ—79) 最长字串问题 (NYOJ—17)
这是到动态规划的题目,属于有顺序的0 1 背包问题;
代码:
#include<stdio.h>
#include<string.h> int d[][]; //d[i][j]
int a[];
int N; int max(int a, int b)
{
return a>b?a:b;
} int solve(int i,int high)
{
if(d[i][high]>=)
return d[i][high];
if(i==N)
{
if(a[i]<high)
return d[N][high]=;
else
return d[N][high]=;
}
if(a[i]<high)
return d[i][high]=max(solve(i+,a[i])+,solve(i+,high)); //打击和不打击 取大者
else
return d[i][high]=solve(i+,high);
} int main()
{
int T;
scanf("%d",&T);
while(T--)
{
memset(d,-,sizeof(d));
scanf("%d",&N);
for(int i=; i<=N; i++)
{
scanf("%d",&a[i]);
}
printf("%d\n",solve(,));
}
return ;
}
但这个代码提交会得到RE,至于为什么可能是记忆话搜索对这个的复杂度减小的比较小,所以递归深度太深,造成堆栈溢出。
我想多了,不是这个原因,是我没有注意到下标越界了。
AC代码:
#include<stdio.h>
#include<string.h> int d[][]; //d[i][j]
int a[];
int N; int max(int a, int b)
{
return a>b?a:b;
} int solve(int i,int high)
{
if(d[i][high]>=)
return d[i][high];
if(i==N)
{
if(a[i]<high)
return d[N][high]=;
else
return d[N][high]=;
}
if(a[i]<high)
return d[i][high]=max(solve(i+,a[i])+,solve(i+,high)); //打击和不打击 取大者
else
return d[i][high]=solve(i+,high);
} int main()
{
int T;
scanf("%d",&T);
while(T--)
{
memset(d,-,sizeof(d));
scanf("%d",&N);
for(int i=; i<=N; i++)
{
scanf("%d",&a[i]);
}
printf("%d\n",solve(,));
}
return ;
}
我不知道原来这种问题叫 最长递增子序列问题 我还给他起了个(顺序0 1 背包问题),我这就透过本质起的名字。
最长字串问题 (NYOJ - 17)
AC代码:
#include<stdio.h>
#include<stdlib.h>
#include<string.h> int d[][];
char a[];
int N; int max(int a, int b)
{
return a>b?a:b;
} int dp(int i, char c)
{
if(d[i][c]>=)
return d[i][c];
if(i==N-)
{
if(a[i]>c)
return d[i][c] = ;
else
return d[i][c] = ;
}
if(a[i]>c)
return d[i][c]=max(dp(i+,c),dp(i+,a[i])+);
else
return d[i][c]=dp(i+,c);
} int main()
{
int T;
scanf("%d",&T);
while(T--)
{
memset(d,-,sizeof(d));
scanf("%s",a);
N = strlen(a);
printf("%d\n",dp(,));
}
return ;
}
拦截导弹 (NYOJ—79) 最长字串问题 (NYOJ—17)的更多相关文章
- LeetCode-3.无重复字符的最长字串
给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度. 示例 1: 输入: "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子串是 "abc&qu ...
- 【leetcode算法-中等】3. 无重复字符的最长字串
[题目描述] 给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度. 示例 1: 输入: "abcabcbb"输出: 3 解释: 因为无重复字符的最长子串是 " ...
- LeetCode#3 - 无重复字符的最长字串(滑动窗口)
题目: 给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度. 示例: abcabcbb 输出的结果应该是3,最长的无重复的字串是'abc' 果然无论做什么都要静下心来啊!昨晚上卡了一个多小 ...
- nyoj 经典的连续字串和
import java.util.Scanner; public class 字串和 { public static void main(String[] args) { // TODO Auto-g ...
- 拦截导弹简单版(读入一串整数时getline(cin,s) stringstream is(s);)
拦截导弹简单版 时间限制: 1 Sec 内存限制: 128 MB提交: 40 解决: 16[提交][状态][讨论版][命题人:外部导入] 题目描述 某国为了防御敌国的导弹袭击,发展出一种导弹拦截系 ...
- POJ 1743-POJ - 3261~后缀数组关于最长字串问题
POJ 1743 题意: 有N(1 <= N <=20000)个音符的序列来表示一首乐曲,每个音符都是1~~88范围内的整数,现在要找一个重复的主题.“主题”是整个音符序列的一个子串,它需 ...
- Leetcode3.Longest Substring Without Repeating Characters无重复字符的最长字串
给定一个字符串,找出不含有重复字符的最长子串的长度. 示例 1: 输入: "abcabcbb" 输出: 3 解释: 无重复字符的最长子串是 "abc",其长度为 ...
- leetcode Longest Common Prefix 多个字符串的最长字串
public class Solution { public String get(String a,String b) { if(a==""||b=="") ...
- Longest Substring Without Repeating Characters,求没有重复字符的最长字串
问题描述: Given a string, find the length of the longest substring without repeating characters. Example ...
随机推荐
- 使用MapReduce将mysql数据导入HDFS
package com.zhen.mysqlToHDFS; import java.io.DataInput; import java.io.DataOutput; import java.io.IO ...
- Oracle角色管理
--创建角色 create role role_name [not identified |--无需验证的方式 identified by [password]--密码验证的方式 | identifi ...
- maven 3.2.5 的安装及简单示例
http://www.mvnrepository.com 一直没有使用maven,它的作用就不说了,这二天需要用到,发现网上都是以前的版本,所以,我一边配置,一边记录. 一 下载maven 现在很多I ...
- Linux下开放防火墙端口
方法一:1.vi /etc/sysconfig/iptables 2.-A INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEP ...
- C 字节对齐.我的算法学习之路
C/C++基础笔试题1.0(字节对齐) http://blog.csdn.net/dengyaolongacmblog/article/details/37559687 我的算法学习之路 http:/ ...
- spring-springMVC-MyBatis整合配置文件
web.xml <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="htt ...
- vc6++Release和Debug
1. 如何快速地规范代码缩进格式 选中所需要规范的代码,按shift+F8 2. 如何在Release状态下进行调试 Project->Setting=>ProjectSetting对话框 ...
- Java中的泛型、枚举和注解
1.泛型: 一.为什么要有泛型(Generic)?1.解决元素存储的安全性问题任何类型都可以添加到集合中:类型不安全2.解决获取数据元素时,需要类型强转的问题读取出来的对象需要强转:繁琐可能有Clas ...
- BZOJ5314: [Jsoi2018]潜入行动
BZOJ5314: [Jsoi2018]潜入行动 https://lydsy.com/JudgeOnline/problem.php?id=5314 分析: 裸树形背包,设\(f[x][i][0/1] ...
- js变量和函数提升的小结
对于变量和函数一起的提升说法,我比较认同"LittleBear"的说法. 比如: <script> console.log(a)//function a(){} var ...