- 博客(436)
- 资源 (1)
- 收藏
- 关注
原创 线段树入门讲解+模板(单点查询/更新、区间查询/更新)
先上模板:#include<bits/stdc++.h>using namespace std;struct node{ int l,r,w,lazy;//tree的l,r表示数组区间[l,r],w表示[l,r]区间和 }tree[400001];//lazy!=0是加值,lazy!=-1是改值 void build(int v,int l,int r)...
2019-04-21 17:34:10 2032 2
原创 博弈论模板
博弈论讲解 :【算法讲堂】【电子科技大学】【ACM】博弈论基础SWPU-ACM每周算法讲堂-博弈论入门博弈论题目有如下特征:1.有两名选手;2.两名选手交替操作,每次一步,每步都是在有限的合法集合中选取一种进行;3.在任何情况下,合法操作只取决于情况本身,与选手无关;4.游戏的败北条件为:当某位选手需要进行操作时,当前没有任何可以执行的合法操作,则该选手败北。...
2019-04-09 21:19:50 768
原创 博弈论总结及模板
博弈论讲解 :【算法讲堂】【电子科技大学】【ACM】博弈论基础SWPU-ACM每周算法讲堂-博弈论入门博弈论题目有如下特征:1.有两名选手;2.两名选手交替操作,每次一步,每步都是在有限的合法集合中选取一种进行;3.在任何情况下,合法操作只取决于情况本身,与选手无关;4.游戏的败北条件为:当某位选手需要进行操作时,当前没有任何可以执行的合法操作,则该选手败北。...
2019-04-09 21:00:43 1001 1
原创 2019年第十届蓝桥杯C/C++程序设计本科B组省赛 迷宫 输出路径(BFS记录路径&&模板)+赛后心得
昨天比赛刚结束 题目还没找着题意大致如下:给你一个30*50的图,图只有0和1组成,其中0是路1是墙,左上角和右下角是'0',输出最短路径并且按最小字典序输出,即按D<L<R<U的顺序输出。解题思路:BFS遍历过程中记录路径,既然题目中要求了遍历的顺序就按题目中的来遍历。记录路径不要忘记在扩展每一个点的时候把上一个点的信息先继承下来,因为这里使用的是数组...
2019-03-25 09:34:10 1253 5
原创 日期推算器
使用方法:输入三个整数用空格隔开,分别表示年月日再输入要推算的天数得到答案如:输入 1997 10 18 7823 输出 2019 3 20代码如下:#include<stdio.h>int a[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};int check(int y){ if((y%4=...
2019-03-20 10:51:14 917 1
原创 ZOJ - 4034 Mahjong Sorting(模拟)(阅读理解题!!! )
DreamGrid has just found a set of Mahjong withsuited tiles and a White Dragon tile in his pocket. Each suited tile has a suit (Character, Bamboo or Dot) and a rank (ranging from 1 to), and there...
2018-05-17 21:13:22 1393 5
原创 快速幂运算模板(求n^k以及前几位或后几位)
计算n^k的结果步骤:1.把n由十进制转换为二进制,按二进制来计算(最后结果还是一样的)2.把n由二进制转换为2^k相加的形式先举个例子:求5^22:接着就可以很好地理解了O(logn)计算幂运算的算法://无mod单纯求n^k #include<stdio.h>typedef long long ll;ll mod_pow(ll x,ll n){ ll res=1;...
2018-03-30 17:43:47 1513 2
原创 素数筛法打表模板
没有分析几种模板的效率,先记下一个用着吧#include<stdio.h>#include<string.h>#define MAXX 1000//求MAXX范围内的素数 int prime[MAXX+5],len=0;int p[MAXX+5];//p设为bool型较为合适,但int结果也对,注意把p数组加大一点防止越界 //思想:将范围内的合数全部筛掉剩余...
2018-03-30 10:25:38 262
原创 Prim输出无向图中所有的最小生成树
思路: 给出n个顶点m条边。一棵最小生成树中有n-1条边,所以在m条边中选n-1条边判断能否构成最小生成树,如果能则直接输出。 判断是否能构成最小生成树的条件是 当前的n-1条边的权值的和是否是最小生成树的权值的和(代码里的ans)。 步骤: 先进行一次prim,只是为了求出MST的权值ans。 再对m条边进行深搜,当选中n-1条边时判断是否能构成最小生成树。代码:#include<std
2017-12-21 21:36:25 1904 3
原创 二叉树的建立(先序输入)与遍历输出模板
#include<iostream>using namespace std;typedef struct node{ struct node *lchild; struct node *rchild; char data;}BiTreeNode, *BiTree;void createBiTree(BiTree &T){ char c; cin >>
2017-08-08 21:39:50 3959 3
原创 LeetCode 27 移除元素
给你一个数组nums和一个值val,你需要移除所有数值等于val的元素,并返回移除后数组的新长度。不要使用额外的数组空间,你必须仅使用O(1)额外空间并。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。为什么返回数值是整数,但输出的答案是数组呢?请注意,输入数组是以方式传递的,这意味着在函数里修改输入数组对于调用者是可见的。你可以想象内部操作如下://是以“引用”方式传递的。也就是说,不对实参作任何拷贝// 在函数里修改输入数组对于调用者是可见的。
2024-03-28 10:04:26 242 1
原创 LeetCode 704 二分查找
重新开始刷题了,不过这次开始要用Java来写了。,如果目标值存在返回下标,否则返回。个元素有序的(升序)整型数组。二分,注意每次查找时的边界判断。
2024-03-28 09:40:31 91
原创 22吉林大学软件需求分析与规范(Software Requirements Analysis & Specification)
吉林大学软件需求分析与规范(Software Requirements Analysis & Specification)
2023-11-04 16:37:59 1329 1
原创 Win10右下角任务栏网络图标消失不见,设置中通知区域网络开关是灰色的解决办法
ctrl+alt+.打开任务管理器,选中Windows资源管理器,重新启动,解决。这个问题总时不时出现,有时自己好了有时又消失不见有点烦人,写个博客记录一下。
2023-04-10 16:49:50 1066 1
原创 PyCharm2022配置conda环境 选择Conda Environment
5.点击Load Environments,可以加载出创建的环境,选择点击ok即可。2.选择conda中的环境,点击Add Interpreter。4. 选择conda安装路径,找到_conda.exe。1.点击新建项目(New Project)6.可以使用conda中的环境了。3.选择conda环境。
2023-04-10 15:58:28 1761
原创 jupyter notebook的使用
或者直接在所在文件夹的上方地址栏中输入jupyter notebook同样可以在这个文件夹中打开编辑器。在.ipynb文件所在的文件夹中直接进入cmd,输入jupyter notebook命令打开编辑器。
2023-04-03 09:53:55 99
原创 jupyter notebook默认快捷键
Jupyter 笔记本有两种不同的键盘输入模式。允许您将代码或文本输入到一个单元格中,并通过一个绿色边框的单元格来表示将键盘与笔记本级命令绑定在一起,并通过一个灰框、左边距蓝色的单元格显示。F: 查找并且替换Ctrl-Shift-F: 打开命令配置Ctrl-Shift-P: 打开命令配置Enter: 进入编辑模式P: 打开命令配置Shift-Enter: 运行单元格, 选择下面的单元格Ctrl-Enter: 运行选中的单元格Alt-Enter: 运行单元格并且在下面插入单元格。
2023-04-03 09:30:39 394
原创 复试上机KY175连通图
初始设定每个结点的老大是自己,当输入一条边之后,这条边的两个结点要打一架(归并),靠左原则确定双方老大哪一个上位。最后检查所有结点的老大(注意是findfather()而不是father【】,因为要看最终老大)是否是同一个,若是则连通。随后有 m 行数据,每行有两个值 x 和 y(0
2023-03-20 09:33:23 112 1
原创 复试上机KY179搬水果(哈夫曼)
在一个果园里,小明已经将所有的水果打了下来,并按水果的不同种类分成了若干堆,小明决定把所有的水果合成一堆。每一次合并,小明可以把两堆水果合并到一起,消耗的体力等于两堆水果的重量之和。假定每个水果重量都为 1,并且已知水果的种类数和每种水果的数目,你的任务是设计出合并的次序方案,使小明耗费的体力最少,并输出这个最小的体力耗费值。可以先将 1,2 堆合并,新堆数目为3,耗费体力为 3。解题思路:运用哈夫曼的思想,找到最小值后将最小值的值和位置记录下来,将数组中最后一个值放到最小值所在位置并n--。
2023-03-19 21:46:13 165 2
原创 复试上机KY177平方因子
对于每一个输入的整数,在单独的一行输出结果,如果有不为1的完全平方数因子,则输出Yes,否则输出No。给定一个数n,判定它是否有一个不为1的完全平方数因子。也就是说,是否存在某个k,k>1,使得k*k能够整除n。解题思路:注意k*k整除n,n是被除数,所以要想整除就要k*k
2023-03-18 18:02:16 78
原创 复试上机KY178数字之和
对于每个输入数据,计算其各位数字之和,以及其平方值的数字之和,输出在一行中,之间用一个空格分隔,但行末不要有空格。对于给定的正整数 n,计算其十进制形式下所有位置数字之和,并计算其平方的各位数字之和。每行输入数据包括一个正整数n(0
2023-03-18 17:37:13 99
原创 复试上机KY174翻牌
在本题目中,还引入另外一种洗牌方式,就是把前一半(如果总数是奇数,就是(n-1)/2)牌翻转过来,这种操作称之为翻转(flip)。给定n张牌,初始次序为从1到n,经过若干次的shift和flip操作后,结果会是什么样?n表示牌的数目,1
2023-03-18 16:41:24 86
原创 复试上机KY173三角形的边
给定三个已知长度的边,确定是否能够构成一个三角形,这是一个简单的几何问题。我们都知道,这要求两边之和大于第三边。实际上,并不需要检验所有三种可能,只需要计算最短的两个边长之和是否大于最大那个就可以了。这次的问题就是:给出三个正整数,计算最小的数加上次小的数与最大的数之差。对于输入的每一行,在单独一行内输出结果s。上式中,min为最小值,mid为中间值,max为最大值。每一行包括三个数据a, b, c,并且都是正整数,均小于10000。
2023-03-18 16:30:44 82
原创 2010软专算法题(判断有向图是否有回路)
已知有向图G=(V,E),具有n个顶点,以邻接表的形式存储。请设计一个算法,判断图G中是否存在有向回路。
2022-11-25 20:15:01 974
原创 2011软专算法题(层次遍历求二叉树的宽度)
假定某二叉树以链接形式(每个结点包括三个字段,left,data,right)存储,请设计一个算法,求该二叉树的宽度(一棵二叉树的宽度系指:在该二叉树的各层上,具有结点树最多的那一层上的结点总数)。
2022-11-25 19:38:14 309
原创 2012软专算法题(完全二叉树的判断)
假定某二叉树以链接形式(每个结点包括三个字段:left,data,right)存储,试编写一算法,判断给定二叉树是否是完全二叉树。同2016年软专算法题T1。
2022-11-24 18:38:44 112
原创 2013软专算法题T2(基于链表的归并排序)
设有n个待排序元素存放在一个不带表头结点的单链表中,每个链表结点只存放一个元素,头指针为 r,试设计一个算法,对其进行二路归并排序,要求不移动结点中的元素,只能改动各链表结点中的指针,排序后 r 仍指示结果链表的第一个结点。划分:使用递归,先用快慢指针找到链表中的中值,从中间咔叽。将链表中前半部分排序的结果同后半段的排序结果归并。1.不带头结点的尾插法:单独将第一个元素存入到结点中,再插在头指针后面,后面的结点正常插入。归并:so easy 自己看。2.归并排序:先划分,再归并。
2022-11-22 22:32:59 155
原创 2013软专算法题T1(折半查找)
利用折半查找方法在长度为n且按值有序的顺序表K中查找并删除数据元素item,编写算法并分析该算法的时间复杂度(要求给出较为详细的分析过程)1.设置low和high分别为一维数组的首尾标记,mid为(low+high)/2,即中值。2.当mid与带查找元素x相等时,则将mid及后面的数据元素均向前移一位。3.若mid大于x,则在mid的左边查找,将high置为mid-1。4.若mid小于x,则在mid的右边查找,将low置为low+1。解题思路:hht(详细描述折半查找)
2022-11-22 19:59:29 129
原创 2014软专算法题T2(平衡二叉树的判断)
平衡二叉树是任意结点左右子树的深度相差不超过1的二叉树,已知一棵二叉树采用二叉链表存储,结点结构为(left,data,right),root指向根结点。请编写算法判断二叉树是否是一棵平衡二叉树。
2022-11-21 21:54:49 159
原创 2015软专算法题T2
请按照如下要求设计一个算法:将整型一维数组A[n]调整为左右两个部分,使得左边所有元素均为奇数。右边所有元素均为偶数,要求算法时间复杂度为O(n),空间复杂度为O(1)。
2022-11-19 21:59:15 127
原创 2015软专算法题T1(无向图树)
请按照如下要求设计一个算法:将整型一维数组A[n]调整为左右两个部分,使得左边所有元素均为奇数。右边所有元素均为偶数,要求算法时间复杂度为O(n),空间复杂度为O(1)。
2022-11-19 21:37:53 167
原创 2016软专算法题T1(层次遍历、链队列)
2.判断在空结点之后,是否有非空结点,若有则返回0,无则继续判断,直至层次遍历完成。请设计一个算法判断二叉树T是否为一棵完全二叉树,若是,返回1;解题思路:构建二叉树;用data值为0的结点看作空结点。其中要将所有结点加入队列,包括空结点。
2022-11-19 19:20:45 110
原创 2017软专算法题T2 (双向链表,排序)
给定一个带表头结点的双向链表L,每个结点有4个数据成员:前驱结点的指针LLink、后继结点的指针RLink、数据的成员Data、和访问频度Freq:且已知双向链表L中结点一直按访问频度递减的顺序排列,即频繁访问的结点总是靠近表头:初始状态L中所有结点的Freq都为0.对双链表L的Locate(x)操作:每操作一次,将数据值为x的结点访问频度Freq加1.请设计一个算法实现对双链表L的Locate(x)操作,要求操作后L中结点仍按照访问频度的递减顺序排列。2.建立一个双向链表且按频度递减排列。
2022-11-16 21:45:42 200
原创 2017算法题T1(构建二叉树、先根遍历)
解题思路:首先要依据前序和中序序列递归构建出二叉树,再先根遍历二叉树,注意本题多出了求结点所在层次的要求。若以先根次序遍历一棵二叉树,请设计如下算法,输出所有结点的关键字及结点所在层次。
2022-11-16 20:45:43 122
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人