【Luogu】 P8256 [NOI Online 2022 入门组] 字符串 您所在的位置:网站首页 求救信号百度百科 【Luogu】 P8256 [NOI Online 2022 入门组] 字符串

【Luogu】 P8256 [NOI Online 2022 入门组] 字符串

2023-03-13 04:56| 来源: 网络整理| 查看: 265

题目描述

点击打开链接

题目解法

这道题一眼是个 d p dp dp 题 看到数据范围 n < = 400 n=1) dp[i][j][k]+=dp[i−1][j][k−1](k>=1) 即之后的操作需在后面删去 s i s_i si​ d p [ i ] [ d i g ] [ 0 ] + = d p [ i − 1 ] [ d i g − 1 ] [ 0 ] dp[i][dig][0]+=dp[i-1][dig-1][0] dp[i][dig][0]+=dp[i−1][dig−1][0] 即之后的操作需在前面删去 s i s_i si​ d p [ i ] [ j ] [ 0 ] + = d p [ i − 1 ] [ j ] [ 0 ] dp[i][j][0]+=dp[i-1][j][0] dp[i][j][0]+=dp[i−1][j][0] 即在后面加入 s i s_i si​ 注意从前面删和从后面删不一样 如果 s i = ′ − ′ s_i ='-' si​=′−′ d p [ i ] [ j ] [ k ] + = d p [ i − 1 ] [ j + 1 ] [ k ] + d p [ i − 1 ] [ j ] [ k + 1 ] dp[i][j][k]+=dp[i-1][j+1][k]+dp[i-1][j][k+1] dp[i][j][k]+=dp[i−1][j+1][k]+dp[i−1][j][k+1],这没什么好解释的

最后的答案就是 d p [ n ] [ 0 ] [ 0 ] dp[n][0][0] dp[n][0][0]

这里需要特判一下最后 R R R 串的长度是否等于目标串的长度,不等于答案为 0 0 0,不然民间数据会 W A 20 p t s WA20pts WA20pts

#include using namespace std; const int N(410),P(1e9+7); int n,m,dp[N][N][N]; char s[N],t[N]; inline int read(){ int FF=0,RR=1; char ch=getchar(); for(;!isdigit(ch);ch=getchar()) if(ch=='-') RR=-1; for(;isdigit(ch);ch=getchar()) FF=(FF if(s[i]=='0'||s[i]=='1'){ dig++; //在右边删掉 for(int j=0;j int T=read(); while(T--) work(); return 0; }


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有