![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
蓝桥杯
球王武磊
愿我们穿越阴霾,依然心怀太阳。
展开
-
【阶乘计算】 PAT 7-7 阶乘的非零尾数 求n的阶乘最后一位非零数字
显然,输入n的范围最大为10的7次方,阶乘是一个超级超级巨大巨大的天文数字,千万级别的阶乘应该有上亿位数字,存在文件里估计都得有几百MB。测试得到最后一组样例为n=5001875,k=9,该样例通过程序计算得到输出为511705344(最后k位非零数字) 1250466(末尾0的个数),但是和下面链接的网站给出的计算结果正好在倒数第9位非零尾数有区别。上面链接中给出的代码只能求出非零部分的最后一位,而对于本问题,需要求非零部分的最后K位,在求解方法上需要有所变化。本文主要记录解题过程中遇到的问题。原创 2023-04-06 22:50:08 · 677 阅读 · 1 评论 -
CSP模拟测试 蓝桥杯练习 Playfair密码 模拟
CSP模拟测试 蓝桥杯练习 Playfair密码 模拟【问题描述】一种Playfair密码变种加密方法如下:首先选择一个密钥单词(pair)(字母不重复,且都为小写字母),然后与字母表中其他字母一起填入至一个5X5的正方形中,填入方法如下:1.首先按行填入密钥串。2.然后再按字母序按行填入不在密钥串中的字母。3.由于正方形中只有25个位置,最后剩下的字母不变换。如果密钥为youandme,则该正方形如下:在加密一对字母时,如am,在正方形中找到以这两个字母为顶点的矩形(红色字体):这对字原创 2021-08-11 06:28:09 · 402 阅读 · 2 评论 -
蓝桥杯 BASIC-18 矩形面积交 思维
【蓝桥杯】 BASIC-18 矩形面积交 思维问题描述 平面上有两个矩形,它们的边平行于直角坐标系的X轴或Y轴。对于每个矩形,我们给出它的一对相对顶点的坐标,请你编程算出两个矩形的交的面积。 输入格式 输入仅包含两行,每行描述一个矩形。 在每行中,给出矩形的一对相对顶点的坐标,每个点的坐标都用两个绝对值不超过10^7的实数表示。 输出格式 输出仅包含一个实数,为交的面积,保留到小数后两位。 样例输入1 1 3 32 2 4 4样例输出1.00【解题思路】这原创 2021-03-17 00:32:48 · 301 阅读 · 2 评论 -
蓝桥杯 BASIC-29 高精度加法 Java实现
【蓝桥杯】 BASIC-29 高精度加法 Java实现如果用C++写,需要使用数组模拟大数计算。Java中有BigInteger类,可以直接使用,代码如下。100分代码:import java.util.Scanner;import java.math.BigInteger;public class Main{ public static void main(String[] args) { Scanner input=new Scanner(System.in); BigInteg原创 2021-03-17 00:17:15 · 222 阅读 · 2 评论 -
蓝桥杯 BASIC-28 Huffman树 POJ 3253 Fence Repair
【蓝桥杯】 BASIC-28 Huffman树 ( POJ 3253 Fence Repair )POJ3253的题目背景其实就是哈夫曼树。输入格式 输入的第一行包含一个正整数n(n<=100)。 接下来是n个正整数,表示p0, p1, …, pn-1,每个数不超过1000。 输出格式 输出用这些数构造Huffman树的总费用。 样例输入55 3 8 2 9样例输出59【题目分析】今天做了蓝桥杯官网基础练习里的这道题,题目描述就是Huffman树,大家在数据原创 2021-03-16 22:45:07 · 224 阅读 · 2 评论 -
蓝桥杯 算法训练 安慰奶牛 最小生成树 Kruskal
【蓝桥杯】 算法训练 安慰奶牛 最小生成树问题描述Farmer John变得非常懒,他不想再继续维护供奶牛之间供通行的道路。道路被用来连接N个牧场,牧场被连续地编号为1到N。每一个牧场都是一个奶牛的家。FJ计划除去P条道路中尽可能多的道路,但是还要保持牧场之间 的连通性。你首先要决定那些道路是需要保留的N-1条道路。第j条双向道路连接了牧场Sj和Ej(1 <= Sj <= N; 1 <= Ej <= N; Sj != Ej),而且走完它需要Lj的时间。没有两个牧场是被一条以上的道原创 2021-03-06 01:24:59 · 194 阅读 · 0 评论 -
蓝桥杯 历届试题 大臣的旅费 图论 DFS 链式前向星
【蓝桥杯】 历届试题 大臣的旅费 图论 DFS问题描述很久以前,T王国空前繁荣。为了更好地管理国家,王国修建了大量的快速路,用于连接首都和王国内的各大城市。为节省经费,T国的大臣们经过思考,制定了一套优秀的修建方案,使得任何一个大城市都能从首都直接或者通过其他大城市间接到达。同时,如果不重复经过大城市,从首都到达每个大城市的方案都是唯一的。J是T国重要大臣,他巡查于各大城市之间,体察民情。所以,从一个城市马不停蹄地到另一个城市成了J最常做的事情。他有一个钱袋,用于存放往来城市间的路费。聪明的J发现原创 2021-03-06 01:12:25 · 240 阅读 · 2 评论 -
蓝桥杯 历届试题 买不到的数目 DP 动态规划
【蓝桥杯】 历届试题 买不到的数目问题描述小明开了一家糖果店。他别出心裁:把水果糖包成4颗一包和7颗一包的两种。糖果不能拆包卖。小朋友来买糖的时候,他就用这两种包装来组合。当然有些糖果数目是无法组合出来的,比如要买 10 颗糖。你可以用计算机测试一下,在这种包装情况下,最大不能买到的数量是17。大于17的任何数字都可以用4和7组合出来。本题的要求就是在已知两个包装的数量时,求最大不能组合出的数字。输入格式两个正整数,表示每种包装中糖的颗数(都不多于1000)输出格式一个正整数,表示最大不能原创 2021-03-06 01:01:14 · 152 阅读 · 0 评论 -
蓝桥杯 算法提高 天天向上 DP 动态规划
【蓝桥杯】 算法提高 天天向上 DP 动态规划问题描述 A同学的学习成绩十分不稳定,于是老师对他说:“只要你连续4天成绩有进步,那我就奖励给你一朵小红花。”可是这对于A同学太困难了。于是,老师对他放宽了要求:“只要你有4天成绩是递增的,我就奖励你一朵小红花。”即只要对于第i、j、k、l四天,满足i<j<k<l并且对于成绩wi<wj<wk<wl,那么就可以得到一朵小红花的奖励。现让你求出,A同学可以得到多少朵小红花。 输入格式 第一行一个整数n,表示总共有n原创 2021-03-06 00:57:59 · 334 阅读 · 0 评论 -
蓝桥杯 算法提高 八数码问题 BFS
【蓝桥杯练习】 算法提高 八数码问题输入格式 输入两个3*3表格 第一个为目标表格 第二个为检索表格输出格式 输出步数样例输入1 2 34 5 67 8 01 2 34 5 67 0 8样例输出1经典的搜索问题,使用BFS解决。其中用到了康托(Cantor)展开来判断状态是否重复,学到了一个解决这类问题的新技巧。代码参考:《算法竞赛入门到进阶》满分代码:#include <iostream>#include <cstdio>#inc原创 2021-02-13 02:21:45 · 362 阅读 · 2 评论 -
蓝桥杯 PREV-5 错误票据 stringstream用法
【蓝桥杯真题练习】 PREV-5 错误票据问题描述某涉密单位下发了某种票据,并要在年终全部收回。每张票据有唯一的ID号。全年所有票据的ID号是连续的,但ID的开始数码是随机选定的。因为工作人员疏忽,在录入ID号的时候发生了一处错误,造成了某个ID断号,另外一个ID重号。你的任务是通过编程,找出断号的ID和重号的ID。假设断号不可能发生在最大和最小号。输入格式要求程序首先输入一个整数N(N<100)表示后面数据行数。接着读入N行数据。每行数据长度不等,是用空格分开的若干个(不大于10原创 2021-02-13 02:16:47 · 1572 阅读 · 4 评论 -
进制转换 蓝桥杯 BASIC-12 十六进制转八进制
蓝桥杯练习 BASIC-12 十六进制转八进制问题描述 给定n个十六进制正整数,输出它们对应的八进制数。输入格式 输入的第一行为一个正整数n (1<=n<=10)。 接下来n行,每行一个由 0-9、大写字母A~F组成的字符串,表示要转换的十六进制正整数,每个十六进制数长度不超过100000。输出格式 输出n行,每行为输入对应的八进制正整数。【注意】 输入的十六进制数不会有前导0,比如012A。 输出的八进制数也不能有前导0。样例输入 2 39 123原创 2021-02-01 22:42:04 · 508 阅读 · 2 评论 -
进制转换 蓝桥杯 BASIC-11 十六进制转十进制
蓝桥杯 BASIC-11 十六进制转十进制蓝桥杯的基础练习,复习一下进制转换。此题为十六进制转十进制,直接采用加权法按权展开即可。满分代码:#include <iostream>#include <cstdio>#include <string>#include <cmath>using namespace std;int main(){ string s; cin>>s; int len=s.length(); lo原创 2021-02-01 22:26:36 · 208 阅读 · 2 评论 -
进制转换 蓝桥杯 BASIC-10 十进制转十六进制
蓝桥杯 BASIC-10 十进制转十六进制蓝桥杯的基础练习,复习一下进制转换。此题为十进制转十六进制,比较简单,采用的是基数除法,通过一个栈就能够实现。需要注意考虑数字为0的情况!满分代码:#include <iostream>#include <cstdio>#include <stack>using namespace std;char num[16]={'0','1','2','3','4','5','6','7','8','9','A','B','原创 2021-02-01 22:24:21 · 193 阅读 · 2 评论