POJ 1141 —— Brackets Sequence

【AI理论学习】手把手推导扩散模型:Diffusion Models(DDPM) 生成扩散模型DDPM如下图所示分为前向、逆向两个过程,它首先通过不断往原始清晰数据中添加噪声使其变成标准高斯噪声(前向过程),而后期望从标准高斯噪声中还原原始数据(逆向过程)。若能实现,那便可从已知的标准高斯分布中采样一个噪声数据,而后利用DDPM模型生成符合原始数据分布的新数据。 Diffusion模型包含两个过程:数学符号:y∝xy\propto xy∝x:y正比于x,即y随着x增大而线性增大。 条件概率:贝叶斯公式:p(A∣B)=p(B∣A)×p(A)p(B)p(A|B)=\frac{p(B|A)\ 阅读详情
题目: http://poj.org/problem?id=1141

区间DP + 构造出DP的解

这里有两种思路都是对的:

  第一种(推荐):dp[i][j] := 区间i~j最少需要加多少字符使得它符合括号匹配,然后构造出一个DP的解就好了

  第二种:dp[i][j] := 区间i~j符合括号匹配的最长子序列的长度,然后在构造最长子序列的过程中标记哪些字符本身就已经匹配完毕了,然后对剩下的进行补全就好了 

第一种:

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

char s[105];
int dp[105][105];
int c[105][105];

void dfs(int i, int j)
{
    if(i>j)    return;
    if(c[i][j] == -1)    {
        if(s[i] == '[' || s[i] == ']')    printf("%s", "[]");
        else    printf("%s", "()");
        dfs(i+1, j);
    } else {
        int k = c[i][j];
        printf("%c", s[i]);
        dfs(i+1, k-1);
        printf("%c", s[k]);
        dfs(k+1, j);
    }
}

int main ()
{
    scanf("%s", s);
    int len = strlen(s);
    for(int step=0; step<len; step++) {
        for(int i=0; i+step<len; i++) {
            int j = i + step;
            dp[i][j] = dp[i+1][j]+1;
            c[i][j] = -1;
            for(int k=i+1; k<=j; k++) {
                if(s[i]=='(' && s[k]==')' || s[i]=='[' && s[k]==']') {
                    if(dp[i+1][k-1]+dp[k+1][j] < dp[i][j]) {
                        dp[i][j] = dp[i+1][k-1]+dp[k+1][j];
                        c[i][j] = k;
                    }
                }
            }
            
        }
    }
//    printf("%d\n", dp[0][len-1]);
    dfs(0, len-1);
    printf("\n");
    return 0;    
} 

 

第二种:

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

char s[105];
int dp[105][105], c[105][105];
bool vis[105];

void dfs(int i, int j)
{
    if(i>=j)    return;
    if(c[i][j]==-1)    dfs(i+1, j);
    else {
        int k = c[i][j];
        vis[i] = vis[k] = 1;
        dfs(i+1, k-1);
        dfs(k+1, j);
    }
}

int main ()
{
    scanf("%s", s);
    int len = strlen(s);
    for(int step=1; step<len; step++) {
        for(int i=0; i+step<len; i++) {
            int j = i + step;
            dp[i][j] = dp[i+1][j];
            c[i][j] = -1;
            for(int k=i+1; k<=j; k++) {
                if(s[i]=='(' && s[k]==')' || s[i]=='[' && s[k]==']') {
                    if(dp[i+1][k-1]+dp[k+1][j]+2 > dp[i][j]) {
                        dp[i][j] = dp[i+1][k-1]+dp[k+1][j]+2;
                        c[i][j] = k;
                    }
                }
            }
        }
    }
    dfs(0, len-1);
        
    for(int i=0; i<len; i++) {
        if(vis[i]) {
            printf("%c", s[i]);
        } else {
            if(s[i] == '[' || s[i] == ']')    printf("%s", "[]");
            else    printf("%s", "()");
        }
    }
    printf("\n");
    return 0;    
} 

 

Orange3实战教程:文本挖掘---主题建模 主题建模通过LDA、LSI或HDP算法分析文档集合,自动发现隐含主题结构。组件输入为文档语料库,输出包括带主题权重的语料库、主题词分布及完整主题数据。不同算法特性各异:LSI允许正负权重但解释性较弱,LDA更易解释,HDP参数复杂需谨慎设置。结果可结合词云、热力图等可视化工具分析主题特征及分布。示例显示如何通过预处理文本、选择算法(如提取5个LDA主题),并利用MDS和箱线图探索主题间关系及关键词分布。 阅读详情

相关推荐

别再用Excel画波特图了!用LTspice免费仿真软件,5分钟搞定电路传递函数分析

本文介绍了如何利用LTspice免费仿真软件高效绘制波特图,解决传统Excel绘图效率低、精度不足的问题。通过详细的操作步骤和实战案例,展示LTspice在电路传递函数分析中的自动化计算、专业级精度和完整特性展示等优势,帮助工程师快速完成频率响应分析。

weixin_42524226的博客 461

poj 1141 题解

题意简述 给定一个括号序列(长度&lt;=100&lt;=100<=100),但是这个括号序列不一定匹配,请用最少的添加配好这个序列。输出配好的序列。 数据 输入 ([(]([(]([(] 输出 ()[()]()[()]()[()] 思路 这个。。。第一眼看到,栈? 仿佛不能做。。。但是这个题好像珂以区间DPDPDP? dp[l][r]dp[l][r]dp[l][r]表示从l...

LightningUZ的博客 415

伺服电机三环控制实战:从参数整定到系统优化

本文以实战视角,深入解析伺服电机三环控制(位置环、速度环、电流环)的参数整定与系统优化全流程。文章摒弃复杂理论,通过生动的比喻和分步调试指南,详细阐述了从电流环快速响应、速度环平滑调节到位置环精准定位的调试方法,并提供了常见问题排查与进阶优化技巧,帮助工程师有效提升伺服系统性能与稳定性。

weixin_29201933的博客 243

POJ 1141

题意:求增加括号数最小的序列 思路:见代码注释 #include #include #include #include #include #include #include #include #define y1 y12345 #define mx 110 #define inf 0x3f3f3f3f #define LL long long #define ULL unsigned long

发神经的猫的专栏 516

《科研伦理与学术规范》期末考试答案2023

26单选(2 分)某学术杂志的评稿人同时是某高校相关专业的硕士生导师,在评判一个稿件的时候,他发现该作者研究的题目很有价值, 他便一边压下这个稿子,一边将稿子的纲要传给自己门下的硕士生, 指导他们使用这个题目独立写出一篇论文,并帮助他们发表在其他期 刊上。D.要善待实验动物,是指在饲养管理和使用实验动物过程中,要采取有效措施,使实验动物免遭不必要的伤害、饥渴、不适、惊恐、折磨、疾病和疼痛,保证动物能够实现自然行为,受到良好的管理与照料,为其提供清洁、舒适的生活环境。张某在压力之下不得不屈从。

Glenseeds的博客 4万+

嵌入式开发必备:UART、RS232、RS485通信协议实战对比(附代码示例)

本文从嵌入式开发实战角度,深度对比了UART、RS232和RS485三种核心串行通信协议。详细解析了它们的工作原理、硬件连接、代码配置及典型应用场景,并提供了基于通信距离、节点数量和电磁环境的三维度选型指南,帮助开发者根据项目需求做出最优技术决策。

i0j1k2l3m的博客 474

POJ1141 Brackets Sequence

大致的意思是将一个非规范的序列转化成规范的序列,如 ([(],这是一个非规范的序列,处理之后要求输出规范的序列:()[()],要求就是添加最少的括号。     黑书上通过这题来介绍选择DP的原因之一:递归。     因为序列Si····Sj,可以分成:Si···Sk,Sk+1···Sj,只要d(i,k)+d(k+1,j)最小,则d(i,j)=min(d(i,j),d(i,k)+d(k+1,j)

flyRP的专栏 578

告别手动转换!用腾讯云轻量服务器+QMT插件,5分钟搞定聚宽策略实盘(附完整源码)

本文详细介绍如何利用腾讯云轻量服务器和QMT插件快速实现聚宽策略的自动化实盘部署。通过云端信号中转站解决协议转换、信号缓存等核心问题,5分钟完成服务器配置,并附完整源码实现零改造实盘方案,显著提升量化交易效率。

weixin_28707739的博客 659

poj1141-Brackets sequence

题目链接 题意:给定一括号序列,求出添加括号数最小的完整序列 解法:区间DP 定义dp[i][j]表示题目所给字符串s中从左至右字符i至j这一区间段括号序列构成完整序列所需添加的最小括号数; 根据i与j的大小对dp[i][j]进行初始化,i==j显然为1,i>j不符合定义中从左至右意为空序列即0,i<j因是取最小值则初值设为相对较大; 设阶段r为序列长度,状态为i为...

My优快云5008的博客 301

深入探讨 VQ-VAE:理解变分量化自动编码器

VQ-VAE代表"Variational Quantized Variational Autoencoder",是一种生成模型,通常用于处理高维数据,如图像和音频。它的设计灵感来自于变分自动编码器(VAE)和量化方法,结合了它们的优点,使得 VQ-VAE 能够生成高质量的数据,并在数据表示上引入离散性。VQ-VAE 是一种强大的生成模型,结合了变分自动编码器和量化方法的优点。它在图像和音频生成、数据压缩和生成性对抗网络等领域具有广泛的应用。

DeepViewInsight的博客 7015

uniapp:详细ios本地离线打包完整流程,使用XCode苹果本地离线打包APP,UNIAPP IOS离线打包并上传到上传到App Store应用商店(mac环境 Uniapp iOS本地离线打包)

uniapp ios 本地离线打包(攻略),iOS App打包发布上架,uni-app项目离线打包之iOS,uni-app实现XCode苹果本地离线打包APP,UNIAPP之IOS离线打包,iOS开发打包ipa,uniapp 打包 IOS,uniapp ios app离线打包配置,uniapp打包离线App(ios),uniapp ios打包详细步骤,最新版iOS Xcode如何证书配置和ipa打包(附图文教程)uniapp申请ios证书,uniapp iOS打包,证书申请,XCode打包IOS应用发布Ap

✅ 精选推荐文章 4506

POJ 1141 Brackets Sequence

POJ  1141;链接:http://poj.org/problem?id=1141 题目: Brackets Sequence Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 23638   Accepted: 6665   Special Judge

u010084308的专栏 1188

PyCharm配置SSH和SFTP远程连接服务器

关于这篇博文,主要因为公司企业都是通过本地测试,同步到服务器进行跑动,舍友看着同事丝滑的操作,让我做个教程。本着钻研的精神,写下了这篇博客记录 关于pycharm这个软件,只有专业版才有远程连接的这个配置,社区版没有(同事一再强调要专业版,学生认证还可申请免费) 关于SSH和SFTP都是一种协议 具体知识点补充可看我这篇文章: 【计算机网络】常见面试题集锦(全) SSH:提供安全通道进行远程登录 SFTP协议可以远程文件传输获取等,数据的安全传输主要由SSH连接提供

码农研究僧的博客 5533

POJ 1141 Brackets Sequence

题目描述: 定义合法的括号序列如下: 1 空序列是一个合法的序列 2 如果S是合法的序列,则(S)和[S]也是合法的序列 3 如果A和B是合法的序列,则AB也是合法的序列 例如:下面的都是合法的括号序列 (),  [],  (()),  ([]),  ()[],  ()[()] 下面的都是非法的括号序列 (,  [,  ),  )(,  ([)],  ([(]  给定一个

路漫漫其修远兮,吾将上下而求索 4341

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

POJ-1141-Brackets Sequence

POJ-1141-Brackets Sequence 传送门 这道题是区间dp~ 括号匹配 题目大意:给你一个括号序列,让你构造一个长度最小的匹配的括号序列,使得给定的括号序列为构造的括号序列的子序列(注意是子序列) 文件形式读入 然后这道题用dp解决无疑了。 dp[i][j]表示第i个字符到第j个字符构成匹配的括号序列最小需要添加多少字符。 初始化部分: dp[i + 1][i] = 0;(这个...

qq_44624316的博客 244

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

动态规划 Brackets Sequence poj 1141

题目连接:http://poj.org/problem?id=1141 题目大意:给出一串括号序列(只包含小括号和中括号),求包含次子序列的长度最小的regular brackets sequence。其中regular brackets sequence定义如下: 1.空序

凌风 2921

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

POJ 1141_Brackets Sequence

Description Let us define a regular brackets sequence in the following way:  1. Empty sequence is a regular sequence.  2. If S is a regular sequence, then (S) and [S] are both regular sequences

骐骥一跃不能十步,驽马十驾功在不舍 761

poj 1141Brackets Sequence

Brackets Sequence Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 31629   Accepted: 9114   Special Judge Description Let us define a regular brackets seque

wo的只属于我 395

poj 1141 Brackets Sequence(DP第一弹)

poj   1141   Brackets Sequence                      题目链接:http://poj.org/problem?id=1141 DP 题目大意:一个字符串只有方括号和圆括号四种字符,规定合法序列,要求将输入序列修改成最短合法序列输出。 合法序列定义:     (1)空序列是一个合法的序列。     (2)如果S是一个合法序列,那么(S)和[

slicer的技术交流栈 824

poj1141 Brackets Sequence

(http://www.elijahqi.win/2017/12/28/poj1141-brackets-sequence/) DescriptionLet us define a regular brackets sequence in the following way: Empty sequence is a regular sequence. If S is a regular seque

Elijahqi 225

Poj 1141 Brackets Sequence

DescriptionLet us define a regular brackets sequence in the following way: 1. Empty sequence is a regular sequence. 2. If S is a regular sequence, then (S) and [S] are both regular sequences. 3.

Follow My Heart 395

poj 1141 Brackets Sequence

感想:较好的入门题,关键这里可以让你学到记录路径的方法,也可以算做dp记路径的入门题了吧。 思路:   这题的思路关键在于   (A) 或(B)  AB这几种请况,所以在dp的过程中 要找这几种的最小值, 首先   dp[ i ][ i ]肯定是1,因为只有一个单括号的话,必须要来一个括号来进行匹配; 状态转移方程   dp[ i ][ j ] =  min(d

purevegetable 1218

POJ1141 Brackets Sequence

题目大意:定义一些规则序列:如果S是规则序列,那么[S]或者(S)也是规则序列,如果A和B都是规则序列,那么AB是规则序列。给出含有圆括号"()"和方括号"[]"的字符串 求添加最少括号的规则序列,并打印出来。 思路:含有重复子问题,递归动机的DP。 当字符串中ww[i]=='(' && ww[j]==')'  或者  ww[i]=='['&&ww[j]==']',那么显然只需要看dp[i+

muxi@Achilles的专栏 949

Brackets Sequence poj1141

Brackets Sequence poj1141 题意:给一个括号串,要求输出增加最少的括号,使得整个括号串匹配后的括号序列。 思路:区间dp。记录路径的时候使用pos[i][j]数组,记录i到j中间的分割点,如果不用分割,那么记录为-1,否则是分割点的位置. 输出使用递归即可。 TIP:不要用scanf,会wa掉。用gets来读入。#include<cstdio> #include<io

neuike的博客 335

POJ1141-Brackets Sequence

用dp[i][j]记录下从i到j所缺少的括号数量,那么dp[i][i] = 1,dp[i][j] = dp[i][k] + dp[k+1][j],另外如果第i个字符和第j个字符匹配,则dp[i][j]应先被置为dp[i+1][j-1]。 由于要输出最终的字符串,所以使用pos[i][j]记录下缺省的位置,输出也是一个难点,要写一个函数递归的输出配对后的合法字符串,代码仅供参考。//POJ1141

Collider 472
上一篇: 最长公共子序列 LCS
下一篇: 最长上升子序列 LIS
AcIsFun
博客等级 码龄10年 1粉丝 92原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值