点击打开链接
题目意思: 给定一个正确的编号序列,然后对输入的每一组序列找最长公共子序列
解题思路: 动态规划
1:题目给定的n个数并不是表示当前位置的值就是Ai,而是表示第i个数放在第Ai个位置,看样列4 2 3 1,说明1放在第四位,2放在第二位,3放在第三位,4放在第一位。
2:题目就是要求出最长的公共子序列,由于题目的n最大才20,那么我们可以直接去枚举。假设现在枚举到Ai这个数,那么我们就求i之前的所以数能够和Ai构成连续的序列最大值dp[i],然后判断能否更新最大值(max_point < dp[i]),最后输出这个最大值即可。
代码:
#include <algorithm>
#include <iostream>
#include <cstring>
#include <string>
#include <vector>
#include <cstdio>
#include <stack>
#include <queue>
#include <cmath>
using namespace std;
#define MAXN 25
int n;
int correct[25];//存储正确的顺序
int order[MAXN];//要求的顺序
int dp[MAXN];
void solve(){
int max_point = 0;
int pos_i , pos_j;//记录在correct数组中的位置
dp[0] = 1;
for(int i = 1 ; i < n ; i++){
dp[i] = 1;//初始化为1
for(int j = i-1 ; j >= 0 ;j--){//搜索i之前的数
for(int k = 0 ; k < n ; k++){//去correct数组中找到order[i] 和order[j]的位置
if(correct[k] == order[i]) pos_i = k;
if(correct[k] == order[j]) pos_j = k;
}
if(pos_i > pos_j){//如果i在j后面说明是连续的,求dp[i]
if(dp[j]+1 > dp[i]) dp[i] = dp[j]+1;
}
}
if(max_point < dp[i]) max_point = dp[i];//更新max_point
}
printf("%d\n" , max_point);
}
int main(){
//freopen("input.txt" , "r" , stdin);
int m;
scanf("%d" , &n);
for(int i = 1 ; i <= n ; i++){
scanf("%d" , &m) ; correct[m-1] = i;//求出correct数组
}
while(scanf("%d" , &m) != EOF){
order[m-1] = 1;
for(int j = 2 ; j <= n ; j++) {
scanf("%d" , &m) ; order[m-1] = j;//求出order数组
}
solve();
}
return 0;
}
更多详细信息请查看
java教程网 http://www.itchm.com/forum-59-1.html
分享到:
相关推荐
PNS Animal Carcass - Chicken - Grading.pdf
《贪婪函数逼近:评分提升机》是一篇由Jerome H. Friedman发表在2001年《统计学年鉴》第29卷第5期的文章,该文章深入探讨了一种机器学习方法——梯度提升机(Gradient Boosting Machine, GBDT)。...
《新鲜蔬菜 - 大蒜 - 分级》PNS/BAFS 51:2021标准详解 菲律宾国家标准(PNS)《新鲜蔬菜 - 大蒜 - 分级》(PNS/BAFS 51:2021)是针对大蒜产品质量和贸易要求的一项规定,旨在确保在东南亚地区大蒜的质量标准与贸易需求...
PNS.BAFS 326.2022_PNS Pork Carcass-Product Standard-Grading (1).pdf
PNS.BAFS 333.2022_PNS Onion - Product Standard - Grading PNS.BAFS 333.2022是菲律宾国家标准局发布的一项标准,具体涵盖了洋葱产品的等级评估要求。该标准的制定旨在解决菲律宾在洋葱贸易中的挑战,特别是在...
【评分-Grading&Landscaping LLC】是一个与景观设计和分级服务相关的项目,很可能是一个网页应用或管理系统,主要用于展示公司的服务、项目案例以及客户评价等。该项目使用了JavaScript作为主要的前端开发语言,这...
"Peer-Review-Grading-System" 是一个用于学术或教育环境中的同行评审评分系统的开源项目。这个系统设计的目标是帮助教师、导师或者组织者管理大规模的课程作业、论文或者其他形式的学生作品评审过程。通过同行评审...
在“压缩包子文件的文件名称列表”中,我们看到“VM-TrilogyEd-assignment-grading-master”这可能是项目的主分支或者源代码仓库的名称。这个文件夹可能包含了Vagrantfile(用于定义虚拟机配置)、Ansible playbook...
菲律宾国家标准PNS/BAFS 340:2022 Shallots — Product Standard — Grading 本资源是菲律宾国家标准局(Bureau of Agriculture and Fisheries Standards,BAFS)发布的PNS/BAFS 340:2022,标题为Shallots — ...
在项目文件"Auto-Essay-Grading-main"中,可能包含了数据集的加载、预处理脚本、模型训练、评估和可视化的过程。通过阅读和运行这些Notebooks,我们可以深入理解自动作文评分系统的实现细节,并且能够根据实际情况...
【标题】"tasty-grading-system" 是一个基于 Haskell 编程语言的评分系统项目,它的设计目的是为了方便教育者或测试组织者自动化处理学生作业的评分和反馈。Haskell 是一种纯函数式编程语言,以其强类型、惰性求值和...
react-native-grading react-native-grading 是一个 RN 组件,供用户对分数进行评分。 组件提供四种模式,弧/模拟/星星/板。 Example.gif 每种模式至少有 3 个示例,以显示不同状态的组件。 在每个测试组中,第一个...
论文评分系统 需要 Java 8 和 Maven 3 Wordnet(在数据/模型文件夹中)句子检测器、带有标签字典的 Maxent 模型和数据/模型中的解析器模型) 从下面的链接下载训练数据并放入 data/Answer_datasets ...
方法完成 单元1-第1周 作业指示 完成所提供的三个类中的方法: 预热问题 逻辑问题 字符串问题 需要完成这些方法以匹配它们上方的注释的要求。 提供了一些示例以显示某些情况(而非全部)的预期输出。...
中心点选择最近matlab代码ublearns-评分工具 一些用于对通过 UBlearns 提交的作业进行评分的工具。 写作是为了让 TA 的生活更轻松一点。 不要指望这段代码能完美运行。...我们将使用一些常见的存档实用程序,例如 ...
java开发的公司官网源码 Readme file
《菲律宾国家标准 PNS BAFS 152_2015:Loofah - 分类与分级》 本标准由菲律宾农业与渔业标准局(BAFS)通过2014年第169号特别命令组建的技术工作组(TWG)制定,旨在为Loofah(在菲律宾本地被称为patola)的品质和...
"backend-grading-system"是一个基于JavaScript技术构建的后端评分系统。这个系统主要负责处理教育、考核或评估环境中的成绩计算、等级划分等任务。在深入探讨之前,我们需要明确JavaScript虽然通常用于前端开发,但...
资源分类:Python库 所属语言:Python 资源全名:grading_tools-0.6.0-py3-none-any.whl 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059
这篇文章的代码可以在这里找到: : 荒谬的是,我们没有一个使用持续集成(CI)对GitHub上托管的家庭作业进行评分的合适解决方案。 简而言之,CI只是一台在每次提交代码时都对代码运行单元测试的服务器。...