杂七杂八
题解
嘘......
这个作者很懒,什么都没留下…
展开
-
判断质数的几种方法
思路借鉴(https://www.cnblogs.com/xiehongfeng100/p/4332998.html)1:若不知道范围 num =√num*√num。 如果n除以大于√num的数,必得到小于√num的商,而小于√num的整数已经在2到√num的整数试过了,没有必要再试(√num, num)范围内的数了,再去掉偶数的情况,除2外的偶数都不是质数bool judge(int nu...原创 2019-04-21 20:09:32 · 1918 阅读 · 0 评论 -
二分查找
思路很简单,将所待查找的数与中间的数进行比较,小了在左区间差,大了在右区间差,主要是要如何判断是否使用二分,如何使用要求:排序;范围;题目:A - River HopscotchEvery year the cows hold an event featuring a peculiar version of hopscotch that involves carefully jumpin...原创 2019-04-19 23:13:39 · 84 阅读 · 0 评论 -
快速幂(主矩阵,补充矩阵的基础知识和数的快速幂)另题3:s=a+a^2+……+a^k快速两求法(二分求和,矩阵分解)
矩阵(m*n)基本运算:+/-:对应位上的数加减;:(nn)矩阵 ,c[i][j]=(c[i][j]+a[i][k]*b[k][j]);对应代码:for(int i=1;i<=n;i++) for(int j=1;j<=n;j++) c[i][j]=a[i][j]+(-)b[i][j];//+/- for(int i=1;i<=n;i++) for(int j=...原创 2019-04-08 00:45:37 · 542 阅读 · 0 评论 -
题解:笨鸟先飞
题目描述多多是一只小菜鸟,都说笨鸟先飞,多多也想来个菜鸟先飞。于是它从0点出发,一开始的飞行速度为1m/s,每过一个单位时间多多的飞行速度比上一个单位时间的飞行速度快2m/s,问n(0<n<10^5)个单位时间之后多多飞了多远?输入先输入一个整数T表示有几组数据。每组数据输入一个n,表示多多飞行的时间。输出输出多多飞行了多远,因为数字很大,所以对10000取模。样例输入212...原创 2019-06-05 18:34:15 · 881 阅读 · 0 评论 -
快速排序
二分加分治给你多个数,让你进行排序,你就每次找个数,让比它大的在右,比它小的在左,然后再在这两部分接着重复,直到不能分了实现:两个指针,一个在头,找比它大数,一个在尾,找比它小数,两个指针朝中间逼近,每次将找到的数交换,最后到中间,将中间的数与temp交换,temp就到中间了,比它小的就在它左边,比它大的就到右边了temp:特定就是每次的第一个数;因为temp是第一个数,所以和中间数交换时...原创 2019-06-05 18:29:34 · 103 阅读 · 0 评论 -
题解:为什么1024是程序员节
题目描述小雏鸟正在看剧。突然被插播的广告吓了一跳。只见广告上说 1024你懂的小雏鸟不懂, 问身边的大白。大白说,这个1024是2的10次方,程序员把10月24日作为程序猿日。现在给你一个整数N,让你求2的N次方有多大。输入一个整数N,N<30输出一个整数,2的N次方的结果样例输入10样例输出1024水,但有个好玩的现象#include<cmath>#in...原创 2019-06-04 18:34:39 · 1534 阅读 · 0 评论 -
题解:判断三角形形状
题目描述给你三角形的三条边,你能告诉我它是哪种三角形吗?如果是直角三角形,请输出“good”。如果是等腰三角形,请输出“perfect”。否则,请输出“just a triangle”。题目保证输入数据合法。输入输入的第一行为一个整数t,表示测试样例的数量。每组样例包含了三个整数a,b,c,代表了三角形的三条边的长度。(0<a,b,c<300)输出对于每组样例,输出结果,每组...原创 2019-06-04 18:25:40 · 1244 阅读 · 0 评论 -
题解:bfs之迷宫问题(入门)
[提交][状态][讨论版]题目描述小明置身于一个迷宫,请你帮小明找出从起点到终点的最短路程。小明只能向上下左右四个方向移动。输入输入包含多组测试数据。输入的第一行是一个整数T,表示有T组测试数据。每组输入的第一行是两个整数N和M(1<=N,M<=100)。接下来N行,每行输入M个字符,每个字符表示迷宫中的一个小方格。字符的含义如下:‘S’:起点‘E’:终点‘-’:空地,...原创 2019-05-31 23:54:29 · 540 阅读 · 0 评论 -
题解:bfs之Meteor Shower
Bessie hears that an extraordinary meteor shower is coming; reports say that these meteors will crash into earth and destroy anything they hit. Anxious for her safety, she vows to find her way to a sa...原创 2019-05-31 21:44:16 · 256 阅读 · 0 评论 -
bfs
广搜理解:从起点往可达方位往外扩散,每次步数+1;基本代码(来自白书)这里用的pair 个人更喜欢用结构体const int INF=100000000;typedef pair<int,int>p;char maze[MAX_N][MAX_M+1];int N,M;int sx,sy;int gx,gy;int d[MAX_N][MAX_M];int dx[4]...原创 2019-06-04 11:51:34 · 106 阅读 · 0 评论 -
dfs
dfs:深度搜索,类比理解:回溯,后进先出题:(https://mp.csdn.net/mdeditor/90448211#)(https://mp.csdn.net/mdeditor/90448401#)(https://mp.csdn.net/mdeditor/90448620#)原创 2019-05-22 17:46:59 · 137 阅读 · 0 评论 -
题解:dfs之Ball
还是日语,解释题目:1到10编号的10个球从容器A掉下,可掉入筒B或筒C中要求:筒B和筒C中球的号码由大到小Sample Input23 1 4 2 5 6 7 8 9 1010 9 8 7 6 5 4 3 2 1Output for the Sample InputYESNO我们只要关注筒中号码最大的那个就行了#include<iostream>#includ...原创 2019-05-22 17:41:39 · 126 阅读 · 0 评论 -
题解:dfs之Property Distribution(求有几个区域)
题目都是日语,我简单解释下题意给定长和宽,求有多少区域,不同字符代表不同种类,同一种类四个方向连在一起的算一个区域Sample Input10 10####@@#@@@@##@##@@@*#***#@##@#@@##@@@@@@@##@@##@@@@@##@@#@##**@****#@@#@0 0Output for the Sample Input33#incl...原创 2019-05-22 17:33:08 · 147 阅读 · 0 评论 -
题解:dfs之Red and Black(四方向,一起点,算黑砖数量)
There is a rectangular room, covered with square tiles. Each tile is colored either red or black. A man is standing on a black tile. From a tile, he can move to one of four adjacent tiles. But he can’...原创 2019-05-22 17:26:24 · 292 阅读 · 0 评论 -
题解:单词排序(水)
题目描述小红学会了很多英文单词,妈妈为了帮小红加强记忆,拿出纸、笔,把 N 个单词写在纸上的一行里,小红看了几秒钟后,将这张纸扣在桌子上。妈妈问小红:“你能否将这 N 个单词按照字典排列的顺序,从小到大写出来?”小红按照妈妈的要求写出了答案。现在请你编写程序帮助妈妈检查小红的答案是否正确。注意:所有单词都由小写字母组成,单词两两之间用一个空格分隔。输入输入包含两行。第一行仅包括一个正整数N...原创 2019-05-22 16:39:07 · 953 阅读 · 0 评论 -
题解:第n个丑数+“st”,“nd”,“rd”和“th”序数结尾
题目描述如果一个数的素因子只包含2,3,5或7,那么我们把这种数叫做丑数。序列1,2,3,4,5,6,7,8,9,10,12,14,15,16,18,20,21,24,25,27…展示了前20个丑数。请你编程寻找这个序列中的第n个元素。输入输入包含多组测试数据。每组输入为一个整数n(1<=n<=5842),当n=0时,输入结束。输出对于每组输入,输出一行“The nth humb...原创 2019-05-22 16:25:37 · 501 阅读 · 0 评论 -
题解:进制转换加回文数
题目描述我们把从左往右和从右往左念起来相同的数字叫做回文数。例如,75457就是一个回文数。当然某个数用某个进制表示不是回文数,但是用别的进制表示可能就是回文数。例如,17是用十进制表示的数,显然它不是一个回文数,但是将17用二进制表示出来是10001,显然在二进制下它是一个回文数。现在给你一个用十进制表示的数,请你判断它在2~16进制下是否是回文数。输入输入包含多组测试数据。每组输入一...原创 2019-05-22 15:29:37 · 693 阅读 · 0 评论 -
<ctime>
ctime函数用于后期测试时间,受设备等因素影响,误差大。最好事前估计时间。部分代码来源,较详解clock_t:返回毫秒;time_t:返回秒;#include<iostream>#include<ctime>using namespace std;void myTime(){ clock_t start=clock(); cout<<"开始时...原创 2019-05-13 17:52:26 · 236 阅读 · 0 评论 -
基本操作(栈,队列)待补充
栈:后进先出,top找顶元素队列:先进先出,front找底元素#include<queue>//队列#include<stack>//栈#include<iostream>using namespace std;int main(){ cout<<"push(1,2,3)"<<endl; stack<int>...原创 2019-05-11 22:43:25 · 87 阅读 · 0 评论 -
样例版子floyed:求任两点之间的最短路径加打印路径,最短路拼接
来源(https://www.cnblogs.com/liyinggang/p/5528944.html)问题描述这是春天乡村的N个城市。每对城市之间可能有一条或没有一条交通线。现在有一些货物应该从一个城市运到另一个城市。运输费由两部分组成: 这些城市之间的交通成本,以及任何货物通过一个城市时,除来源地和目的地城市外,都要征收一定的税。您必须编写一个程序来查找成本最低的路线。输入 第一...原创 2019-05-05 23:21:38 · 226 阅读 · 0 评论 -
网络流(Dinic)
Dinic详解与实现(https://www.cnblogs.com/LUO77/p/6115057.html)(ISAP待留)边struct Dinic{ int c;//cap int f;//flow}edge[205][205];//i:from; j:to构造分层网络(level标号)bool dinic_bfs()//建网{ queue<in...原创 2019-05-04 18:02:36 · 156 阅读 · 0 评论 -
The Perfect Stall(最大二分匹配:匈牙利算法,最大流)
Farmer John completed his new barn just last week, complete with all the latest milking technology. Unfortunately, due to engineering problems, all the stalls in the new barn are different. For the fi...原创 2019-04-26 21:42:50 · 409 阅读 · 0 评论 -
2019南昌邀请赛(完全数,特殊字串,数学,找规律)
A:要求输出前五个完美数可以暴力求解前4个 6,28,496,8128、第五个33550336难解,需找规律,这就需要先对完全数有一定了解以下资料来自百度百科完全数(Perfect number),又称完美数或完备数,是一些特殊的自然数。它所有的真因子(即除了自身以外的约数)的和(即因子函数),恰好等于它本身。获得公式:如果:1:p是质数2:2^p-1也是质数那么:(2p-1)...原创 2019-04-22 01:19:56 · 285 阅读 · 0 评论 -
题解:bfs之密码锁
题目描述玛雅人有一种密码,如果字符串中出现连续的2012四个数字就能解开密码。给一个长度为N的字符串,(2=<N<=13)该字符串中只含有0,1,2三种数字,问这个字符串要移位几次才能解开密码,每次只能移动相邻的两个数字。例如02120经过一次移位,可以得到20120,01220,02210,02102,其中20120符合要求,因此输出为1.如果无论移位多少次都解不开密码,输出-1。...原创 2019-06-15 10:37:08 · 482 阅读 · 0 评论 -
题解:二叉排序树
题目描述输入一系列整数,建立二叉排序数,并进行前序,中序,后序遍历。输入输入第一行包括一个整数n(1<=n<=100)。接下来的一行包括n个整数。输出可能有多组测试数据,对于每组数据,将题目所给数据建立一个二叉排序树,并对二叉排序树进行前序、中序和后序遍历。每种遍历结果输出一行。每行最后一个数据之后有一个空格。样例输入1228 15421 10 5 39样例输...原创 2019-06-15 09:55:57 · 349 阅读 · 0 评论 -
题解:Hanoi双塔问题(高精度处理,压4用20)
题目描述给定A,B,C三根足够长的细柱,在A柱上放有2n个中间有空的圆盘,共有n个不同的尺寸,每个尺寸都有两个相同的圆盘,注意这两个圆盘是不加区分的(下图为n=3的情形)。现要将 这些国盘移到C柱上,在移动过程中可放在B柱上暂存。要求:提交(1)每次只能移动一个圆盘;(2) A、B、C三根细柱上的圆盘都要保持上小下大的顺序;任务:设An为2n个圆盘完成上述任务所需的最少移动次数,对于输入...原创 2019-06-14 16:24:30 · 467 阅读 · 0 评论 -
题解:子网掩码
题目描述子网掩码是用来判断任意两台计算机的IP地址是否属于同一子网络的根据。最为简单的理解就是两台计算机各自的IP地址与子网掩码进行AND运算后,如果得出的结果是相同的,则说明这两台计算机是处于同一个子网络上的,可以进行直接的通讯。就这么简单。请看以下示例:运算演示之一:IP地址 192.168.0.1子网掩码 255.255.255.0转化为二进制进行运算:IP地址 ...原创 2019-06-13 16:35:16 · 601 阅读 · 0 评论 -
题解:快来秒杀我
题目描述根据前几次竞赛的情况,这次为了给新手们一点信心,特提供这道秒杀题来让大家杀。ASCII码大家应该都学过了,现在给你一个很简单的任务,输入数字,表示ASCII码,输出对应的文本内容。输入输入的第一行是一个整数T(1<=T<=100)。接下来输入T个正整数,这些数之间用空格、换行或Tab键来分隔。测试数据保证输入的整数都在ASCII码范围内,并且不小于32。输出在一...原创 2019-06-13 16:18:38 · 595 阅读 · 0 评论 -
题解:哈夫曼树
题目描述哈夫曼树,第一行输入一个数n,表示叶结点的个数。需要用这些叶结点生成哈夫曼树,根据哈夫曼树的概念,这些结点有权值,即weight,题目需要输出所有结点的值与权值的乘积之和。输入输入有多组数据。每组第一行输入一个数n,接着输入n个叶节点(叶节点权值不超过100,2<=n<=1000)。输出输出权值。样例输入22 835 11 30样例输出1062思路...原创 2019-06-13 16:00:18 · 598 阅读 · 0 评论 -
题解:二叉树问题
题目描述现给定一棵二叉树的先序遍历序列和中序遍历序列,要求你计算该二叉树的高度。输入输入包含多组测试数据,每组输入首先给出正整数N(<=50),为树中结点总数。下面2行先后给出先序和中序遍历序列,均是长度为N的不包含重复英文字母(区别大小写)的字符串。输出对于每组输入,输出一个整数,即该二叉树的高度。样例输入9ABDFGHIECFDHGIBEAC7Abcdefggfe...原创 2019-06-13 15:47:47 · 1061 阅读 · 0 评论 -
折半插入排序
二分的思想;结果从小到大给定n个数,存入一个数组里,下标从0开始;操作:数从循环i 1->n-1开始插起每次从前面i-1个已经排好序的数中,用二分找到适合自己的位置,然后把后面大的数都往后挪一位,再将那个位置上的数替换乘自己;因为从第二个数开始往前插,所以每次都可以保证前面的顺序为从小到大输入输入的第一行包含1个正整数n,表示共有n个整数需要参与排序。其中n不超过1000。...原创 2019-06-13 15:26:01 · 243 阅读 · 0 评论 -
题解:Power Strings
题目描述Given two strings a and b we define ab to be their concatenation. For example, if a = “abc” and b = “def” then ab = “abcdef”. If we think of concatenation as multiplication, exponentiation by a n...原创 2019-06-13 14:05:45 · 285 阅读 · 0 评论 -
题解:最短路(floyed)
题目描述给一张无向图G(U, E), 询问任意两点的最短距离。输入第一行两个整数n,m表示图中结点数和边的数量, 结点从1到n编号。接下来m行,每行三个整数u,v,w表示u,v之间有一条距离为w的边。接下来一行一个整数q,表示询问次数。接下来q行每行两个整数u,v,表示询问u到v的最短距离, 如果u不能到达v输出-1.数据范围:n <= 100, m <= 5000, q...原创 2019-06-10 16:25:09 · 1866 阅读 · 0 评论 -
KMP算法
详细解释真的学一下发现思路也还是挺简单的利用f数组求解while (i<n){ if (A[i]==B[j]) { i++; j++; if (j==m) { printf("%d\n",i-m+1);//注意,这里输出的位置是从1开始标号的,如果你要输出从0开始标号的位置,应该是...原创 2019-06-09 12:33:13 · 130 阅读 · 0 评论 -
题解:欧几里得游戏(博弈)
题目描述小明和小红在玩欧几里得游戏。他们从两个自然数开始,第一个玩家小明,从两个数的较大数中减去较小数的尽可能大的正整数倍,只要差为非负即可。然后,第二个玩家小红,对得到的两个数进行同样的操作,然后又是小明。就这样轮流进行游戏,直至某个玩家将较大数减去较小数的某个倍数之后差为0为止,此时游戏结束,该玩家就是胜利者。输入输入包含多组测试数据。每组输入两个正整数,表示游戏一开始的两个数,游戏总是小明...原创 2019-06-09 09:46:17 · 1177 阅读 · 0 评论 -
题解:字符串的查找和删除
题目描述给定一个短字符串(不含空格),再给定若干字符串,在这些字符串中删除所含有的短字符串。输入输入只有1组数据。输入一个短字符串(不含空格),再输入若干字符串直到文件结束为止。输出删除输入的短字符串(不区分大小写)并去掉空格,输出。样例输入in#includeint main(){printf(" Hi ");}样例输出#cludetma(){prtf(“Hi...原创 2019-06-06 13:43:49 · 329 阅读 · 0 评论 -
题解:奥运排序问题(模拟)
题目描述按要求,给国家进行排名。输入有多组数据。第一行给出国家数N,要求排名的国家数M,国家号从0到N-1。第二行开始的N行给定国家或地区的奥运金牌数,奖牌数,人口数(百万)。接下来一行给出M个国家号。输出排序有4种方式: 金牌总数 奖牌总数 金牌人口比例 奖牌人口比例对每个国家给出最佳排名排名方式 和 最终排名格式为: 排名:排名方式如果有相同的最终排名,则输出排名方式最小...原创 2019-06-06 11:12:35 · 268 阅读 · 0 评论 -
题解:取石子游戏(博弈)
题目描述一天小明和小红在玩取石子游戏,游戏规则是这样的:(1)本游戏是一个二人游戏;(2)有一堆石子,共有n个;(3)两人轮流进行;(4)每走一步可以取走1~m个石子;(5)最先取光石子的一方为胜。如果游戏的双方使用的都是最优策略,请输出哪个人能赢。输入输入的第一行是一个正整数C(C<=100),表示有C组测试数据。每组输入两个整数n和m(1<=n,m<=100...原创 2019-06-06 10:45:13 · 4665 阅读 · 3 评论 -
vector
插入原创 2019-06-05 23:05:00 · 69 阅读 · 0 评论 -
题解:后缀子串排序(qsort)
思路来源string超时,且用scanf输入有坑,char排序不能用sort,只能用qsort,要注意添加’\0’#include<iostream>#include<cstdio>#include<algorithm>#include<cstring>#include<string>using namespace std;...原创 2019-06-05 23:01:10 · 141 阅读 · 0 评论