随笔分类 - 算法分析与设计
经典算法,算法乃程序的灵魂所在,假如你掌握了算法中的其中一小点思想,那么你对程序的理解也会上升一个层面,写代码的时候也不会觉得的一头雾水。算法是前人经过数十年甚至几百年才参透的奥秘,你不要企图全部掌握,能知其一二此生便足以。
摘要:题目: 题目描述 本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。 仔细寻找,会发现:在下面的 8 × 8 的方阵中,隐藏着字母序列:LANQIAO。 SLANQIAO ZOEXCCGB MOAYWKHI BCCIPLJQ SLANQIAO RSFWFNYA XIFZVWAL
阅读全文
摘要:题目: 试题 算法提高 计算超阶乘 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 计算1*(1+k)*(1+2*k)*(1+3*k)*...*(1+n*k-k)的末尾有多少个0,最后一位非0位是多少。 输入格式 输入的第一行包含两个整数n, k。 输出格式 输出两行,每行一个整数
阅读全文
摘要:题目: 试题 G: 外卖店优先级时间限制: 1.0s 内存限制: 512.0MB 本题总分:20 分【问题描述】“饱了么”外卖系统中维护着 N 家外卖店,编号 1 ∼ N。每家外卖店都有一个优先级,初始时 (0 时刻) 优先级都为 0。每经过 1 个时间单位,如果外卖店没有订单,则优先级会减少 1,
阅读全文
摘要:题目: 压缩变换小明最近在研究压缩算法。他知道,压缩的时候如果能够使得数值很小,就能通过熵编码得到较高的压缩比。然而,要使数值很小是一个挑战。最近,小明需要压缩一些正整数的序列,这些序列的特点是,后面出现的数字很大可能是刚出现过不久的数字。对于这种特殊的序列,小明准备对序列做一个变换来减小数字的值。
阅读全文
摘要:题目: 试题 E: 迷宫本题总分:15 分【问题描述】下图给出了一个迷宫的平面图,其中标记为 1 的为障碍,标记为 0 的为可以通行的地方。010000000100001001110000迷宫的入口为左上角,出口为右下角,在迷宫中,只能从一个位置走到这个它的上、下、左、右四个方向之一。对于上面的迷宫
阅读全文
摘要:问题: 下图给出了一个迷宫的平面图,其中标记为 1 的为障碍,标记为 0 的为可以通行的地方。010000000100001001110000迷宫的入口为左上角,出口为右下角,在迷宫中,只能从一个位置走到这个它的上、下、左、右四个方向之一。 第一种方案(最短路径):对于上面的迷宫,从入口开始,可以按
阅读全文
摘要:题目: 人物相关性分析 小明正在分析一本小说中的人物相关性。他想知道在小说中 Alice 和 Bob 有多少次同时出现。 更准确的说,小明定义 Alice 和 Bob "同时出现" 的意思是:在小说文本 中 Alice 和 Bob 之间不超过 KKK 个字符。 例如以下文本: This is a s
阅读全文
摘要:题目: 试题 算法训练 绘制地图 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 最近,WYF正准备参观他的点卡工厂。WYF集团的经理氰垃圾需要帮助WYF设计参“观”路线。现在,氰垃圾知道一下几件事情: 1.WYF的点卡工厂构成一颗二叉树。 2.一共有n座工厂。 3.他需要把这颗树
阅读全文
摘要:题目:垒骰子赌圣atm晚年迷恋上了垒骰子,就是把骰子一个垒在另一个上边,不能歪歪扭扭,要垒成方柱体。经过长期观察,atm 发现了稳定骰子的奥秘:有些数字的面贴着会互相排斥!我们先来规范一下骰子:1 的对面是 4,2 的对面是 5,3 的对面是 6。假设有 m 组互斥现象,每组中的那两个数字的面紧贴在
阅读全文
摘要:Java代码: 1 package com.lzp.util; 2 3 /** 4 * @Author LZP 5 * @Date 2021/3/7 22:10 6 * @Version 1.0 7 * 8 * 八皇后问题 9 * 递归求解 10 */ 11 public class EightQu
阅读全文
摘要:Java代码: 1 /** 2 * @Author LZP 3 * @Date 2021/2/28 10:45 4 * @Version 1.0 5 * 6 试题 算法训练 Bit Compressor 7 8 9 资源限制 10 时间限制:1.0s 内存限制:256.0MB 11 问题描述 12
阅读全文
摘要:深度优先搜索:深度优先搜索是一种在开发爬虫早期使用较多的方法。它的目的是要达到被搜索结构的叶结点(即那些不包含任何超链的HTML文件) 。在一个HTML文件中,当一个超链被选择后,被链接的HTML文件将执行深度优先搜索,即在搜索其余的超链结果之前必须先完整地搜索单独的一条链。深度优先搜索沿着HTML
阅读全文
摘要:Java代码 import java.util.Scanner; /** * 堆排序: * 一开始需自底向上堆化,后面每次与顶上元素交换之后,只需要自顶向下堆化即可。 * * @author 14715 * * 从大到小排序 */ public class HeapSort { public sta
阅读全文
摘要:快速幂运算,提高算法效率的绝佳选择 我们首先来了解一下“取模”运算的运算法则:(具体的证明感兴趣的同学可以问度娘) (a + b) % p = (a % p + b % p) % p (1) (a - b) % p = (a % p - b % p ) % p (2) (a * b) % p = (
阅读全文
摘要:介绍 约瑟夫问题(有时也称为约瑟夫斯置换,是一个计算机科学和数学中的问题。在计算机编程的算法中,类似问题又称为约瑟夫环。又称“丢手绢问题”.) 打印所有人死的顺序 C语言代码实现: #include <stdio.h> #include <malloc.h> #include <stdlib.h>
阅读全文
摘要:X星球的高科技实验室中整齐地堆放着某批珍贵金属原料。 每块金属原料的外形、尺寸完全一致,但重量不同。 金属材料被严格地堆放成金字塔形。 7 5 8 7 8 8 9 2 7 2 8 1 4 9 1 8 1 8 8 4 1 7 9 6 1 4 5 4 5 6 5 5 6 9 5 6 5 5 4 7 9
阅读全文
摘要:x星球的居民脾气不太好,但好在他们生气的时候唯一的异常举动是:摔手机。 各大厂商也就纷纷推出各种耐摔型手机。x星球的质监局规定了手机必须经过耐摔测试,并且评定出一个耐摔指数来,之后才允许上市流通。 x星球有很多高耸入云的高塔,刚好可以用来做耐摔测试。塔的每一层高度都是一样的,与地球上稍有不同的是,他
阅读全文
摘要:设i为虚数单位。对于任意正整数n,(2+3i)^n 的实部和虚部都是整数。 求 (2+3i)^123456 等于多少? 即(2+3i)的123456次幂,这个数字很大,要求精确表示。 答案写成 "实部±虚部i" 的形式,实部和虚部都是整数(不能用科学计数法表示),中间任何 地方都不加空格,实部为正时
阅读全文
摘要:标题:方格计数 如图p1.png所示,在二维平面上有无数个1x1的小方格。 我们以某个小方格的一个顶点为圆心画一个半径为1000的圆。 你能计算出这个圆里有多少个完整的小方格吗? 通过观察,我们可以发现,其实半径r和完整小方格个数n有一个函数关系,即 n = (2(r - 1))^2 分析: 其实圆
阅读全文