竞赛总览

CSDN编程竞赛十四期:比赛详情 (csdn.net)

本次竞赛题目难度适中,并且题目的解法(思路)也比较多,很适合新人学习。

竞赛题解

题目1、字符串全排列

对K个不同字符的全排列组成的数组,面试官从中随机拿走了一个,剩下的数组作为输入,请帮忙找出这个被拿走的字符串?比如[“ABC”, “ACB”, “BAC”, “CAB”, “CBA”],返回“BCA”。

注意到全排列一定是偶数,因此如果某个字符出现奇数个,说明它就是缺少的那一个。

然后的处理过程就比较随意了,怎么写都可以。这里推荐用异或的写法,因为异或有一个特性:操作一次可以得到结果,操作两次相互抵消(相当于还原)。

如果是不缺少的字符,对应位置一定会异或偶数次。

注意一下只有两个字符的情况,这时异或会卡出bug,无法得到正确答案。此时单独处理即可。

题目2、小Q新式棋盘

已知棋盘大小为n*n。每个位置都有自己的权值q。该棋盘中有多少对行权值和小于列权值和。

经典的前缀和问题,可以一维前缀和,也可以直接二维前缀和。

代码就不放了,感兴趣可以去网上找一些前缀和算法的教程,这个资料是非常多的。

题目3、因数-数字游戏

小Q的柠檬汁做完了。掏出了自己的数字卡牌。想要和别人做数字游戏。可是她又不想要输掉游戏。她制定好规则,每次每个人只能把这个牌换成它的因子的某个牌。但是这个因子不能是1或者整数本身。现在给出整数n。两个人开始做游戏,谁无法再给出因子牌则该人胜利,如果该整数无因子牌直接视为先手胜利,请判断先手在最优策略状态下能否必胜。

经典的博弈论问题。解决这种双人游戏求解最优策略的问题,和解递归题的思路有点像。

只考虑轮到自己的情况即可。如果可以把局面推给对手(轮到对手时),要假设自己就是对手,考虑最优方案。也就是说每次都认为是轮到自己,然后找到最优的策略。否则绕一会就晕了。

首先,要找到直接能获胜的状态。这道题目描述的是,如果整数无因子,视为先手胜利。

所以,如果某个数不是质数,那么它有一个因子时,只能选择这个因子,此时后手胜利。

如果有多个因子,想办法把它变成只有一个因子的数,留给对手,然后对手只能被迫选择该因子,此时先手胜利。

这时候这题就解决了。

还有一些经典的博弈题目,比如取石子问题(有很多变种)。

这里推荐一个经典题目,两人进行游戏,从一堆石子取1到3个,取走最后1个石子的玩家胜利。

手游“我的侠客”的迷宫里就有人机和你玩这个游戏,如果和电脑玩的次数多了,你会发现无论你怎么取,对方总是保持和你相反的方法(玩家取1,电脑取3;玩家取2,电脑取2;玩家取3,电脑取1)。

还是从直接获胜的状态考虑,只有1到3个石子时候获胜。

否则,就要让石子数量能剩下一个,也就是说4个石子为一轮,这样对手最多取3个,自己就取走1个。如果对手取1个,自己就取走最后3个。

所以最优策略一定是留下4N的棋子给对手。

其它博弈题做法也都类似,找到能直接获胜状态,再想办法让其它状态能变为直接获胜状态即可。

题目4、编码

编码工作常被运用于密文或压缩传输。这里我们用一种最简单的编码方式进行编码:把一些有规律的单词编成数字。字母表中共有26个字母{a, b, …, z},这些特殊的单词长度不超过6且字母按升序排列。把所有这样的长度相同的单词放在一起,按字典顺序排列(a...z, ab...az, bc...bz....)一个单词的编码就对应着它在整个序列中的位置。你的任务就是对于所给的单词,求出它的编码。

洛谷原题。

使用动态规划,计算出每个长度下,不同字母开头,符合条件的字符串数量。

然后将题目问的那个字符串之前的字符串数量都加起来,就可以得到答案了。

