东南大学2004年第一届逻辑算法大赛初赛解题报告

农夫三拳@seu
                                                                                      drizzlecrj@gmail.com

无意中从硬盘中找到了这个东东,就随手做了一下。这是计算机系大牛一手搞的一场类似ICPC的比赛。初赛的题目还是比较简单的,下面简要做一个说明:

第一题 Simple Addition
         此题是高精度加法, 没什么好说的。
     想要交的可以试试这题http://acm.hdu.edu.cn/showproblem.php?pid=1002 都是大整数加法

第二题      Cards
         这个题目用三个栈递归模拟可以打印所有解。其实这个序列的个数就是组合数学中的Catalan数,也就是
    (2n)! / (n! * n! * (n + 1))
         关于Catalan数目的技术问题可以做做 http://acm.hdu.edu.cn/showproblem.php?pid=1023
         另外一道和本题有点类似的题目是http://acm.zju.edu.cn/show_problem.php?pid=1004

第三题 Back To Dos
 字符串处理,简单题。可以先行把CD给除去,这样就避免了空格问题了。
 类似的题目见http://acm.pku.edu.cn/JudgeOnline/problem?id=1028

第四题 Smith Number
        这个题目不是很难,稍微有点思考的地方就是素数表要存储多大,其实存储到sqrt(n)就可以了。
    可以这么想,质数因子最多只可能有一个数超过sqrt(n)(可以用反证法证明),因此只要不断的用sqrt(n)范围的    素数对n进行试除,最后n要么等于1,要么是一个大于sqrt(n)的素数因子,这个是为什么呢?原因同样可以用反证法    予以证明,首先余下的数要么是1,要么比sqrt(n)大肯定没问题吧!假设余下的因子是合数,那么它的分解质因数一定    是两个大于sqrt(n)的素数,因此矛盾。故最后剩下的一定是素数。
    此题与http://acm.pku.edu.cn/JudgeOnline/problem?id=1142类似。

第五题 Is There Any Prefix ?
        我是直接使用STL的search搞的,其实自己写的话可以构建一棵二叉树来进行模拟
     此题的判断前缀的问题与http://acm.pku.edu.cn/JudgeOnline/problem?id=1056类似。
   
    第六题 Oil Detecting
        此题与http://acm.pku.edu.cn/JudgeOnline/problem?id=1562和
        http://acm.pku.edu.cn/JudgeOnline/problem?id=2386几乎一样,只改了几个符号。
    这个题目可以使用深度优先搜索(dfs)或者广度优先搜索(bfs)解决。

第七题 Mining
        seu的版本换成中文好理解点了,原题英文最后output的几句话很费解。
 见http://acm.pku.edu.cn/JudgeOnline/problem?id=2612 直接模拟就可以搞定了

第八题 Digital Display
        模拟,放在二维的字符数组中弄弄可能稍微简单一些,细心一点控制好格式就可以了。
    这题和http://acm.pku.edu.cn/JudgeOnline/problem?id=1102非常类似,大家可以试试

第九题      Sorting
 这个题目用STL的set可以很简单的搞定。标程用了诡异的做法,将一个数拆成32x+y的形式,然后用数组索引存储x,值存储1<<y

第十题 Recursive Function
        递归转非递归,可以使用record table。
        此题与http://acm.hdu.edu.cn/contests/contest_showproblem.php?pid=1003&cid=46一样。

第十一题    Variable Definition
       模拟,只要将左端是否分配的情况保持与右边一样就可以了。
       和http://acm.stu.edu.cn/cgi-bin/problem?id=3002一样

第十二题    Josephus Permutation
       约瑟夫问题,由于此题仅要求最后一个出圈的人,所以使用约瑟夫问题的数学解法是一个良策(标程使用的是双端链表模拟)。
    有两种思考方式:
     第一种可以这样,假设n个人中循环报数m,第一个出去的人的序号为k,那么剩下的人为
    1 2 3 ... k - 1 k + 1 ... n, 我们将从k+1开始的数映射成1, 则k+2对应2, n对应n - k, 1对应成n - k + 1
     k - 1对应n - 1,那么现在的问题变成了已知n - 1个人进行循环报数m,求出去的人的序号。假设已经求出了n - 1个人循环报数
     下最后一个出去的人的序号x,那么它在n个人中的序号应该为(x + k - 1) % n + 1,其中 k = (m - 1) % n + 1,化简一下就是
    (x + m - 1) % n + 1, 这样就可以通过只剩下一个人出圈序号1不断的向上推导得到结果了。
     第二种可以这样,最后一个出去的人的序号肯定为1,那么它在还剩下两个人时的时候一定是出圈人后面报1的人。同样,在两个人
     时出圈的人k一定是在三个人时出圈的人后报k的人,依次下去,可以推导出上述一样的结论。
     pku上我暂时遇到了两题与Josephus有关的题目。一道和本题一样,http://acm.pku.edu.cn/JudgeOnline/problem?id=2244
     另外一道见http://acm.pku.edu.cn/JudgeOnline/problem?id=1012

