
算法
小周百宝箱~
一个编程宅男
展开
-
从到杨辉三角组合数
今天,我在网上冲浪时,意外发现了杨辉三角和组合数的联系。我们先给出杨辉三角!然后,你会发现C(I,J)=f[i][j]不信我们可以写个代码证明一下!#include<bits/stdc++.h>using namespace std;long long C(long long a,long long b){ long long ji,ji1; ji=ji1=1; for(int i=a;i>=a-b+1;i--) { ji*=i; } for(int i=1原创 2021-04-29 13:06:33 · 192 阅读 · 0 评论 -
石头剪刀布--蓝桥杯大赛青少年创意编程C++高级组模拟题
石头剪刀布Description放假期间,小蓝与电脑对垒,玩起了一款经典的游戏: “石头剪刀布” 。游戏规则想必大家已经非常熟悉了:两边一样则为平局,否则石头胜于剪刀;剪刀胜于布;布胜于石头。小蓝与电脑的对垒一共有 n 个回合,平局或败局得分为 0;胜局得分取决于小蓝出手的阵容, 剪刀、石头、布各有不同的分值:出手“石头” 赢的话得 r 点分值;出手“剪刀” 赢的话得 s 点分值;出手“布” 赢的话得 c 点分值;但是,在第 i 回合中,小蓝不能使用在第( i-k) 个回合中使用的阵容。 (在前原创 2021-04-29 12:46:05 · 1742 阅读 · 0 评论 -
查找路径-蓝桥杯2020Stema8月第一场
查找路径Description查找路径。有一张 m×n 个小方格的地图,一个机器人位于地图的左上角(如图标记为Start 的地方),它每步只能向右或者向下移动一格,如果走到右下角的终点(如图标记为 Finish 的地方),有多少种不同的方法?例如,一个 3×2 的地图,行走的方法数是 3 种,分别是:右 -> 右 -> 下右 -> 下 -> 右下 -> 右 -> 右Input两个整数 m(m<=100)和 n(n<=100),代表原创 2021-04-29 12:39:33 · 928 阅读 · 0 评论 -
二进制小数
二进制小数Description在十进制和二进制的转换中,不仅仅有整数部分的转换也有小数部分的转换。只不过,转换的方法不同,整数转换是除二取余再将所有余数倒置。而小数部分转换,是将10进制的小数部分不断乘2取整数部分完成的。但,很多情况下,转换后,小数部分是不能够被精确转换的,这就要精确到第多少位。请编写程序,将输入文件中的实数转换成二进制,并显示小数点后指定位上的数值。Input有一个十进制实数n和一个整数mOutput只有一个一位数整数。表示实数n转换成二进制后,小数点后第m位上的整数。S原创 2021-01-04 21:01:54 · 749 阅读 · 0 评论 -
股票问题
股票问题Description有个姓胡的师傅,工作之余喜欢炒股,而且还小有暂获。胡师傅通过长期的观察,发现了股票有点小规律,他把自己发现的规律叫做“波浪理论”,通俗地说,股票是一波一波好像大海里的波浪一样的,有涨有跌,跌跌涨涨的,每一波的涨幅和跌幅也有不同,在这里我们规定一个波段指的是连续涨或者连续跌,如果连续两天出现大盘指数一样时,可以算涨(在涨的波段内算涨),也可以算跌(在跌的波段内算跌),胡师傅认为刻画股市是不是“牛”,要看连续涨的天数和波段涨幅的乘积的大小,他把这个大小的值戏称为股市的风向标,请原创 2020-08-14 17:22:11 · 252 阅读 · 0 评论 -
图的连通性问题-DFS
图的连通性问题-DFSDescription图论中有一个基本的问题,那就是一个无向图的连通性判别问题,今天我们就来讨论这个问题,我们知道,在计算机中一张图可以有两种表示方法,一是邻接矩阵二是邻接表,其中的邻接矩阵表示方法,我们已经在课堂上介绍最小生成树问题时讨论过,今天我们就来讨论用邻接表表示的图的连通性问题。要求用DFS方法求解。Input本问题有多组测试数据,每组测试数据有两部分,第一部分只有一行,是两个正整数,分别表示图的节点数N(节点编号从1到N,1<=N<=100)和图的边数E原创 2020-08-14 16:29:24 · 697 阅读 · 0 评论 -
图的连通性问题-BFS
图的连通性问题-BFSDescription图论中有一个基本的问题,那就是一个无向图的连通性判别问题,今天我们就来讨论这个问题,我们知道,在计算机中一张图可以有两种表示方法,一是邻接矩阵二是邻接表,其中的邻接矩阵表示方法,我们已经在课堂上介绍最小生成树问题时讨论过,今天我们就来讨论用邻接表表示的图的连通性问题。要求用BFS方法求解。Input本问题有多组测试数据,每组测试数据有两部分,第一部分只有一行,是两个正整数,分别表示图的节点数N(节点编号从1到N,1<=N<=100)和图的边数E原创 2020-08-14 16:28:27 · 495 阅读 · 0 评论 -
图的连通性问题-并查集
图的连通性问题-并查集Description图论中有一个基本的问题,那就是一个无向图的连通性判别问题,今天我们就来讨论这个问题,我们知道,在计算机中一张图可以有两种表示方法,一是邻接矩阵二是邻接表,其中的邻接矩阵表示方法,我们已经在课堂上介绍最小生成树问题时讨论过,今天我们就来讨论用邻接表表示的图的连通性问题。要求用并查集方法求解。Input本问题有多组测试数据,每组测试数据有两部分,第一部分只有一行,是两个正整数,分别表示图的节点数N(节点编号从1到N,1<=N<=100)和图的边数E原创 2020-08-14 16:25:51 · 535 阅读 · 0 评论 -
保险丝
保险丝Description现有n个设备,标号分别从1到n,第i个设备的用电量为c[i]。我们有一保险丝,当当前设备使用电量之和超过保险丝的总容量时则会跳闸。接下来有m次操作,初始化所有设备都为关闭状态,每操作一次则改变状态,若当前状态为开启,那么操作完毕后则变为关闭,反之亦然。Input测试数据有多组。输入第一行有3个整数,n、m、c,n(n<=20)表示设备的个数,c表示保险丝的总容量。接下来有n行,每行一个数字,第i行表示第i个设备的容量。 接下来有m行,每行一个数字k,表示掰原创 2020-08-13 19:12:49 · 461 阅读 · 0 评论 -
图的概念(概念题)
图的概念Description假设用一个n*n的数组a来描述一个有向图的邻接矩阵:(1)编写一个函数确定一个顶点的出度(2)编写一个函数确定一个顶点的入度(3)编写一个函数确定图中边的数目Input第一行:节点总数n、指定节点m下面n行:有向图的邻接矩阵Output第一行包括三个数据:节点编号m、m的出度、m的入度(之间用一个空格隔开)第二行包括一个数据:图中边的总数Sample Input5 30 4 2 2 32 0 1 5 102 0 0 4 00 3 7 0 76原创 2020-08-13 18:31:25 · 798 阅读 · 0 评论 -
编辑距离问题
编辑距离问题Description两个字符串的编辑距离(Edit distance)指的是将两个字符串上下排列时,其字母不同的列数的最小值。由于对齐的方式不同,不同字母的列数也不同,而这个不同列数的最小值才是编辑距离。初学算法的同学,对于理解编辑距离有一定困难,但编辑距离的实际意义是将一个字符串修改成另一个字符串所需要的最小编辑动作,这里的编辑动作包括插入、删除和字符替换。现在给你两个字符串,请你算算这两个字符串的编辑距离。Input本问题有多组测试数据,输入的第一行就是测试数据的组数n(1<原创 2020-08-12 21:05:04 · 764 阅读 · 0 评论 -
神农架野人问题
神农架野人问题Description最近网上热炒神农架野人考察话题,有支持有反对的,据说曾经有人捡到过不少野人头发,那么到底捡到的头发是不是野人的呢?不是最新科技有DNA检测方法吗?由于没有已经抓到的或者现成的野人,哪里去找比对需要的野人的DNA呢?所以只能另辟蹊径了,假如在被捡到的头发里能够提取最多26个特征,这些特征用英文大写字母表示,一根头发有一系列特征序列组成,科学家又通过科学方法分析出了很多可能的野人的头发的参考特征序列,如果两种特征序列(捡到的头发的特征序列和参考的特征序列)的公共子序列越长原创 2020-08-12 20:37:54 · 561 阅读 · 0 评论 -
最长不下降子序列
最长不下降子序列Description一个数的序列bi,当b1 <= b2 <= … < =bS的时候,我们称这个序列是不下降的。对于给定的一个序列(a1, a2, …, aN),我们可以得到一些不下降的子序列(ai1, ai2, …, aiK),这里1<= i1 < i2 < … < iK <= N。比如,对于序列(1, 7, 3, 5, 9, 4, 8),有它的一些不下降子序列,如(1, 7), (3, 4, 8)等等。这些子序列中最长的长度是4,比如原创 2020-08-12 20:07:45 · 1203 阅读 · 0 评论 -
BMI
BMIDescription小X经过刻苦训练获得了 NOIP 的国一,并参加了 NOI,获得了保送资格,被保送到南都大学学习,进入大学以后,小X觉得中学编程太辛苦了,应该好好犒劳一下自己,刚好南都大学周边美食如云,吃不胜吃,小X不到一个学期就长了 30 多斤,四年下来已经胖得不成样子,体重一举飙升到了 118kg,同时血压也升到了 128mmHg,离正常血压的上限也不远了,数字都很吉祥,但身体状况已呈险兆,上个楼梯就心慌气促,于是下定决心要减重,正所谓胖子不是一天就能吃成的,瘦下来也不可能饿几天就达到,原创 2020-08-12 13:59:47 · 356 阅读 · 0 评论 -
冒泡排序
sortDescription给定读者一个长度为N的数组,将这个排列进行排序后输出。Input第一行,一个整数N。第二行,N个整数代表a[i],每个整数中间用一个空格隔开Output排序后的数组Sample Input54 5 2 1 3Sample Output1 2 3 4 5Hint1<=N<=1000001<=a[i]<=1000000不要妄图使用快速排序,我构造了卡掉快排的数据。#include<bits/stdc++.h>u原创 2020-08-12 13:41:57 · 160 阅读 · 0 评论 -
二叉树前序遍历,后序遍历
求前序遍历Description给出一棵二叉树的中序和后序遍历,求它的前序遍历。(树结点用不同的大写字母表示,长度小于等于26。)Input本问题有多组测试数据,每组测试数据有两行,每行都是由大写字母组成,分别表示一颗二叉树的中序和后序遍历。Output根据给定的中序和后序遍历,输出相应的前序遍历。Sample InputBADCBDCASample OutputABCD#include<bits/stdc++.h>using namespace std;string原创 2020-08-11 21:25:08 · 552 阅读 · 0 评论 -
最短路+bfs
最短路Description在每年的校赛里,所有进入决赛的同学都会获得一件很漂亮的t-shirt。但是每当我们的工作人员把上百件的衣服从商店运回到赛场的时候,却是非常累的!所以现在他们想要寻找最短的从商店到赛场的路线,你可以帮助他们吗?Input输入包括多组数据。每组数据第一行是两个整数N、M(N<=100,M<=10000),N表示成都的大街上有几个路口,标号为1的路口是商店所在地,标号为N的路口是赛场所在地,M则表示在成都有几条路。N=M=0表示输入结束。接下来M行,每行包括3个整数原创 2020-08-11 21:22:28 · 543 阅读 · 0 评论 -
模拟+并查集做最短路
【基础】聪明的小地鼠Description在学校里的试验田里面,种了n个大萝卜,小地鼠又非常的喜欢吃萝卜。它呢,就会出来偷偷的从试验田中偷萝卜。大萝卜都是种在一排地里面,认真的管理员,按照萝卜的位置早早的给萝卜编了号。希望能增加管理,保证产量。谁知道,小地鼠也有了自己的偷萝卜策略。 同样,在这个地里呢,正好也有n只小地鼠,这些小地鼠,他们都是按照顺序出来偷萝卜。小地鼠们根据自己的出场顺序编好号,然后开始根据自己的编号开始偷萝卜。因为,小地鼠的老大(即1号老鼠),很胖,所以他决定多偷萝卜了,而只是拿了1号原创 2020-08-11 19:19:48 · 1056 阅读 · 0 评论 -
Manacher算法
最长回文子串Description回文串是指aba、abba、cccbccc、aaaa这种左右对称的字符串。输入一个字符串Str,输出Str里最长回文子串的长度。Input输入Str(Str的长度 <= 100000)Output输出最长回文子串的长度L。Sample InputdaabaacSample Output5#include<bits/stdc++.h>using namespace std;string s,x;int p[200003],mx,原创 2020-08-11 18:22:57 · 135 阅读 · 0 评论 -
最小生成树
最小生成树Description在一张图上有N个点,点与点之间的连接的花费都已经告诉你了,请你设计一下,如何解决这个“最小生成树”的问题。要求用prim方法求解。Input首先输入一个数字N(0〈=N〈=100)然后输入一个N*N的矩阵 其中第i行第j列的数字k表示从点i到点j需要的花费。Output一个数字,最少需要多少花费才能使得整张图任意两点都直接或者间接连通(也就是最小生成树的权)Sample Input50 41 67 34 041 0 69 24 7867 69 0 58原创 2020-08-11 16:31:42 · 465 阅读 · 0 评论 -
模拟+贪心
零件加工任务的安排一Description有个国有中型企业,接到一批需要加工零件的订单,员工们非常高兴,可是高兴之后却发现问题了,原来这家企业能够加工这批零件的机床有限,如果仅仅为了这批加工任务而新添机床的话,那么既不合算也不必要,因为加工完这批零件后很可能这些机床又要闲置起来,所以大批量购买肯定不行,但这批订单又必须要完成,那么这么办呢?很想请你帮忙设计一个安排加工任务,使得完成这批订单所需要使用的机器数量最少。假定对于待加工的第i个零件,给你两个非负整数Si,Ei,其中Si表示加工开始的时间,其中原创 2020-08-11 13:41:50 · 1705 阅读 · 0 评论 -
哈夫曼编码问题
Description给定一个数字N,代表有N种不同的字符,已知每种字符的出现次数,现在要求你设计一种编码,使得任意一个编码都不是另外一个编码的前缀,并且使得这些字符经过编码压缩之后的总长度最小; Input一个数字N 代表有多少种不同的字符(0<=N<=1000)N个数字 每个数字代表一种字符的出现次数Output一个数字,代表总的编码长度Sample Input5123453388Sample Ou.原创 2020-08-10 16:28:36 · 654 阅读 · 0 评论