CSDN 编程竞赛十四期题解相关推荐

  1. CSDN 编程竞赛十九期题解

    竞赛总览 CSDN 编程竞赛十九期:比赛详情 (csdn.net) 竞赛题解 题目1.幼稚班作业 幼稚园终于又有新的作业了.老师安排同学用发给同学的4根木棒拼接成一个三角形.当然按照正常的逻辑,如果不 ...

  2. CSDN 编程竞赛十八期题解

    竞赛总览 CSDN 编程竞赛十八期:比赛详情 (csdn.net) 感觉这次竞赛的题目有点偏数学了,尤其是第三道题,输入+输出就完事了,答案是一个数学公式. 竞赛题解 题目1.单链表排序 单链表的节点 ...

  3. CSDN 编程竞赛二十七期题解

    竞赛总览 CSDN 编程竞赛二十七期:比赛详情 (csdn.net) 四道题都不难,本来十分钟内就可以解决,但是这次竞赛bug比较多,体验不是很好. 竞赛题解 题目1.幸运数字 小艺定义一个幸运数字的 ...

  4. CSDN编程竞赛第32期题解

    CSDN编程竞赛报名地址:https://edu.csdn.net/contest/detail/46 1.  题目名称:传奇霸业 传奇霸业,是兄弟就来干.小春(HP == a)遇到了一只黄金哥布林( ...

  5. CSDN编程竞赛第六期题解

    CSDN编程竞赛报名地址:https://edu.csdn.net/contest/detail/16 (请不要删掉此地址) 1. 题目名称:严查枪火 X国最近开始严管枪火. 像是"ak&q ...

  6. CSDN编程竞赛第六期

    CSDN编程竞赛报名地址:https://edu.csdn.net/contest/detail/16 本次是我第二次参加CSDN举办的编程竞赛,这一次的题相比上一次简单不少,对编程新人或者刚开始学习 ...

  7. CSDN 编程竞赛二十四期题解

    竞赛总览 CSDN 编程竞赛二十四期:比赛详情 (csdn.net) 本次竞赛感觉打模板的题变少了,而且多了很多可以集思广益的题目,参赛体验很好. 竞赛题解 题目1.计数问题 试计算在区间1到n的所有 ...

  8. CSDN编程竞赛第6期-参赛心得以及个人题解

    CSDN编程竞赛报名地址:https://edu.csdn.net/contest/detail/16 (请不要删掉此地址) 前言/背景 这是第1次参加CSDN的在线编程竞赛,虽然也拿到满分了,但是输 ...

  9. 【CSDN编程竞赛第六期】python详解

    CSDN编程竞赛报名地址:https://edu.csdn.net/contest/detail/16 目录 目录 前言/背景 解题思路 1.严查枪火 2.鬼画符门 3.收件邮箱 4.最长递增的区间长 ...

最新文章

  1. Android onclicklistener中使用外部类变量时为什么需要final修饰【转】
  2. lsb_release查看当前系统的发行版信息
  3. SpringBoot中oauth2.0学习之服务端配置快速上手
  4. 草料二维码 批量生成二维码
  5. 大版本号跨越,AIDA64更新6.0版本:更新测试,支持Zen 2架构
  6. java生成顺丰电子面单,顺丰拼多多电子面单设置教程
  7. 火星坐标系、WGS84坐标系、百度坐标系和Web墨卡托坐标系相互转换(基于Python实现)
  8. PDF怎么提取图片,这三个方法你肯定不知道
  9. 雷电模拟器使用adb命令(采坑)
  10. oracle 删掉同义词,【oracle删除同义词】作文写作问答 - 归教作文网
  11. iOS xcode 8 注释快捷键
  12. 常用算法:问题求解与优化
  13. 常见的几种隐藏文件的方法
  14. c语言点亮共阴极数码管,课程设计-基于单片机的共阴极数码管显示电路.doc
  15. winmerge多个文件夹生成html,功能强大的文件、文件夹比对工具-WinMerge使用教程
  16. 手机QQ浏览器的HTML管理器,手机qq浏览器中文件管理器有哪些功能
  17. 计算机显示器有几个接口,电脑显示器的接口有几种?有哪些区别又要如何挑选呢?长知识了!...
  18. 怎样选择ADC芯片?
  19. 多核cpu的缓存一致性
  20. SQL Server 沿用上一日的数据

热门文章

  1. DVD压缩碟简单制作
  2. android mkdir命令,cat命令,adb命令,am命令,ls命令
  3. 飞机订票系统的模拟(C语言实现)
  4. 人工智能+医疗与生命科学行业研究报告
  5. 基于matlab的costas锁相环仿真
  6. Latex 字符集大全
  7. 这五个编程谬论值得大家注意
  8. 提取所有mtk机型的线刷包
  9. 微信深夜大改版,我看到了新的机会
  10. LEX/FLEX词法分析器