首页 > 其他分享 >dp练习

dp练习

时间:2024-02-27 22:35:28浏览次数:27  
标签:return int 练习 char zuma 101 dp

合并类len=2,[k]
消消乐类,len=3,[i+1][j-1]else [k]

Brackets

https://vjudge.net/problem/POJ-2955

#include<iostream>
#include<cstring>
using namespace std;

int dp[101][101];
bool flag=1;

bool pei(int i,int j,char a[]){
    if(a[i]=='('&&a[j]==')')return true;
    if(a[i]=='['&&a[j]==']')return true;

    return false;
}

void solu(){

char a[101];
scanf("%s",a+1);
if(a[1]=='e'){flag=0;return;}
int n=strlen(a)-1;


//不是连续,不是zuma类
//不是3个

//lcs类?

//zuma
for(int i=1;i<=n;i++)dp[i][i]=0;
for(int i=2;i<=n;i++)if(pei(i-1,i,a))dp[i-1][i]=2;

for(int len=3;len<=n;len++)
for(int i=1;i+len-1<=n;i++){
    int j=i+len-1;
    if(pei(i,j,a))dp[i][j]=max(dp[i][j],dp[i+1][j-1]+2);
    else for(int k=i;k<=j-1;k++){
        dp[i][j]=max(dp[i][j],dp[i][k]+dp[k+1][j]);
    }
}

cout<<dp[1][n];
//更是lis类
}
int main(){

while(flag){
    solu();
}



}

标签:return,int,练习,char,zuma,101,dp
From: https://www.cnblogs.com/arin876/p/18038561

相关文章

  • ctfshow sql注入练习记录
    前言:继续做ctfshow的题了,本次为sql注入专题,从ctfshowweb177开始ctfshowweb177对空格,--+进行了过滤,注释符要换成#的url编码%23使用万能密码可以绕过1'or'1'='1';%23也可也使用/**/对空格进行绕过,进行联合查询-1'union/**/select/**/1,2,password/**/from/**/ctfshow_use......
  • 基于STM32F407MAC与DP83848实现以太网通讯四(STM32F407MAC数据收发与DMA描述符)
    上一章实现的MAC数据包的基础收发功能,但是只是简单的操作了ETH外设的收发包函数并没有深入了解其中的原理逻辑,本章结合STM32F40x文档与STM32F4x7_ETH_Driver驱动库了解MAC的收发包流程。一、描述符列表 在创建描述符列表之前先了解描述符列表的定义,描述符就软件来说就是一个结......
  • CF932F Escape Through Leaf【DP,李超线段树】
    有一颗\(n\)个节点的树,根节点为\(1\)。每个节点有两个权值,第\(i\)个节点的权值为\(a_i,b_i\)。你可以从一个节点跳到它的子树内任意一个节点上。从节点\(x\)跳到节点\(y\)一次的花费为\(a_x\timesb_y\)。跳跃多次走过一条路径的总费用为每次跳跃的费用之和。求每个节......
  • P8935 [JRKSJ R7] 茎【DP】
    给定一棵\(n\)个点的根节点为\(1\)的有根树,现在你要对这棵树进行剪枝,每次你可以选择一个还未被剪掉的节点\(u\)进行操作,然后剪掉\(u\)的子树所有点(包括\(u\))。当且仅当你剪掉\(1\)时,操作停止。再给定\(x,k\),求有多少种不同的操作序列满足第\(k\)次恰好操作的是\(x......
  • AT_joi2015ho_b (dp思想)
    难度2比较有意思的dp题首先发现这就是将一个环从中间一点一点剥开的过程。其次观察到joi取时右端点减左端点为偶数,ioi取时为奇数,所以一次一次dp即可。看到这种题时,发现有环,就要想到双倍延长再模拟一下题意,手玩一下即可//LUOGU_RID:117752061#include<bits/stdc++.h>using......
  • ABC283E (dp思想)
    难度1这题看到一点思路也没有,但是看到最小操作数想到二分,dp和贪心,二分答案的check显然不会,贪心不会。发现对于一行,前面的\(i-2\)是不会影响的,这一行也不会影响后面的\(i+2\)行,所以是dp。考虑如何设计状态因为\(i-1\)和\(i+1\)行都会影响,所以设计出来一个dp[i][0/1][0/1][0/1]的东......
  • P10156(dp思想)
    难度2也是比较有意思的一道题。首先发现每个小团体独立,所以对于每个小团体分开直接暴力dp,dp[i][j]表示当前小团体做到第i人,走了j人,然后O(n)转移,加上部分分喜提50pts。为什么要O(n)转移呢,因为我要枚举匹配的两个人然后算贡献。但是对于这种带绝对值的贡献,我们一般都要把绝对值拆掉......
  • P1240+P1350+ AT_abc282_g得出的一些dp技巧
    在遇到一些题目在设状态时,前面的状态对后面的有影响,比如在P1240和P1350中前面的放置会对后面的有影响,正常的状态是不行的。以前可能考虑状态压缩,但现在我们可以通过发现前面状态的一些共性,比如在P1240+P1350中前面放了k个車那么一定有k行被占用,所以就不用记录之前那些行被占用了。......
  • 【学习笔记】树型DP学习笔记
    学习笔记索引省流:被吊打了自己开的一个坑,死也要填完它。希望我随手写下的笔记对您的学习有所帮助(也不太可能)。更改日志2024/01/08:开坑,写了树的直径和换根DP,写不动了(((2024/01/08晚上:更新了最小点覆盖和最大独立集,看来精神还可以,顶着明天做手术的风险2024/01/09:修改错误+增补......
  • Exception in thread "xxl-job, admin JobRegistryMonitorHelper-registryOrRemoveThr
    这个问题集合遍历修改了集合结构,这样是不被允许的,需要换种方式报错示意图 第一可以采用for(inti=0;i<registryList.size();i++)解决第二采用迭代处理Iterator<XxlJobRegistry>iterator=registryList.iterator();while(iterator.hasNext()){XxlJobRegist......