试题下载      
我的解决方案
由于数据太大,无法上传,需要的朋友请与我qq联系
281845569

东南大学2004年程序设计第一届初赛解题报告相关推荐

  1. “光庭杯”第五届华中北区程序设计邀请赛 暨 WHU第八届程序设计竞赛(部分解题报告)

    这次做的比较郁闷,比赛的时候老是出这样那样的问题,卡题卡的要死.最终只做出三道,赛后静下心来我和队友一共又做出4道,要是比赛有这种状态我们的排名就好多了. 现在说说题目: 1001(hdu3361): ...

  2. 2014第六届华为创新杯编程大赛初赛解题报告

    还是忍不住想吐槽华为,吐槽华为举办的这个比赛. 第一场是一星比赛,水题.不过比赛为什么在考试系统上?华为不愧是世界500强企业,招聘考试能走到机试的人数应该在百人左右吧.第一次举办如此大规模 的比赛还 ...

  3. NOIP2018初赛 解题报告(C++普及)

    第24届全国青少年信息学奥林匹克联赛初赛 普及组C++语言试题 竞赛时间:2018 年 10 月 13 日 14:30~16:30 选手注意: 1.试题纸共有 7 页,答题纸共有 2 页,满分 100 ...

  4. c程序设计语言 题解,C程序设计语言综合设计》 解题报告

    <C程序设计语言综合设计> 解题报告>由会员分享,可在线阅读,更多相关<C程序设计语言综合设计> 解题报告(16页珍藏版)>请在人人文库网上搜索. 1.程序设计语言 ...

  5. Ural 1001 Reverse Root 解题报告

    题意: 求出每个数的平方根,然后倒序输出.保留四位小数. 思路: 我在Ural的第二道题,我的第一篇ural解题报告,为什么第一道题没有写呢....你们懂的.之所以选择Ural,是因为那上面的题都是原 ...

  6. 武汉工程大学第一届程序设计女生赛(牛客contest 4746)解题报告 Apare_xzc

    武汉工程大学第一届程序设计女生赛解题报告 xzc 2020.3.8 比赛链接:武汉工程大学第一届程序设计女生赛 A. Multiplication (101/861) 分析: 问x平方几次后就会> ...

  7. 中学生python程序设计大赛_贵州民族大学第一届程序设计大赛圆满举办

    原标题:贵州民族大学第一届程序设计大赛圆满举办 为了推动和促进计算机程序设计艺术在校园内的推广与普及,提高同学们的逻辑分析能力.学习编程的兴趣.学生的创造力.团队合作精神以及实际动手能力,特举办贵州民 ...

  8. 2020 年第一届辽宁省大学生程序设计竞赛

    2020 年第一届辽宁省大学生程序设计竞赛 A-组队分配 分析 代码 B-两点距离 分析 代码 C-轮到谁了? 分析 代码 F-最长回文串 分析 代码 G-管管的幸运数字 分析 代码 I-鸽子的整数运 ...

  9. 中南林科大软件协会第一届程序设计大赛作品报告

    软件协会第一届程序设计大赛 作品名称: 中南林业科技大学人员出入校管理系统 作 者: *** 填写日期: 2022.05.26 目  录 第二章 概要设计 第三章 详细设计 第四章 测试报告 第五章 ...

最新文章

  1. 机器学习应用的未来是什么?微型化
  2. Toast的基本用法 吐司打印
  3. ipv6计算_移动云多款产品通过工信部IPv6支持能力技术测评
  4. 聚类 —— DBSCAN
  5. Android 系统(43)----Andropid 基础知识
  6. 苹果禁用FaceTime多人聊天功能:漏洞将很快修复
  7. Git生成ssh密钥
  8. mysql 事件的作用_MySQL 事件
  9. 一个简单的C#委托小例子
  10. 零基础【绘画板绘】SAI仿水墨笔刷教程(干货)
  11. 《善用佳软:高效能人士的软件应用之道》一导读
  12. 三种百度网盘加速器,轻松突破10M/S,总有一款适合你!
  13. 雕虫小技也重要--数据处理中的电子表格技巧
  14. MAC压缩文件 密码 加密ZIP
  15. JAVA设计模式之概述
  16. 一文看懂临界区、互斥锁、同步锁、临界区、信号量、自旋锁等名词!
  17. h264、sps、pps详解
  18. 阿里云技术专家解读 | 行业首创电商搜索模板
  19. Neural Network with Python
  20. jdbc url的配置

热门文章

  1. VTK:几何对象之OpenVROrientedArrow
  2. OpenCV背景扣除Background Subtraction
  3. C语言字符串中最后一个单词的长度的算法(附完整源码)
  4. C++无符号整数的反转位的实现算法(附完整源码)
  5. c++Numerical string sort数字字符串排序的实现算法(附完整源码)
  6. QT的QFileDialog类的使用
  7. mongodb 的使用场景和不适合使用的场景
  8. 使用POI读取excel文件内容
  9. Hibernate三大组成部分
  10. 操作多个表_1_记录集的叠加