• 一道在输入上有坑点的LCS


    原题连接


    http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=114&page=show_problem&problem=47

    Background

    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 receive full credit, but how should partial credit be awarded to students who incorrectly rank one or more of the historical events?

    Some possibilities for partial credit include:

    1. 1 point for each event whose rank matches its correct rank
    2. 1 point for each event in the longest (not necessarily contiguous) sequence of events which are in the correct order relative to each other.

    For example, if four events are correctly ordered 1 2 3 4 then the order 1 3 2 4 would receive a score of 2 using the first method (events 1 and 4 are correctly ranked) and a score of 3 using the second method (event sequences 1 2 4 and 1 3 4 are both in the correct order relative to each other).

    In this problem you are asked to write a program to score such questions using the second method.

    The Problem

    Given the correct chronological order of n events tex2html_wrap_inline34 as tex2html_wrap_inline36 where tex2html_wrap_inline38 denotes the ranking of eventi in the correct chronological order and a sequence of student responses tex2html_wrap_inline42 where tex2html_wrap_inline44 denotes the chronological rank given by the student to event i; determine the length of the longest (not necessarily contiguous) sequence of events in the student responses that are in the correct chronological order relative to each other.

    The Input

    The first line of the input will consist of one integer n indicating the number of events with tex2html_wrap_inline50 . The second line will contain n integers, indicating the correct chronological order of n events. The remaining lines will each consist of nintegers with each line representing a student's chronological ordering of the n events. All lines will contain n numbers in the range tex2html_wrap_inline60 , with each number appearing exactly once per line, and with each number separated from other numbers on the same line by one or more spaces.

    The Output

    For each student ranking of events your program should print the score for that ranking. There should be one line of output for each student ranking.

    Sample Input 1

    4
    4 2 3 1
    1 3 2 4
    3 2 1 4
    2 3 4 1

    Sample Output 1

    1
    2
    3

    Sample Input 2

    10
    3 1 2 4 9 5 10 6 8 7
    1 2 3 4 5 6 7 8 9 10
    4 7 2 3 10 6 9 1 5 8
    3 1 2 4 9 5 10 6 8 7
    2 10 1 3 8 4 9 5 7 6
    

    Sample Output 2

    6
    5
    10
    9

    【题目大意】

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

    反正题目我是没看懂,谷歌翻译了一下午都是懵的,然后直接搜题解写博客的时候就把解释照搬了大佬的

    https://blog.csdn.net/shuangde800/article/details/7880532



    题目的坑点就在于翻译软件都翻不出来准确的意思。。。
    举个栗子
    4
    4 2 3 1
    1 3 2 4
    3 2 1 4
    2 3 4 1
    第一个样例的第一行其实是指第一个事件在第四个发生,第二个事件在第二个发生
    并不是直接输入数组进行字符串匹配= =
    除了输入之外,其实就是一个LCS的板子,我按照平常的LCS的思路写样例都过不了23333
  • 相关阅读:
    for循环里面不要进行remove操作,for循环里remove元素后,list的下标会减小,导致遍历不完全
    elasticsearch,java api, transport Client, 查询时索引库可以用通配符*和删除接口不能用
    (一)WebPack4.0 从零开始
    合并代码 dev 到 master
    vscode 终端无法输入问题 看这个就行了
    node 学习笔记:一、 nvm 安装管理Node版本
    常见的对象创建模式
    深入理解闭包
    sort对数组排序
    图片压缩
  • 原文地址:https://www.cnblogs.com/xly1029/p/9430822.html
Copyright © 2020-2023  润新知