zoukankan      html  css  js  c++  java
  • 转:字符识别

    字符识别 (IOI'97)

    问题描述 这个题目需要你编写一个字符识别程序。

    具体内容

    每一个假设的字符图像(字符点阵)有20行,每行有20个"0"或"1"的数字。

    FONT.DAT文件中有27个按照下列顺序排列的字符图像:

    □abcdefghijklmnopqrstuvwxyz

    □在这里表示空格符。

    文件IMAGE.DAT包含有一个或者多个被破损的字符图像,一个字符图形可能通过以下几种途径被破损:

    • 至多有一行被复制(复制的行紧接其后)
    • 至多有一行丢失
    • 有些"0"可能变成"1"
    • 有些"1"可能变成"0"

    字符图像不会同时有一行被复制而同时又丢失一行,在测试数据中,任何一个字符图像弄反"0"和"1"的比例不超过30%。

    在行被复制的情况中,复制行和被复制行都可能破损,但破损的情形可能是不同的。

    任务

    用FONT.DAT提供的字体对IMAGE.DAT文件中的一个或者多个字符序列进行识别。

    在一种自己最满意的有关"行"被复制或丢失的假设下,根据实际字符图像和标准字符图像的比较,以"0"和"1"发生错误的总数越少越好为条件来识别给定的字符图像,题中所给的样例字符图像都会被一个好的程序所识别,对于一个被测数据组,有一个唯一的最佳解。

    正确解应该准确使用由输入文件IMAGE.DAT所提供的所有行数。

    输入

    两个输入文件都由整数N(19≤N≤1200)开始,该整数指出下面的行数。

    N
    (digit1)(digit2)(digit3) … (digit20)
    (digit1)(digit2)(digit3) … (digit20)

    每一行的数据都有20个码,码和码之间没有空格。

    文件FONT.DAT描述字体。FONT.DAT总是包含541行。每次FONT.DAT都可能是不同的。

    输出

    你的程序必须生成一个IMAGE.OUT文件。它应该包含一串识别出的字符。它的格式是一行ASCII码。输出结果不应含有任何分隔符,如果你的程序识别不出一个字符,则在相应的位置显示"?"。

    警告:上述输出格式不遵守在规则中规定的在输出的结果中留出空格的规定。

    计分:根据正确识别出的字符的比例确定所得分数。

    示例输入

    Incomplete sample showing the beginning of FONT.DAT (space and 'a').  Sample IMAGE.DAT, showing an 'a' corrupted 
    FONT.DAT  IMAGE.DAT 
    540
    00000000000000000000 
    00000000000000000000 
    00000000000000000000 
    00000000000000000000 
    00000000000000000000 
    00000000000000000000 
    00000000000000000000 
    00000000000000000000 
    00000000000000000000 
    00000000000000000000 
    00000000000000000000 
    00000000000000000000 
    00000000000000000000 
    00000000000000000000 
    00000000000000000000 
    00000000000000000000 
    00000000000000000000 
    00000000000000000000 
    00000000000000000000 
    00000000000000000000 
    00000000000000000000 
    00000000000000000000 
    00000000000000000000 
    00000011100000000000 
    00000111111011000000 
    00001111111001100000 
    00001110001100100000 
    00001100001100010000 
    00001100000100010000 
    00000100000100010000 
    00000010000000110000 
    00000001000001110000 
    00001111111111110000 
    00001111111111110000 
    00001111111111000000 
    00001000000000000000 
    00000000000000000000 
    00000000000000000000 
    00000000000000000000 
    00000000000000000000 
    19 
    00000000000000000000 
    00000000000000000000 
    00000000000000000000 
    00000011100000000000 
    00100111011011000000 
    00001111111001100000 
    00001110001100100000 
    00001100001100010000 
    00001100000100010000 
    00000100000100010000 
    00000010000000110000 
    00001111011111110000 
    00001111111111110000 
    00001111111111000000 
    00001000010000000000 
    00000000000000000000 
    00000000000001000000 
    00000000000000000000 
    00000000000000000000 
    Figure 1a Figure 1b

    示例输出

    IMAGE.OUT Explanation 
    a Recognised the single character 'a' 

    参考解答

  • 相关阅读:
    python批量裁剪图片
    Theano 报错:No suitable SharedVariable constructor could be found. Are you sure all kwargs are supported? We do not support the parameter dtype or type
    清华镜像连接
    ubuntu16.04查看占用GPU的程序
    pycharm报错:ImportError: libcusolver.so.8.0: cannot open shared object file: No such file or directory
    PyMysql的基本操作
    关于爬虫解析页面时的一些有意思的坑
    关于爬虫解析页面时的一些有意思的坑
    python 的一些高级函数
    python 的一些高级函数
  • 原文地址:https://www.cnblogs.com/zhangdongdong/p/2789784.html
Copyright © 2011-2022 走看看