算法基础
文章平均质量分 77
fxy_hnu
这个作者很懒,什么都没留下…
展开
-
CCF CSP认证 题解:201412-2 Z字形扫描(Java语言原创)
问题描述 在图像编码的算法中,需要将一个给定的方形矩阵进行Z字形扫描(Zigzag Scan)。给定一个n×n的矩阵,Z字形扫描的过程如下图所示: 对于下面的4×4的矩阵, 1 5 3 9 3 7 5 6 9 4 6 4 7 3 1 3 对其进行Z字形扫描后得到长度为16的序列: 1 5 3 9 7 3 9 5 4 7 3 6 6 4 1 3 请实现一个Z字形扫描的程序,给定一个...原创 2018-03-25 10:57:41 · 294 阅读 · 0 评论 -
BFS广搜求最短路径:《穿越雷区》(Java语言原创)
穿越雷区必须交替地穿越正和负某坦克需要从A区到B区去(A,B区本身是安全区,没有正能量或负能量特征)坦克车只能水平或垂直移动到相邻的区,怎样走才能路径最短?输入:5A + - + -- + - - +- + + + -+ - + - +B + - + -输出:10import java.util.LinkedList;import java.util.Queue;import java.util....原创 2018-03-27 22:11:16 · 444 阅读 · 0 评论 -
CCF CSP认证 题解:201412-4 最优灌溉 Kruskal最小生成树+并查集(Java语言原创)
问题描述 雷雷承包了很多片麦田,为了灌溉这些麦田,雷雷在第一个麦田挖了一口很深的水井,所有的麦田都从这口井来引水灌溉。 为了灌溉,雷雷需要建立一些水渠,以连接水井和麦田,雷雷也可以利用部分麦田作为“中转站”,利用水渠连接不同的麦田,这样只要一片麦田能被灌溉,则与其连接的麦田也能被灌溉。 现在雷雷知道哪些麦田之间可以建设水渠和建设每个水渠所需要的费用(注意不是所有麦田之间都可以建立水渠)。请问...原创 2018-03-25 11:27:29 · 281 阅读 · 0 评论 -
CCF CSP认证 题解:201709-5 除法(Java语言原创)
问题描述 小葱喜欢除法,所以他给了你N个数a1, a2, ⋯, aN,并且希望你执行M次操作,每次操作可能有以下两种: 给你三个数l, r, v,你需要将al, al+1, ⋯, ar之间所有v的倍数除以v。 给你两个数l, r,你需要回答al + al+1 + ⋯ + ar的值是多少。输入格式 第一行两个整数N, M,代表数的个数和操作的次数。 接下来一行N个整数,代表N个数一开始的值...原创 2018-03-25 11:22:57 · 414 阅读 · 0 评论 -
CCF CSP认证 题解:201709-2 公共钥匙盒(Java语言原创)
问题描述 有一个学校的老师共用N个教室,按照规定,所有的钥匙都必须放在公共钥匙盒里,老师不能带钥匙回家。每次老师上课前,都从公共钥匙盒里找到自己上课的教室的钥匙去开门,上完课后,再将钥匙放回到钥匙盒中。 钥匙盒一共有N个挂钩,从左到右排成一排,用来挂N个教室的钥匙。一串钥匙没有固定的悬挂位置,但钥匙上有标识,所以老师们不会弄混钥匙。 每次取钥匙的时候,老师们都会找到自己所需要的钥匙将其取走,...原创 2018-03-25 11:13:34 · 255 阅读 · 0 评论 -
CCF CSP认证 题解:201703-3 Markdown(Java语言原创)
问题描述 Markdown 是一种很流行的轻量级标记语言(lightweight markup language),广泛用于撰写带格式的文档。例如以下这段文本就是用 Markdown 的语法写成的: 这些用 Markdown 写成的文本,尽管本身是纯文本格式,然而读者可以很容易地看出它的文档结构。同时,还有很多工具可以自动把 Markdown 文本转换成 HTML 甚至 Word、PDF 等格...原创 2018-03-25 11:09:49 · 611 阅读 · 0 评论 -
CCF CSP认证 题解:201703-2 学生排队(Java语言原创)
问题描述 体育老师小明要将自己班上的学生按顺序排队。他首先让学生按学号从小到大的顺序排成一排,学号小的排在前面,然后进行多次调整。一次调整小明可能让一位同学出队,向前或者向后移动一段距离后再插入队列。 例如,下面给出了一组移动的例子,例子中学生的人数为8人。 0)初始队列中学生的学号依次为1, 2, 3, 4, 5, 6, 7, 8; 1)第一次调整,命令为“3号同学向后移动2”,表示3号...原创 2018-03-25 11:08:13 · 582 阅读 · 0 评论 -
CCF CSP认证 题解:201604-2 俄罗斯方块(Java语言原创)
问题描述 俄罗斯方块是俄罗斯人阿列克谢·帕基特诺夫发明的一款休闲游戏。 游戏在一个15行10列的方格图上进行,方格图上的每一个格子可能已经放置了方块,或者没有放置方块。每一轮,都会有一个新的由4个小方块组成的板块从方格图的上方落下,玩家可以操作板块左右移动放到合适的位置,当板块中某一个方块的下边缘与方格图上的方块上边缘重合或者达到下边界时,板块不再移动,如果此时方格图的某一行全放满了方块,则该...原创 2018-03-25 11:04:52 · 318 阅读 · 0 评论 -
CCF CSP认证 题解:201403-3 命令行选项(Java语言原创)
问题描述 请你写一个命令行分析程序,用以分析给定的命令行里包含哪些选项。每个命令行由若干个字符串组成,它们之间恰好由一个空格分隔。这些字符串中的第一个为该命令行工具的名字,由小写字母组成,你的程序不用对它进行处理。在工具名字之后可能会包含若干选项,然后可能会包含一 些不是选项的参数。 选项有两类:带参数的选项和不带参数的选项。一个合法的无参数选项的形式是一个减号后面跟单个小写字母,如"-a" ...原创 2018-03-25 11:02:30 · 455 阅读 · 1 评论 -
CCF CSP认证 题解:201403-2 窗口(Java语言原创)
问题描述 在某图形操作系统中,有 N 个窗口,每个窗口都是一个两边与坐标轴分别平行的矩形区域。窗口的边界上的点也属于该窗口。窗口之间有层次的区别,在多于一个窗口重叠的区域里,只会显示位于顶层的窗口里的内容。 当你点击屏幕上一个点的时候,你就选择了处于被点击位置的最顶层窗口,并且这个窗口就会被移到所有窗口的最顶层,而剩余的窗口的层次顺序不变。如果你点击的位置不属于任何窗口,则系统会忽略你这次点击...原创 2018-03-25 11:00:46 · 477 阅读 · 0 评论 -
第十六次CCF CSP认证《24点》python java
python和java各给出一种解法。 python的eval()函数解此题有天然优势。主要需要注意用双斜杠表示除法,保留整数。 a=input(); for i in range(int(a)): b=input().replace("x", "*").replace("/", "//"); if(eval(b)==24): print("Yes") ...原创 2019-03-17 17:26:27 · 2122 阅读 · 3 评论