uva111 - History Grading(最长公共子序列LCS)

【第一篇】Xshell连接服务器部署前后端项目(连接服务器) 利用Xshell连接服务器部署前后端项目 阅读详情

题意:
求最长公共子序列问题
思路:
dp , 然后有坑!题目给的是该序列在正确序列的第几位,还要转换一下。
然后还有一点,下述代码AC,但其实有误,有误部分在代码部分会提及。
错误理由见uva10405http://blog.youkuaiyun.com/conatic/article/details/50848324
代码如下:

#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
const int N = 35;
int a[N], b[N], dp[N][N];

int main() {
    int n, t;
    scanf("%d", &n);
    for (int i = 1; i <= n; i++)  {
        scanf("%d", &t);
        a[t] = i;
    }
    while (~scanf("%d", &t)) {
        b[t] = 1;
        for (int i = 2; i <= n; i++) {
            scanf("%d", &t);
            b[t] = i;
        }
        memset(dp, 0, sizeof(dp));
        for (int i = 1; i <= n; i++) {
            for (int j = 1; j <= n; j++) {
                dp[i][j] = max(dp[i - 1][j], dp[i][j - 1]);
                if (a[i] == b[j])
                /*该部分有误,但还是AC了,为什么错了还是在uva10405解释,正确应为:
        for (int i = 1; i <= la; i++) {
            for (int j = 1; j <= lb; j++) {
                if (A[i - 1] == B[j - 1]) {
                    dp[i][j] = dp[i - 1][j - 1] + 1;
                }
                else
                    dp[i][j] = max(dp[i - 1][j], dp[i][j - 1]);

            }
        }*/
                    dp[i][j] ++;
            }
        }
        printf("%d\n", dp[n][n]);
    }

    return 0;
}
SVM-支持向量机学习(1):线性可分SVM的基本型 1. foreword先看的是李航老师的书第7章,比较传统按照以下三节展开: 线性可分SVM 线性SVM 非线性SVM SMO算法 李航老师讲东西向来不拖泥带水,但本节也几乎用了40页的篇幅,足见涉及内容之多。7月底硬着头皮啃了下来,边看边在笔记上摘抄标注,花了2天时间对SVM有了基本认识。一个月过去了,如今重新整理为博客,再看轻松许多,并不断对比西瓜书的内容,启望达到融会贯通。西瓜书此节明显节奏轻 阅读详情

相关推荐

STM32 热敏电阻测量温度

1、硬件 STM32F103C8T6、热敏电阻传感器、OLED。 2、热敏电阻传感器的介绍

weixin_54721788的博客 1万+

uva111 - History Grading(历史考试)

这个题目前知道两个思路,(最大上升序列)和(最长公共自序列) 我首先想到的是最大上升序列。但是由于思路不清楚,代码没能立即写出来 思路: 读取并存储第一个字符串,这个字符串交代了每个事件发生的时序,如a[4]  = 1表示事件4在第1个时间发生了、 接写来就是读取需要处理的字符串了。每个字符串表示事件事实发生的时序数列, 我们先把b转化成事件发生顺序,即把每个时序发生的放到对应位置上

稻草人 920

【HDR】曝光融合(Exposure Fusion)

在曝光融合(Exposure Fusion)算法问世之前,多曝光序列合成用于显示的HDR需要两个步骤,第一步是将多张不同曝光的低动态范围图像合成为HDR(例如Debevec提出的加权融合方法),通常HDR为12bit或者16bit;第二步是通过tonemapping对高动态范围HDR进行压缩以支持低动态范围显示设备(例如Durand提出的基于双边滤波的tonemapping算法),一般会压缩至8bit。

专注人工智能,主攻CV 1万+

uva 111 (LCS)

题意: 给一个标准时间,给若干个排序时间,问最长公共子序列长度。 解析: 状态转移方程: if (time[i - 1] == num[j - 1]) { dp[i][j] = dp[i - 1][j - 1] +1; } else { dp[i][j] = max(dp[i - 1][j], dp[i][j - 1]); } 本题需要注意的是题目给的数字是排序点,

渐近自由 474

Vue3实战:集成bpmn-js与Activiti工作流引擎的完整指南

本文详细介绍了如何在Vue3项目中集成bpmn-js流程图编辑器与Activiti工作流引擎,构建一个完整的前端流程设计器。文章重点解析了Vue3响应式系统与bpmn-js集成的核心陷阱及解决方案,并提供了属性面板配置、XML命名空间适配、撤销重做等实用功能的完整实现指南,帮助开发者高效完成工作流系统的前端开发。

