- 博客(13)
- 收藏
- 关注
原创 Codeforces Round #656 DEFG题
补题记录D题 a-Good String#include<bits/stdc++.h>using namespace std;const int max_s= 2e5 + 10;char s[max_s];//递归的思想//递归+回溯 int solve(int l, int r, char ch){ if (l == r) { if (s[l] == ch) return 0; else return 1; } int mid = (l +
2020-07-23 14:23:00
176
原创 杭电ACM step 2.3.2
Problem DescriptionProblems involving the computation of exact values of very large magnitude and precision are common. For example, the computation of the national debt is a taxing experience for many computer systems.This problem requires that you writ
2020-07-17 23:26:48
199
原创 排序之选择排序
简单选择排序基本操作1.首先通过n-1次关键字比较,从n个记录中找出关键字最小的记录,将它与第一个记录交换2.再通过n-2次比较,从剩余的n-1个记录中找出关键字次序最小的记录,将它与第二个记录交换3.重复上面操作,共进行n-1趟排序后,排序结束代码void Select_Sort(Sq_List& L) { for(int i=0;i<n;i++) { //找最小值并记录 int k=i; for(int j=i+1;j<n;j++) {
2020-07-16 22:43:20
170
原创 图的遍历
深度优先搜索(DFS)思路一直往前走,如果不能往前则回溯,找上一个顶点没有被访问的,直到所有的顶点被访问访问次序不确定对于非连通图:在未访问过的顶点中在进行DFS,换了几次顶点,就可以知道有多少个连通分量代码 //G是图 void DFS(AM_Graph G,int v) //v是要访问的结点 { cout<<v; visited[v]=true; //因为访问了v,将v置0 //vex_num是顶点数 //把邻接矩阵上所有的点都找了一遍 for(i
2020-07-13 19:00:22
132
原创 卡特兰数代码
应用1.求二叉树(增加一个结点,能构成多少种二叉树)2.买票问题3.分割三角形问题4.括号匹配问题5.栈问题6.矩阵连乘问题卡特兰数及其递推式f(0)=1;f(1)=1;f(2)=2;f(3)=5;f(4)=14=f(3)*f(0)+f(2)*f(1)+f(1)*f(2)+f(0)*f(3) //递推式1f(5)=42f(6)=132满足递推式:2.Cn=(4*n-2)*C(n-1)/(n+1)3.Cn=C(2*n,n)/(n+1)4.Cn=C(2n,n)-C(2n,n
2020-07-09 18:14:04
709
原创 高精度乘法
思路1.先处理字符的符号位2.将字符处理后压入整数数组中(倒序压入,方便后面的处理)3.用模拟乘法的出积储存在另一个数组中倒序的目的是为了对其相乘的时候的第一位,每一次相乘得到的数处理进位后得到的数字才是应该存储的数字,此过程与我们做乘法运算相似,可以看下面代码的注释4.处理前置0后,处理前置0用最不利原则,然后输出,注意正数负数或者负数正数为负数,先输出一个0代码实现//高精度乘法#include<cstdio>#include<cstring>#define
2020-07-08 17:40:20
298
原创 二叉树的遍历
先序遍历(递归)算法二叉树为空,则空操作二叉树非空,访问根节点(D),访问左子树(L),访问右子树(R)代码 void PreOrderTraverse(BiTree T) //传递的参数为一棵树 { if(T==NULL) return ; //为空直接返回 else { visit(T); //访问根结点,可以写visit函数进行访问操作 PreOrderTraverse(T->Lchild); //递归遍历左子树 PreOrderTrave
2020-07-07 16:23:53
784
1
原创 杭电ACM step2.2.6Number Sequence
这道题虽然不是很难(看着好像不难),代码量也不大,但是我经历了超时,超内存才整出来,所以把这题记录下来Problem DescriptionA number sequence is defined as follows:f(1) = 1, f(2) = 1, f(n) = (A * f(n - 1) + B * f(n - 2)) mod 7.Given A, B, and n, you are to calculate the value of f(n).InputThe input cons
2020-07-04 23:05:33
182
原创 试探回溯法之八皇后问题(C++)
试探回溯排列问题的所有可能解,但是不同的是尽可能多的,尽可能早的排除一些解。试探:从一个最初的选择出发,逐步增加解的长度,直到试探完所有的可能性。回溯:试探中发现与目标不同,则这条路上接下来所有的解被排除,然后回到上一步,继续试探下一个可能的组合。八皇后问题详解问题在国际象棋中,皇后的势力范围(横,竖,斜),怎样在n*n的棋盘上放置n个皇后,使她们不能相互攻击思路先将皇后放置在(0,0)的位置,尝试将皇后分配至每行,试探不同的列,如果发现冲突,则试探下一个列,如果下一行皇后无处可放,则回溯到
2020-07-03 23:05:41
3967
原创 杭电ACM step 2.2.3汉诺塔VII
Problem Descriptionn个盘子的汉诺塔问题的最少移动次数是2n-1,即在移动过程中会产生2n个系列。由于发生错移产生的系列就增加了,这种错误是放错了柱子,并不会把大盘放到小盘上,即各柱子从下往上的大小仍保持如下关系 :n=m+p+qa1>a2>…>amb1>b2>…>bpc1>c2>…>cqai是A柱上的盘的盘号系列,bi是B柱上的盘的盘号系列, ci是C柱上的盘的盘号系列,最初目标是将A柱上的n个盘子移到C盘. 给出1个系列
2020-07-02 23:49:33
198
原创 杭电ACM step2.1.6整数对
Problem DescriptionGardon和小希玩了一个游戏,Gardon随便想了一个数A(首位不能为0),把它去掉一个数字以后得到另外一个数B,他把A和B的和N告诉了小希,让小希猜想他原来想的数字。不过为了公平起见,如果小希回答的数虽然不是A,但同样能达到那个条件(去掉其中的一个数字得到B,A和B之和是N),一样算小希胜利。而且小希如果能答出多个符合条件的数字,就可以得到额外的糖果。所以现在小希希望你编写一个程序,来帮助她找到尽可能多的解。例如,Gardon想的是A=31,B=3 告诉小希N
2020-07-01 23:40:32
195
原创 杭电ACM step 2.1.4 Largest prime factor
@TOCProblem DescriptionEverybody knows any number can be combined by the prime number.Now, your task is telling me what position of the largest prime factor.The position of prime 2 is 1, prime 3 is 2, and prime 5 is 3, etc.Specially, LPF(1) = 0.Input
2020-06-30 22:35:37
281
原创 暑假安排
*暑假短学期初步安排做为一个刚刚接触算法的小萌新,我还是打算从基础做起。主要是学习一些基础的算法,跟着一个oj做一些题目。首先就是把基础的数据结构在暑假要学习一下,跟着杭电的oj上的ACM step做一些题目,嗯,之前在上面做过一些题,但是期末考试给中断的,好长时间没有碰了,正好可以捡起来。然后,可以在cf上面打一些div3的比赛。数据结构里面主要是STL的使用(几个常用的容器),还有树、图和串的一些基础知识。当然,如果时间还是要接着去往下学习的。能力尚浅,多多学习才最要紧。...
2020-06-30 10:13:53
271
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人