- 博客(9)
- 收藏
- 关注
原创 2021-07-22
7-1 Maximum Subsequence Sum (25 分)这道题是浙大的一个最大子列和的改版,我用的是在线处理,其实这个题比较坑,主要是它的坑太多了,刚开始一直错,直到最后看了一位博主的博客才恍然大悟。代码块:#include<iostream>using namespace std;int main(){ int a[10000],n; cin>>n; int temp=0,sum=-1,tempindex=0,min_index=0,
2021-07-22 02:21:35
74
原创 分治法的应用
分治法原理:将原问题分解为几个规模较小但类似于原问题的子问题,递归地求解这些子问题,然后再合并这些子问题的解来建立原问题的解。分治模式在每层递归时都有三个步骤:1.分解原问题为若干子问题,这些子问题是原问题的规模较小的实例。2.解决这些子问题,递归地求解各子问题。然而,若子问题的规模足够小,则直接求解。3.合并这些子问题的解成原问题的解。用语言描述比较抽象,我直接用题来作为例子,leetcode中53题,最大子序和问题。给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少
2021-07-15 09:14:25
492
原创 2021-07-13
快速排序快速排序是一种排序算法,它相比于其它排序算法综合来说它的平均时间复杂度是最小的,那么接下来就说说怎么实现它吧。原理:首先快速排序是基于分治法的思想,你要先找到一个基准点,这个基准点是要排序的元素中随机的一个,然后把比基准点小的放到基准点的左边,比基准点大的放到基准点的右边,实现代码如下:int pivorate(int a[],int l,int h){int pi=a[h]; int i=l; for(int j=l;j<h;j++){ if(a[j]>pi){ in
2021-07-13 19:49:37
69
原创 英文字典树
字典树又叫前缀树,它是一种数据结构,但某些时候,又把它视为一种算法,字典树有好几种,这里我只讲英语字典树。如下一个字典树:字典树和树一样,首先都有一个根节点,上面这个图的根节点就是start,它不表示任何字母,然后它的孩子节点分别表示一个字母,字典树从它的根节点到每个叶子节点分别表示一个单词。说到这里其实我们心中对字典树就有一个大概的了解了,它就是来存储单词的。但是说着容易,那么我们怎么用计算机语言来表示字典树呢?首先要存储字典树,那肯定需要一种数据结构来存储,这里我是用结构体数组来存储的,你也可以
2021-07-12 18:44:44
181
原创 2021-04-16
[蓝桥杯][2019年第十届真题]完全二叉树的权值题目描述给定一棵包含 N 个节点的完全二叉树,树上每个节点都有一个权值,按从 上到下、从左到右的顺序依次是 A1, A2, · · · AN,如下图所示:现在小明要把相同深度的节点的权值加在一起,他想知道哪个深度的节点 权值之和最大?如果有多个深度的权值和同为最大,请你输出其中最小的深度。注:根的深度是 1。输入第一行包含一个整数 N。 第二行包含N个整数A1,A2,··· AN。对于所有评测用例,1≤ N ≤100000,−100000≤ A
2021-04-16 09:46:44
57
原创 2021-04-07
输入n(n<=100)个整数,按照绝对值从大到小排序后输出。题目保证对于每一个测试实例,所有的数的绝对值都不相等。输入输入数据有多组,每组占一行,每行的第一个数字为n,接着是n个整数,n=0表示输入数据的结束,不做处理。输出对于每个测试实例,输出排序后的结果,两个数之间用一个空格隔开。每个测试实例占一行样例输入3 3 -4 24 0 1 2 -30样例输出-4 3 2-3 2 1 0这个题比较坑,当输入为0时结束,如果你在代码中while(n&&saanf("%
2021-04-07 16:35:38
129
原创 2021-02-22
1203: 做幻方Apple最近迷上了做幻方,Apple还是个中高手,只要你说个奇数N就能把NN的幻方做出来。其实你可以比他做得更好的。Apple总是画得很乱,而你可以利用程序排得很整齐_ 幻方的要求:每一行,每一列,还有两条斜线上数字的和都相等.*输入每行一个奇数N(0< N < 30),输入0结束输出输入一个奇数,输出一个幻方,顺序参照样板输出;同一列的数右对齐,数与数用一个空格分开;输出完以后加一个回车。样例:51011 18 25 2 910 12 19 21
2021-02-22 17:27:53
148
原创 2021-02-17
字符串*长度不超过nn,且包含子序列“us”的、只由小写字母构成的字符串有多少个? 答案对10^9+7取模。所谓子序列,指一个字符串删除部分字符(也可以不删)得到的字符串。例如,“unoacscc"包含子序列"us”,但"scscucu"则不包含子序列"us"这里有两种方法方法1:找规律用f[i]表示长度为i的字符串中us的个数f[i]=f[i-1]*26+(i-1)*25^(i-2);#include<stdio.h>typedef long long ll;const
2021-02-17 12:47:21
236
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人