weixin_29009881的博客 212

c++界面开发入门

c++界面开发 DialogBox MessageBox

jiaodou2的博客 6516

UVA111 (DP)

题目的意思是,给出某些历史shij

潜水的程序猿 656

CNC雕刻与VCarve Pro实战:将三维地形数据转化为木质景观时钟

计算机辅助制造(CAM)是现代数字制造的核心技术之一,它通过软件将设计模型转化为机床可执行的指令,驱动设备进行精准加工。其原理在于将三维模型离散为刀具运动路径(G代码),控制铣刀等执行机构进行“减材”成型。这项技术的价值在于实现了复杂三维形体的高精度、可重复制造,极大地拓展了创意实现的边界。在应用场景上,CAM广泛应用于模具加工、原型制作、个性化工艺品制造等领域。本文聚焦于一个具体实践:利用VCarve Pro软件,结合从在线地图服务获取的真实地形STL数据,通过CNC雕刻机在硬木上加工出具有真实地理特征的

weixin_30651345的博客 376

UVa 111: History Grading

这道题首先要对输入进行处理,解题的一般思路是将所给的c数组与r数组按照各个历史事件的rank重排,即最早的事件的编号放在数组的第一位......然后这题转化为求两个串的最长公共子序列长度的问题。 但我使用了另外一种解法(虽然仍然要用动态规划 =-= ): 只对输入的c数组重排(即c数组中c[i]存放rank为i的事件的编号),r数组不变。建立ans数组,ans[i]存放以rank为i为结尾的最

rising_fallmoon的专栏 1182

Qt中多线程的使用(一)

