uva111 - History Grading(历史考试)

2023-11-20 19:38

本文主要是介绍uva111 - History Grading(历史考试),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

这个题目前知道两个思路,(最大上升序列)和(最长公共自序列)

我首先想到的是最大上升序列。但是由于思路不清楚,代码没能立即写出来

思路:

读取并存储第一个字符串,这个字符串交代了每个事件发生的时序,如a[4]  = 1表示事件4在第1个时间发生了、

接写来就是读取需要处理的字符串了。每个字符串表示事件事实发生的时序数列,

我们先把b转化成事件发生顺序,即把每个时序发生的放到对应位置上

然后再把每个时间换成a中对应的时序,求最大上升序列。

如果是1,2,3……就说明时序完全正确

代码如下:

#include <cstdio>
int n, s[25], a[25], f[25];
int solve()
{int ans, max = 0;for(int i = n; i >= 1; i--){ans = 0;for(int j = i+1; j <= n; j++){if(a[i]<a[j]) ans = ans<f[j]?f[j]:ans;}f[i] = ans+1;max = max<f[i]?f[i]:max;}return max;
}
int main ()
{int tt;scanf("%d",&n);for(int i = 1; i <= n; i++) { scanf("%d",&tt); s[i] = tt; }while(1){for(int i = 1; i <= n; i++) {if(scanf("%d",&tt)==EOF) return 0; a[tt] = s[i];}//for(int i = 1; i <= n; i++) printf("%d ",a[i]);printf("\n");printf("%d\n",solve());}return 0;
}
最长公共自序列

思路:

用m,n表示a,b串的位置

用f[m][n]表示a串前m个字符组成的子串和b串前n子串比较得到的最长子序列的长度

我们只需按照以下规则来走就好了

1:if(a[m]==a[n]) f[m][n] = f[m-1][n-1]+1;

2:else f[m][n] = max(f[m][n-1],f[m-1][n]);

代码如下:

#include <cstdio>
#include <cstring>
#define max(a,b) a>b?a:b
int n, b[25], a[25], f[25][25];
int solve()
{memset(f,0,sizeof(f));int ans, max = 0;for(int i = 1; i <= n; i++){for(int j = 1; j <= n; j++){if(a[i]==b[j]) f[i][j] = f[i-1][j-1]+1;else f[i][j] = max(f[i][j-1],f[i-1][j]);}}return f[n][n];
}
int main ()
{int tt;scanf("%d",&n);for(int i = 1; i <= n; i++) { scanf("%d",&tt); a[tt] = i; }while(1){for(int i = 1; i <= n; i++) {if(scanf("%d",&tt)==EOF) return 0; b[tt] = i;}printf("%d\n",solve());}return 0;
}


这篇关于uva111 - History Grading(历史考试)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/396951

相关文章

2024年流动式起重机司机证模拟考试题库及流动式起重机司机理论考试试题

题库来源:安全生产模拟考试一点通公众号小程序 2024年流动式起重机司机证模拟考试题库及流动式起重机司机理论考试试题是由安全生产模拟考试一点通提供,流动式起重机司机证模拟考试题库是根据流动式起重机司机最新版教材,流动式起重机司机大纲整理而成(含2024年流动式起重机司机证模拟考试题库及流动式起重机司机理论考试试题参考答案和部分工种参考解析),掌握本资料和学校方法,考试容易。流动式起重机司机考试技

hdu 2093 考试排名(sscanf)

模拟题。 直接从教程里拉解析。 因为表格里的数据格式不统一。有时候有"()",有时候又没有。而它也不会给我们提示。 这种情况下,就只能它它们统一看作字符串来处理了。现在就请出我们的主角sscanf()! sscanf 语法: #include int sscanf( const char *buffer, const char *format, ... ); 函数sscanf()和

软考系统规划与管理师考试证书含金量高吗?

2024年软考系统规划与管理师考试报名时间节点: 报名时间:2024年上半年软考将于3月中旬陆续开始报名 考试时间:上半年5月25日到28日,下半年11月9日到12日 分数线:所有科目成绩均须达到45分以上(包括45分)方可通过考试 成绩查询:可在“中国计算机技术职业资格网”上查询软考成绩 出成绩时间:预计在11月左右 证书领取时间:一般在考试成绩公布后3~4个月,各地领取时间有所不同

系统架构师考试学习笔记第三篇——架构设计高级知识(20)通信系统架构设计理论与实践

本章知识考点:         第20课时主要学习通信系统架构设计的理论和工作中的实践。根据新版考试大纲,本课时知识点会涉及案例分析题(25分),而在历年考试中,案例题对该部分内容的考查并不多,虽在综合知识选择题目中经常考查,但分值也不高。本课时内容侧重于对知识点的记忆和理解,按照以往的出题规律,通信系统架构设计基础知识点多来源于教材内的基础网络设备、网络架构和教材外最新时事热点技术。本课时知识

查看提交历史 —— Git 学习笔记 11

查看提交历史 查看提交历史 不带任何选项的git log-p选项--stat 选项--pretty=oneline选项--pretty=format选项git log常用选项列表参考资料 在提交了若干更新,又或者克隆了某个项目之后,你也许想回顾下提交历史。 完成这个任务最简单而又有效的 工具是 git log 命令。 接下来的例子会用一个用于演示的 simplegit

从希腊神话到好莱坞大片,人工智能的七大历史时期值得铭记

本文选自historyextra,机器之心编译出品,参与成员:Angulia、小樱、柒柒、孟婷 你可能听过「技术奇点」,即本世纪某个阶段将出现超级智能,那时,技术将会以人类难以想象的速度飞速发展。同样,黑洞也是一个奇点,在其上任何物理定律都不适用;因此,技术奇点也是超越未来理解范围的一点。 然而,在我们到达那个奇点之前(假设我们能到达),还存在另一个极大的不连续问题,我将它称之

华为OD机试真题-学生方阵-2024年OD统一考试(E卷)

题目描述 学校组织活动,将学生排成一个矩形方阵。 请在矩形方阵中找到最大的位置相连的男生数量。这个相连位置在一个直线上,方向可以是水平的,垂直的,成对角线的或者呈反对角线的。 注:学生个数不会超过10000 输入描述 输入的第一行为矩阵的行数和列数, 接下来的 n行为矩阵元素,元素间用""分隔。 输出描述 输出一个整数,表示矩阵中最长的位

软考(计算机技术与软件专业技术资格(水平)考试)

天行健,君子以自强不息;地势坤,君子以厚德载物。 每个人都有惰性,但不断学习是好好生活的根本,共勉! 文章均为学习整理笔记,分享记录为主,如有错误请指正,共同学习进步。 月下飞天镜,云生结海楼。 ——《渡荆门送别》 信息系统项目管理师备考专栏 软考全称:计算机技术与软件专业技术资格(水平)考试 官网直达:中国计算机技术职业资格网 文章目录 软考介绍1.

2024年【防爆电气】考试题库及防爆电气复审模拟考试

题库来源:安全生产模拟考试一点通公众号小程序 防爆电气考试题库根据新防爆电气考试大纲要求,安全生产模拟考试一点通将防爆电气模拟考试试题进行汇编,组成一套防爆电气全真模拟考试试题,学员可通过防爆电气复审模拟考试全真模拟,进行防爆电气自测。 1、【单选题】Exib级的本安设备可连接到()危险场所。(  C  ) A、0、1区 B、0、2区 C、1、2区 2、【单选题】充油型电气设备

【leetcode详解】考试的最大困扰度(滑动窗口典例)

实战总结: sum += answerKey[right] == c; 经典操作,将判断语句转化为0, 1接收来计数//大问题分解: 对'T'还是'F'做修改, 传参为c//滑动窗口: 遍历, 维护left& right指向 及 c的个数, 更新不知从何下手写代码时:考虑先写好第一次的,然后以此为基础补充代码以适后续情况 题面: 解题感受: 思路总体好想, 实现略有挑战。 思路分析: