Light oj 1044 - Palindrome Partitioning(区间dp)
题目链接:http://lightoj.com/volume_showproblem.php?problem=1044
dp[i][j]表示i到j直接的最小回文区间个数,直接看代码
#include <bits/stdc++.h>
using namespace std;
const int N = 1e3 + ;
int dp[N][N], inf = 1e9;
char str[N];
bool judge(int l, int r) {
for(int i = l - , j = r - ; i < j; ++i, --j) {
if(str[i] != str[j])
return false;
}
return true;
}
int dfs(int l, int r) {
if(l == r)
return dp[l][l] = ;
if(l > r)
return ;
if(dp[l][r] < inf)
return dp[l][r];
int ans = inf;
for(int i = r; i >= l; --i) {
if(judge(i, r))
ans = min(ans, dfs(l, i - ) + );
}
return dp[l][r] = ans;
} int main()
{
int t;
scanf("%d", &t);
for(int ca = ; ca <= t; ++ca) {
scanf("%s", str);
int len = strlen(str);
for(int i = ; i <= len; ++i) {
for(int j = ; j <= len; ++j) {
dp[i][j] = inf;
}
}
printf("Case %d: %d\n",ca, dfs(, len));
}
return ;
}
Light oj 1044 - Palindrome Partitioning(区间dp)的更多相关文章
- light oj 1422 Halloween Costumes (区间dp)
		题目链接:http://vjudge.net/contest/141291#problem/D 题意:有n个地方,每个地方要穿一种衣服,衣服可以嵌套穿,一旦脱下的衣服不能再穿,除非穿同样的一件新的,问 ... 
- Light OJ 1031 - Easy Game(区间dp)
		题目链接:http://www.lightoj.com/volume_showproblem.php?problem=1031 题目大意:两个选手,轮流可以从数组的任意一端取值, 每次可以去任意个但仅 ... 
- Light OJ  1033 - Generating Palindromes(区间DP)
		题目大意: 给你一个字符串,问最少增加几个字符使得这个字符串变为回文串. ============================================================= ... 
- Light OJ 1422 - Halloween Costumes(区间DP 最少穿几件)
		http://www.cnblogs.com/kuangbin/archive/2013/04/29/3051392.html http://www.cnblogs.com/ziyi--caolu/a ... 
- Lightoj  1044 - Palindrome Partitioning (DP)
		题目链接: Lightoj 1044 - Palindrome Partitioning 题目描述: 给一个字符串,问至少分割多少次?分割出来的子串都是回文串. 解题思路: 先把给定串的所有子串是不 ... 
- lightoj 1044 - Palindrome Partitioning(需要优化的区间dp)
		题目链接:http://lightoj.com/volume_showproblem.php?problem=1044 题意:求给出的字符串最少能分成多少串回文串. 一般会想到用区间dp暴力3个for ... 
- 1044 - Palindrome Partitioning(区间DP)
		题目大意: 给你一个字符串,问这个字符串最少有多少个回文串. 区间DP直接搞 #include<cstdio> #include<cstring> #include&l ... 
- HDU4632:Palindrome subsequence(区间DP)
		Problem Description In mathematics, a subsequence is a sequence that can be derived from another seq ... 
- 131. Palindrome Partitioning (Back-Track, DP)
		Given a string s, partition s such that every substring of the partition is a palindrome. Return all ... 
随机推荐
- mysql进阶三四五六
			排序查询 一.语法 select 查询表 from 表 where 筛选条件 order by 排序列表[asc / desc] 特点: 1.asc:升序 desc:降序 2.排序列表之中支持单字段, ... 
- day14 前端基础 HTML
			从今天开始,学习前端基础. 前端,就是HTML CSS JS 等 对于我们这种初学者,并不知道这些专业术语都是什么,给大家举一个形象的例子: HTML 就是一个人,赤裸裸的人 CSS 就是衣服 ... 
- CSS滚动插件
			http://www.dowebok.com/131.html wow.js http://www.jq22.com/jquery-info499 smoove.js http://www.lanr ... 
- [oldboy-django][2深入django]老师管理--查看,添加,编辑
			# 添加老师(下拉框多选) 数据库设计: class Teacher(models.Model): name = models.CharField(max_length=64) cls = model ... 
- [译]tar打包时忽略某些文件夹内容
			使用tar的 --exclude的选项 $ tar --exclude='./folder' --exclude='./upload/folder2' -zcvf /backup/filename.t ... 
- leetcode NO.171 Excel表列序号 (python实现)
			来源 https://leetcode-cn.com/problems/excel-sheet-column-number/description/ 题目描述 给定一个Excel表格中的列名称,返回其 ... 
- Android数据储存之SharedPreferences
			Android中SharedPreferences通常与Editor连用 接口SharedPreferences常用方法: boolean contains(String str):判断SharedP ... 
- 【转】利用Behavior Designer制作敌人AI
			http://www.unity.5helpyou.com/3112.html 本篇unity3d教程,我们来学习下利用Behavior Designer行为树插件来制作敌人AI,下面开始! Beha ... 
- 用最优方法从LinkedList列表中删除重复元素
			用运行速度最优的方法从LinkedList列表里删除重复的元素,例如A->B->BB->B->C,返回A->B->BB->C. 考试的时候没完全想明白,考完又 ... 
- ReentrantLock学习笔记
			参考:https://www.jianshu.com/p/4358b1466ec9 前言: 先来想象一个场景:手把手的进行锁获取和释放,先获得锁A,然后再获取锁B,当获取锁B后释放锁A同时获取锁C,当 ... 
