- 博客(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 153
原创 杭电ACM step 2.3.2
Problem Description Problems 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 177
原创 排序之选择排序
简单选择排序 基本操作 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 151
原创 图的遍历
深度优先搜索(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 114
原创 卡特兰数代码
应用 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) //递推式1 f(5)=42 f(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 630
原创 高精度乘法
思路 1.先处理字符的符号位 2.将字符处理后压入整数数组中(倒序压入,方便后面的处理) 3.用模拟乘法的出积储存在另一个数组中 倒序的目的是为了对其相乘的时候的第一位,每一次相乘得到的数处理进位后得到的数字才是应该存储的数字,此过程与我们做乘法运算相似,可以看下面代码的注释 4.处理前置0后,处理前置0用最不利原则,然后输出,注意正数负数或者负数正数为负数,先输出一个0 代码实现 //高精度乘法 #include<cstdio> #include<cstring> #define
2020-07-08 17:40:20 274
原创 二叉树的遍历
先序遍历(递归) 算法 二叉树为空,则空操作 二叉树非空,访问根节点(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 740 1
原创 杭电ACM step2.2.6Number Sequence
这道题虽然不是很难(看着好像不难),代码量也不大,但是我经历了超时,超内存才整出来,所以把这题记录下来 Problem Description A 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). Input The input cons
2020-07-04 23:05:33 157
原创 试探回溯法之八皇后问题(C++)
试探回溯 排列问题的所有可能解,但是不同的是尽可能多的,尽可能早的排除一些解。 试探:从一个最初的选择出发,逐步增加解的长度,直到试探完所有的可能性。 回溯:试探中发现与目标不同,则这条路上接下来所有的解被排除,然后回到上一步,继续试探下一个可能的组合。 八皇后问题详解 问题 在国际象棋中,皇后的势力范围(横,竖,斜),怎样在n*n的棋盘上放置n个皇后,使她们不能相互攻击 思路 先将皇后放置在(0,0)的位置,尝试将皇后分配至每行,试探不同的列,如果发现冲突,则试探下一个列,如果下一行皇后无处可放,则回溯到
2020-07-03 23:05:41 3923
原创 杭电ACM step 2.2.3汉诺塔VII
Problem Description n个盘子的汉诺塔问题的最少移动次数是2n-1,即在移动过程中会产生2n个系列。由于发生错移产生的系列就增加了,这种错误是放错了柱子,并不会把大盘放到小盘上,即各柱子从下往上的大小仍保持如下关系 : n=m+p+q a1>a2>…>am b1>b2>…>bp c1>c2>…>cq ai是A柱上的盘的盘号系列,bi是B柱上的盘的盘号系列, ci是C柱上的盘的盘号系列,最初目标是将A柱上的n个盘子移到C盘. 给出1个系列
2020-07-02 23:49:33 173
原创 杭电ACM step2.1.6整数对
Problem Description Gardon和小希玩了一个游戏,Gardon随便想了一个数A(首位不能为0),把它去掉一个数字以后得到另外一个数B,他把A和B的和N告诉了小希,让小希猜想他原来想的数字。不过为了公平起见,如果小希回答的数虽然不是A,但同样能达到那个条件(去掉其中的一个数字得到B,A和B之和是N),一样算小希胜利。而且小希如果能答出多个符合条件的数字,就可以得到额外的糖果。 所以现在小希希望你编写一个程序,来帮助她找到尽可能多的解。 例如,Gardon想的是A=31,B=3 告诉小希N
2020-07-01 23:40:32 173
原创 杭电ACM step 2.1.4 Largest prime factor
@TOC Problem Description Everybody 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 256
原创 暑假安排
*暑假短学期初步安排 做为一个刚刚接触算法的小萌新,我还是打算从基础做起。 主要是学习一些基础的算法,跟着一个oj做一些题目。 首先就是把基础的数据结构在暑假要学习一下,跟着杭电的oj上的ACM step做一些题目,嗯,之前在上面做过一些题,但是期末考试给中断的,好长时间没有碰了,正好可以捡起来。然后,可以在cf上面打一些div3的比赛。 数据结构里面主要是STL的使用(几个常用的容器),还有树、图和串的一些基础知识。当然,如果时间还是要接着去往下学习的。 能力尚浅,多多学习才最要紧。 ...
2020-06-30 10:13:53 251
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人