摘要:
在研究汉诺塔问题时,我们可以先分析俩个盘子的方法: 1.把第一个盘子放到辅助柱子上 2.把第二个盘子放大目标柱子上 3.把第一个盘子从辅助柱子移到目标柱子上 由此我们可以通过整体思想推导出一共有n个盘子情况: 把n-1个盘子看作是一个整体,我们只需要参照2个盘子的方法,把n-1个盘子先发到辅助柱子上 阅读全文
摘要:
首先,读入优化这里是只是针对整数,getchar读字符是非常快的,所以我们就用getchar了。(下面都假设输入的数为x) 负数处理 很简单,用一个标志变量f,开始时为1,当读入了’-’时,f变为-1,最后x*=f即可 绝对值部分处理 显然getchar每次只能读一位,所以,每当读了一位时x*=10 阅读全文
摘要:
Charm Bracelet Bessie has gone to the mall's jewelry store and spies a charm bracelet. Of course, she'd like to fill it with the best charms possible 阅读全文
摘要:
Problem Description 某省调查城镇交通状况,得到现有城镇道路统计表,表中列出了每条道路直接连通的城镇。省政府“畅通工程”的目标是使全省任何两个城镇间都可以实现交通(但不一定有直接的道路相连,只要互相间接通过道路可达即可)。问最少还需要建设多少条道路? Input 测试输入包含若干测 阅读全文
摘要:
1759:最长上升子序列 描述一个数的序列bi,当b1 < b2 < ... < bS的时候,我们称这个序列是上升的。对于给定的一个序列(a1, a2, ..., aN),我们可以得到一些上升的子序列(ai1, ai2, ..., aiK),这里1 <= i1 < i2 < ... < iK <= 阅读全文
摘要:
目录 ▪ strcpy ▪ strcat ▪ strlen ▪ strncat ▪ strncpy ▪ strcspn ▪ strdup ▪ stricmp ▪ strerror ▪ strcmp strcmp(ans1,ans2);//比较字典序 strncmp(ans1,ans2,n);//比较 阅读全文
摘要:
简单的约瑟夫问题:使用数组,模拟一个圈,每次数到m就标记为已读,并将num还原为0 接着从下一个人开始,如果到了最后一个人,就重新回到第一个人,继续开始寻找,如果没有被标记过num(数到的数字)++,直到所有人都退出圈子结束 源代码 1 #include <iostream> 2 #include 阅读全文
摘要:
用筛法求出100以内的全部素数,并按每行五个数显示 我们知道一个合数可以分解了几个质数想乘,从2开始知道根号下n每次判断一个数是否为素数,如果为素数,就把所有能被这个数整除的数排除,即不是素数。 首先是一个判断素数的函数 1 bool sushu(int x) 2 { 3 if (x==2) 4 r 阅读全文
摘要:
每个节点,他所连接的各个节点之间的距离都是2,因为一共那个点,所以两层循环只相当于nlogn 把一个点所连接的所有点求和,(k-a[i])*a[i]表示这个点和剩余所有的点的乘积的和,把每个点都如此处理,再把所得结果相加,即每个点和他相邻为2 的点的乘积得和 这……2020年10月的我再来看看这篇博 阅读全文
摘要:
有一个n*m的棋盘(1<n,m<=400),在某个点上有一个马,要求你计算出马到达棋盘上任意一个点最少要走几步 跟迷宫一样,找最近距离,显然用bfs,两个方位数组dir1和dir2用来表示马可以走的8个方向,循环判断八个方向,每次判断下一个位置是否越界或是否访问过,若都没有,则下一刻位置可走,并标记 阅读全文