题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=737看了题解才有思路:http://blog.csdn.net/u012350533/article/details/17054711点个赞~#include#include#include#include#includeusing namespace st
题目链接: 给定2个长度相等的字符串a b 每次可以把a串的任意一段变成一样的字母。 问把a变成b最少需要几步。 思路: 1、dp[l][r] 表示把一个空字符串K 的[l,r] 变成 对应b[l,r]这段的最小花费。 那么 dp[l][r] 就是 把 K[l] -> b[l], 然后再把 K[l+1, r] -> b[l+1, r] 即: dp[l][r] = 1 + dp
区间dp。。T^T一直感觉是n^3,看了题解看来是数据水了么。。#pragma comment(linker, "/STACK:1024000000,1024000000") #include #include #define ll long long#define inf 1e8inline int min(int a, int b){return a<b?a:b;}
题目链接:点击打开链接题意:给定一个数,重新排列这个数的各个位置使得1、无前导02、能被11整除问:有多少种组合方法#include #include #include using namespace std;typedef long long ll;const int mod = 1000000000 + 7;const int N = 100+2
题意:给定n个方块,相邻同色的方块可以消除,得分为消除的个数^2问最高得分dp[ l ][ r ][ k ] : 表示[l,r]区间内,消掉 [l,r)区间最高分 + 消掉[r, r+k] ([r,r+k]为同色)的最高分#include#include#include#include#include#include#include#include#inc
题目链接:点击打开链
题意:题意好复杂。。。给定n个人,从左到右排好队。他们依次从左到右离开队伍。每个人有个权值d当某个人是第k-th离开队伍的,那么不开心值为 d*(k-1)有一个操作,对于一个子序列,可以把前面一段翻转。问最小的不开心值和。#include#include#include#include#include#includeusing namespace
题意:求一个合法括号,问最长长度 思路:暴力dpdp[i][j] 表示 区间[i,j] 上的最优解#include#include#includeusing namespace std;inline int Max(int a,int b){return a>b?a:b;}#define N 105char s[N];int dp[N][N];
Copyright © 2005-2024 51CTO.COM 版权所有 京ICP证060544号