我们要实现的是读取大文件qtgui.index的内容加入文本框中。 很容易想到的方法: QFile* file = new QFile("E:\qtgui.index"); file-&gt;open(QIODevice::ReadOnly); QTextStream *stream = new QTextStream(file); while(!st...

yao5hed的专栏 1万+

撸毛笔记-电信营业厅 v5.03

电信营业厅 v5.03签到和完成部分金豆任务, 喂宠物7天,15天,28天连签抽奖, 宠物等级权益兑换自己设置电信的服务密码, 把 手机号#服务密码 填到变量里:每天运行一两次const $ = new Env("电信营业厅");

xiaoshun007的专栏 4497

UVA - 111History Grading(LIS)

题目:UVA - 111History Grading(LIS) 题目大意:找最长的LIS。但是题意讲的实在是有问题。   例如:3 1 2 4 9 5 10 6 8 7,意思是第一个历史事件的时间是排在第三位,第二个历史事件是在第1位,那么首先先要将这个事件按照时间顺序重新排序。新的排列顺序:2 3 1 4 6 8 10 9 5 7。 解题思路:LIS. 代码

661

【用unity实现100个游戏之15】开发一个类保卫萝卜的Unity2D塔防游戏5(附项目源码,完结)

本期是本项目的最后一篇,主要内容是配置环境、生成不同敌人、结束重开。

向宇的博客,专注php/web全栈 unity游戏开发,欢迎大家评论纠错 2574

UVA 111——History Grading【LCS最长公共子序列】

题目传送门 题意: 先给出nn个事件的正确发生时间顺序,在给出一些学生排出来的时间发生时间顺序,有两种得分方式: 在相应的时间点发生事件相同则得11分 可以得到的分数等于发生事件的相对时间顺序正确的最长长度。 求按照第二种方式可以获得的得分。 nn的范围,2<=n<=202<=n<=20 分析: 最长公共子序列的应用.之前已经有过一些相对应的练习,不过这道题关于历史...

NIRVANA REBIRTH 417

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

UVA - 111 History Grading(LCS最长公共子序列)

题目大意:对于若干历史事件,给出标准答案顺序和学生回答的顺序,根据标准给同学打分。 有两种评分方式:1、和答案位置匹配一个得一分;2、任意几个事件(不一定连续),若互相前后顺序正确,最多有几个得几分 如标准答案是 1,2,3,4 同学回答是 1,3,2,4 根据第一种评分方式,1,4位置匹配,得2分 根据第二种评分方式,1,2,4 或 1,3,4 相应前后顺序 正确,得3分 本题中,输出

life kicks in right now 416

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

UVa 111 History Grading

本题要求根据学生历史事件排序答案与标准答案的匹配程度计算分数。关键在于找出学生答案中最长的相对顺序正确的子序列长度(不必连续)。通过将学生答案转换为标准排名序列,并求该序列的最长上升子序列(LIS),即可得到分数。三种实现方式分别采用O(n²)动态规划、STL优化和O(n log n)算法,核心思路均为将问题转化为LIS求解。适用于事件数n≤20的小规模数据,高效且准确。

寂静山林 787

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

UVA 111 History Grading(LIS/LCS)

题目链接:https://vjudge.net/problem/UVA-111 解题思路: 题目意思大概是输入n,下一行输出n个数 然后接下去多组输出,每组输入n个数(1~n) 然后按照第一行那n个数排序,然后求排序后的最长上升子序列 代码中重要变量的意思: int ord【22】---> 储存第一行,每次都赋值给结构体中的order,用于排序。 下面是代码:(虽然明知道可以用...

shadiao.的博客 239

UVA 111 History Grading 【lcs】

Brief Description: 一个历史考试,有n个历史事件, 它们之间的年份是不同的,要学生把这些事件按照正确的顺序排列出来。有两种记分方式,采用的是第二种: 假设有历史事件1,2,3,4, 它们正确的时间顺序是1,2,3,4, 然后假设学生的答案是1,3,2,4, 那么按照相对顺序正确的数量,答对了三个(1,2,4或者1,3,4),也就是它与正确答案的最长公共子序列长度是3,便是答

code_or_code 740

UVa 111 History Grading(LIS第一弹)

UVa  111  History Grading 题目链接:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=47 DP LIS 题目大意:历史考试中常会碰到“将历史事件按发生时间排序”这样的题目,现有两种评分标准,1、第i件事排在i号位上,得分;2、

slicer的技术交流栈 1055

uva 111 History Grading(LCS)

题目连接:111 - History Grading 题目大意:给出一个n 代表序列中元素的个数, 然后是一个答案, 接下来是若干个同学的答案(直到文件结束为止), 求出两个序列的最长公共子序列, 注意给出的答案均是以该事件处于第几个发生的, 例如 :2 3 4 1 即是 对应第1个事件在第2个发生,第2个事件在第3个发生 ...转换一下就是  4 1 2 3。 解题思路

不慌不忙、不急不躁 1820

uva 111 History Grading

题目大意:给出一个由历史事件的发生的先后顺序组成的标准答案,以及若干的试卷答案,要你比对正确的个数,也就是两个序列的最大公共子序列长度。 题目思路:经典模型,状态转移方程:A[i]==B[i]时,dp(x,y) = dp(x-1,y-1)+1,否则dp(x,y) = max(dp(x-1,y),dp(x,y-1)) 题目坑点:并不是要你求给你的两个序列的最大公共子序列长度。而是要先转化,以

萌萌哒黑大帅的博客 483

UVA 111 History Grading

题目链接:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&amp;Itemid=8&amp;page=show_problem&amp;problem=47 题意和分析:给了1-n的一个排列作为这n个数的排序,比如4231代表1是第4个数,2是第二个数,3是第三个数,4是第一个数.所以要先把这些数按照出现的位置整理一下,然后...

zhlbjtu2016的博客 247

UVA111 History Grading【LCS+DP+记忆化递归】

Many problems in Computer Science involve maximizing some measure according to constraints.     Consider a history exam in which students are asked to put several historical events...

海岛Blog 914

UVA111History Grading——dp

Many problems in Computer Science involve maximizing some measure according to constraints. Consider a history exam in which students are asked to put several historical events into chronological order. Students who order all the events correctly will rece

WAR___NING的专栏 580

uva 111 - History Grading LCS

一开始想拿它联系下nlogn的lcs,结果发现n^2才0.022s就算了,nlogn是把LCS编程LIS,然后二分查找    注意输入形式 /* author:jxy lang:C/C++ university:China,Xidian University **If you need to reprint,please indicate the source** */ #includ

弱弱的jxy 679

UVA - 111 History Grading (动态规划:LCS)

题目连接 最长公共子序列 #include #include #include using namespace std; const int MAX_N = 21; int N; int ans[MAX_N], s[MAX_N], d[MAX_N][MAX_N]; int LCS() { memset(d, 0, sizeof(d)); for(int i = 0; i <

NightWind 875
上一篇: uva10148 - Advertisement(区间选点)
下一篇: uva10405 - Longest Common Subsequence(LCS)
flowser
博客等级 码龄11年 37粉丝 119原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值