题解列表

筛选

优质题解

分治归并求逆序对个数(java)

##思路分治的思想。总的逆序数=左子数组的逆序数+右子数组的逆序数+横跨两个有序子数组的数产生的逆序的个数。###对于子数组的逆序数:我们可以递归不断地将数组拆成两半,直到子数组长度为1,长度为1的子数组逆序数就是0;所以我们只需要累加上横跨两个有序子数组的数产生的逆序的个数就行了。

最大段子和求法

解题思路:我们需要额外设立一个二维数组来存放每一列数组的和如下所示:比如先假设一个二位数组:123456789那么这个额外的数组就应该是:123579121518代码实现:for(n=1;n<=j;n++){for(m=1;m<=k;m++){if(n==1){b[n][m]=a[n][m];cont

LikeWater - 1826: 蓝桥杯2015年第六届真题-切开字符串(时间紧任务重,就不写很详细了,用了set容器去重)

##set容器简介如下:###set容器基本概念**1、简介:所有元素都会在插入时所有元素都会在插入时自动被排序(自动去重/可重复插不报错但是去重了,默认从小到大排)****2、本质:set/multiset属于关联式容器,底层结构是用二叉树实现****3、set和multiset区别set不允许容器

2973: 出现次数超过一半的数

```cpp//这道题我是用桶的思想去做的//有一点需要注意,是n的范围,从-50开始,但数组的下标是不会有负数的所以加上50即可#includeusingnamespacestd;inta[1001],b[2000],n,f;intmain(){cin>>n;for(inti=1;i>a[i];b[

2917:奇数单增序列

```cpp//这道题就输出有点坑,其他都还好#includeusingnamespacestd;intn,b[1001],a[1001],k,s;intmain(){scanf("%d",&n);for(inti=1;i

自定义函数之数字后移

摘要:解题思路:运用循环队列思想;空间换时间。注意事项:取余时公式参考代码:#include <stdio.h>#include <iostream>using namespace std;int main……

编写题解 3035: LETTERS

摘要:解题思路:注意事项:     这个题目每个map[i][j]遍历顺序不同会影响结果,     不要使用vis[][]来记录是否走过!参考代码:import java.util.ArrayList;im……