news 2026/7/4 4:29:13

UVa 531 Compromise

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
UVa 531 Compromise

题目描述

题目要求找出两个文本的最长公共子序列(LCS,Longest Common Subsequence\texttt{LCS,Longest Common Subsequence}LCSLongest Common Subsequence),文本由若干单词组成,单词之间用空白分隔,以#结尾。输出任意一个最长公共子序列(单词序列)。

输入格式

输入包含多个测试用例。每个测试用例包含两段文本,每段文本由若干单词组成,以单独一行的#结束。输入以文件结束符(EOF\texttt{EOF}EOF)终止。

输出格式

对于每个测试用例,输出一行,包含最长公共子序列中的单词,单词之间用空格分隔。

样例

输入

die einkommen der landwirte sind fuer die abgeordneten ein buch mit sieben siegeln um dem abzuhelfen mussen dringend alle subventionsgesetze verbessert werden # die steuern auf vermoegen und einkommen sollten nach meinung der abgeordneten nachdrucklich erhoben werden dazu mussen die kontrollbefugnisse der finanzbehoerden dringend verbessert werden #

输出

die einkommen der abgeordneten mussen dringend verbessert werden

题目分析

本题的核心是求解单词序列的最长公共子序列,并输出子序列本身。

动态规划

dp[i][j]\textit{dp}[i][j]dp[i][j]表示第一个文本的前iii个单词和第二个文本的前jjj个单词的LCS\texttt{LCS}LCS长度。转移方程:

  • word1[i]=word2[j]\textit{word1}[i] = \textit{word2}[j]word1[i]=word2[j],则dp[i][j]=dp[i−1][j−1]+1\textit{dp}[i][j] = \textit{dp}[i-1][j-1] + 1dp[i][j]=dp[i1][j1]+1
  • 否则,dp[i][j]=max⁡(dp[i−1][j],dp[i][j−1])\textit{dp}[i][j] = \max(\textit{dp}[i-1][j], \textit{dp}[i][j-1])dp[i][j]=max(dp[i1][j],dp[i][j1])

同时记录路径方向,以便回溯输出单词。

输出

(n,m)(n, m)(n,m)回溯到(0,0)(0, 0)(0,0),当遇到相等单词时,将其加入结果列表,最后反转输出。

复杂度分析

单词数n,m≤100n, m \le 100n,m100,时间复杂度O(n×m)O(n \times m)O(n×m),空间复杂度O(n×m)O(n \times m)O(n×m)

代码实现

// Compromise// UVa ID: 531// Verdict: Accepted// Submission Date: 2016-08-11// UVa Run Time: 0.000s//// 版权所有(C)2016,邱秋。metaphysis # yeah dot net#include<bits/stdc++.h>usingnamespacestd;intmain(){cin.tie(0);cout.tie(0);ios::sync_with_stdio(false);string first[110],second[110];intcommom[110][110][2]={0};while(true){string word;intfirst_count=1;while(cin>>word){if(word=="#")break;first[first_count++]=word;}intsecond_count=1;while(cin>>word){if(word=="#")break;second[second_count++]=word;}if(first_count==1)break;memset(commom,0,sizeof(commom));for(inti=1;i<first_count;i++)for(intj=1;j<second_count;j++){if(first[i]==second[j]&&(commom[i-1][j-1][0]+1)>commom[i][j][0]){commom[i][j][0]=commom[i-1][j-1][0]+1;commom[i][j][1]=1;}if(commom[i-1][j][0]>commom[i][j][0]){commom[i][j][0]=commom[i-1][j][0];commom[i][j][1]=2;}if(commom[i][j-1][0]>commom[i][j][0]){commom[i][j][0]=commom[i][j-1][0];commom[i][j][1]=3;}}vector<string>words;intendi=first_count-1,endj=second_count-1;while(commom[endi][endj][1]>0){if(commom[endi][endj][1]==1){words.push_back(first[endi]);endi-=1,endj-=1;}elseif(commom[endi][endj][1]==2)endi-=1;elseif(commom[endi][endj][1]==3)endj-=1;}reverse(words.begin(),words.end());for(inti=0;i<words.size();i++){if(i>0)cout<<' ';cout<<words[i];}cout<<'\n';}return0;}
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/4 4:28:17

3步解决E-Hentai漫画下载难题:开源工具的智能批量下载指南

3步解决E-Hentai漫画下载难题&#xff1a;开源工具的智能批量下载指南 你是否曾经在E-Hentai上找到心仪的漫画&#xff0c;却被繁琐的下载过程困扰&#xff1f;手动保存每一页不仅耗时耗力&#xff0c;还可能因为网络问题导致下载中断。传统的下载方式需要消耗宝贵的GP点数&…

作者头像 李华
网站建设 2026/7/4 4:26:58

Python之endura-sdk包语法、参数和实际应用案例

Python endura-sdk 完整使用手册 一、包基础概述 1. 包定义与核心定位 endura-sdk 是应用材料&#xff08;Applied Materials&#xff09;Endura 半导体沉积设备专用Python开发套件&#xff0c;面向晶圆镀膜、PVD物理气相沉积设备上位机二次开发&#xff0c;用于对接Endura系列…

作者头像 李华
网站建设 2026/7/4 4:25:59

终极指南:如何用E-Hentai-Downloader实现漫画资源的智能收藏方案

终极指南&#xff1a;如何用E-Hentai-Downloader实现漫画资源的智能收藏方案 在数字漫画收藏领域&#xff0c;E-Hentai-Downloader为用户提供了一个高效便捷的解决方案&#xff0c;能够将在线画廊内容智能打包为ZIP文件&#xff0c;实现漫画资源的自动化管理。这款工具通过创新…

作者头像 李华
网站建设 2026/7/4 4:25:54

AI粮食烘干机器人Qt信创完整项目

# AI粮食烘干机器人Qt信创完整项目 ## 项目说明 1. 技术栈:Qt5.15/Qt6 兼容、C++、QSerialPort串口、QChart数据曲线、多线程温湿度采集、AI烘干智能算法、信创适配(银河麒麟/统信UOS) 2. 硬件模拟:虚拟串口模拟粮食烘干机器人PLC,无硬件也能运行 3. 功能模块: - 主界…

作者头像 李华
网站建设 2026/7/4 4:24:47

EVE-NG v7 重磅更新:付费功能全免费,流量可视化人人可用

前言 长期以来&#xff0c;EVE-NG 都是网络从业者公认的仿真利器&#xff0c;能够完整模拟华为、华三、思科、锐捷等多厂商硬件设备&#xff0c;是考证练习、网络架构调试验证的核心工具。早在 v6 版本&#xff0c;官方就上线了 Traffic Filters 流量可视化功能&#xff0c;依靠…

作者头像 李华
网站建设 2026/7/4 4:24:31

我用PyQt5手搓了一款小米车机软件系统(详细图文说明)

文章目录一&#xff0e;前言二&#xff0e;技术介绍1.PyQt52.QSS3.QThread多线程技术4.QRC资源管理5.黑白主题切换三&#xff0e;效果展示1.主界面2.APP页面3.空调控制页面4.导航页面5.电话页面6.360全景页面7.设置页面1.基本设置2.车辆控制3.灯光设置4.辅助驾驶5.显示设置6.声…

作者头像 李华