
算法竞赛入门
Charming Boy
苟有恒,何必三更眠五更起;
最无益,莫过一日曝十日寒。
展开
-
小球下落(二叉树编号)
有一颗二叉树,最大深度为D,且所有叶子的深度都相同,所有结点从上到下从左到右编号为1,2,3,…,2 ^ D - 1.在结点1处放一个小球,它会往下落。每个内结点上都有一个开关,初始全部关闭,当每次有小球落到一个开关上时,状态都会改变。当小球到达一个内结点时,如果该结点上的开关关闭,则往左走,否则往右走,直到走到叶子结点。 ,...原创 2020-03-06 13:48:07 · 618 阅读 · 0 评论 -
抽屉原理(鸽巢原理)
鸽巢原理,也叫抽屉原理,内容很简单,n + 1只鸽子飞进了n个鸽巢,则至少有一个鸽巢有两个鸽子。原理是基本的组合原理,但能解决很多有趣的问题,得到有趣的结论,例如:在1500人中,至少5人生日相同;n个人相互握手,一定有两人握手次数相同;盒子里有10只黑袜子、12只蓝袜子,假设只能拿一次,只要3只就可以拿到相同颜色的袜子。例题吃糖果Problem DescriptionHOHO,终于从...原创 2020-02-29 23:09:24 · 1283 阅读 · 0 评论 -
用数组实现字典树
文章目录Trie字符串统计HUD1251 统计难题若要在n个字符串中查找某个字符串,如果使用暴力方法就需要逐个匹配字符串,复杂度是O(n * m),m是字符串平均长度。还有一种比较快的方法就是字典树,像查单词那样,一次找一个字母,查找任意单词,复杂度为O(m),m是查询或插入字符串的长度。字典树的基本性质:根结点不包含字符,其余每结点都有一个字符从根结点到这一路径末尾的所有点连起来就是该...原创 2020-02-26 19:27:37 · 1893 阅读 · 5 评论 -
竖式问题
文章目录竖式乘法竖式除法竖式乘法竖式问题。找出所有形如 abc∗de (三位数乘以两位数)的算式,使得在完整的竖式中,所有数字都属于一个特定的数字集合。输入数字集合(相邻数字之间没有空格),输出所有竖式。每个竖式前应有编号,之后应有一个空行。最后输出解的总数。具体格式见样例输出(为了便于观察,竖式中的空格改用小数点显示,但所写程序中应该输出空格,而非小数点)。样例输入:2357样例...原创 2020-02-22 21:39:55 · 591 阅读 · 0 评论 -
开灯问题
开灯问题:有n盏灯,编号为1-n。第1个人把所有的灯都打开,第2个人按下所有编号为2的倍数的开关(这些灯将被关掉),第3个人按下所有编号为3的倍数的开关(其中关掉的灯将被打开,开着的灯将被关掉),以此类推,一共有k个人,问最后有哪些等开着?输入n和k,输出开着的灯的编号。k<<n<<100.**这是一个数组的简单应用。C语言:#include<stdi...原创 2020-02-22 16:39:51 · 1783 阅读 · 2 评论 -
蛇形填数
蛇形填数在n×n方阵里填入1,2,3,…,n*n,要求填成蛇形。例如,n=4时方阵为:10 11 12 1 9 16 13 2 8 15 14 3 7 6 5 4这道题是二维数组的应用,以n = 4 为例,从1开始依次填写,开始x = 0, y = n - 1,运动轨迹为:三下、三左、三上、两右、两下、左、上。走到不能填就拐弯,刚开始把所有各自初始化为0,比较容易判断。...原创 2020-02-22 16:39:11 · 2448 阅读 · 0 评论