分类:编程

27 篇文章

中国石油大学OJ – 一箭多雕
题目 小明喜欢武侠小说,在武侠世界里,他不但练就了一箭双雕的能力,还可以一箭多雕。 现在所有雕在一条直线上从左到右排列,但是他们的高度不同。而小明想要把他们都射下来。小明使用的是一种特殊的弓箭,他可以将弓箭射到任意一个高度为H的雕,当射中一个高度为H的雕后,弓箭的高度会下降到H-1,再从左到右飞行,直到射到高度为H-1的大雕,再降低1的高度,直到飞…
中国石油大学OJ – 排队
题目 乐乐的 n 位朋友都拥有唯一的一个编号,编号分别为 1 至 n。某天按到达的时间顺序又给了一个顺序号,此时发现顺序号与多数的朋友编号不一致。乐乐想:如果俩俩交换顺序号,使得每位朋友的编号与顺序号相同,则最少需要交换几次? 输入: 包含二行: 第一行只有一个正整数:n,表示乐乐朋友的人数 第二行共有 n 个正整数,分别表示按顺序到达的朋友编号 …
中国石油大学OJ – 调研
题目 有一直线型展台共有 m 个展位,按该展位离入口处的远近顺序编号,其编号分别为 1、2、……、m;其中只有 n 个是展示新技术的展位,最后一个展示新技术的展位编号为 m。 这次调研分两个小组进行,每个小组最多调研连续的 10 个展位,且每个小组调研的展位至少相隔 2 个展位。 乐乐希望你设计一种安排方案,使领导调研更多的展示新技术的展位。 输入…
快速排序和归并排序
最近在补习算法,学一学基础的算法知识 快速排序 快速排序的思路就是从当前的这堆数字里随便挑一个数字x,现在把这个x放在中间,通过某种变化,使得左面<=x,右面>=x能够成立,然后把左右两边也这样排序,递归即可得到最终解。 可以看出算法的步骤如下: 选一个分界数字x(咋选都可以,选第一个数字或者最后一个数字都行,一般选(l+r)/2中值数…
初学KMP
很久之前我一直看不懂KMP算法,看了一个视频里dalao的讲解,我还是没看懂。。。。。。 然后在暑假的某一天,睡觉的时候突然明白了一点点我以前不会的KMP算法,于是赶紧记下来。 如果我希望得知某一个字符串 p 在某一个字符串 s 中是否出现过,或者出现过几次,或者在哪里出现过,那么应该怎么办呢? BF算法 我上来一拍脑门就能想到一种暴力算法,也就是…
UVa202 循环小数
题目 题目 输入多组数据,每组输入整数a和b,(0<=a<=3000, 1<=b<=3000),输出a/b的循环小数表示以及循环字节长度。 样例输入 76 25 5 43 1 397 样例输出 76/25 = 3.04(0) 1 = number of digits in repeating cycle (空行) 5/43 …
学校2020年第一届新生赛 反思&总结
26 26*26 702 今年我们学校办了一场声势浩大的程序设计新生赛,吸引了学校一百三十多号新生前来参赛,可喜可贺。 作为弱鸡,为了第一时间围观dalao的风范,切身体会被dalao吊打的感觉,我上周日八点半就起了床,饭也没吃脸也没洗,打开浏览器就开始等待比赛开始。 九点的钟声准时敲响,比赛准时开始。 出了啥题 学长老早之前就说了,这次新生赛题目…
递归求全排列
如果现在有六个数字1 2 3 4 5 6,请列举出其所有的排列可能。 从n个不同元素中任取m(m≤n)个元素,按照一定的顺序排列起来,叫做从n个不同元素中取出m个元素的一个排列。当m=n时所有的排列情况叫全排列。显然,这是一个全排列问题。 全排列问题是递归的代表题型。 递归思想 如果我想对从1到6的六个数字做全排列,我可以: 首先,我固定第一个数字…
洛谷P5732 杨辉三角
给出 n(n≤20),输出杨辉三角的前 n 行。 输入样例 6 输出样例 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 思路 规律就是(x,y)处的数字应该等于(x,y-1)和(x-1,y-1)两处数字的和。比如第三行第二个数字2是第二行的两个1的和。 开一个二维数组,不要第0行和0列,初始就给0,初始化指…
洛谷P5731 蛇形方阵
给出一个不大于 9 的正整数 n,输出 n×n 的蛇形方阵。 从左上角填上 1 开始,顺时针方向依次填入数字,如同样例所示。注意每个数字有都会占用 3 个字符,前面使用空格补齐。 输入样例 4 输出样例 1 2 3 4 12 13 14 5 11 16 15 6 10 9 8 7 思路 这一个方阵可以看做一个二维数组,可以利用二维数组来储存各个位置…