
数据结构
。。。
一米の阳光
这个作者很懒,什么都没留下…
展开
-
归并排序求解逆序对数
逆序对定义逆序对就是对于i<j且a[i]>a[j],这样的数对在序列中的个数。求解方法· 归并排序是采用分治的思想划分数列,然后将两路有序的数列合并。通过划分和合并的递归调用来完成排序。在合并的过程中,两个数列中的元素的相对位置不会发生改变(这里只是前后关系)。而且如果后一个数列B中某个元素b在需要先放入(优先于前一个数列A数列元素a),则a在b的前面,但是b小于a这样就会产...原创 2020-01-19 16:55:14 · 469 阅读 · 0 评论 -
徐州网络赛 B、So easy
So easyThere are n points in an array with index from 11 to n, and there are two operations to those points.1: q= =1 x marking the point xx is not available2: q= =2 x query for the index of t...原创 2019-09-07 19:35:27 · 200 阅读 · 0 评论 -
POJ2376(Cleaning Shifts)数据结构优化DP(线段树+DP)
Cleaning ShiftsTime Limit: 1000MS Memory Limit: 65536K农民约翰正在指挥他的N头牛进行清理工作。他将一天划分为了T个班次(1~T)。每头牛都只能在一天中的某一个时间段内进行不间断的工作。你需要帮助约翰排列出一个合理的奶牛的清理班次,使得每个班次都有奶牛在进行清理,而且动用的奶牛数量可以尽可能的少。输入格式第1行:两个空格隔开的整数...原创 2019-09-25 21:42:55 · 161 阅读 · 0 评论 -
树状数组学习
预备知识:lowerbit运算: 非负整数n在二进制数下从最低位开始到第一个为1的前几位构成的值。比如 10 二进制下 1010,lowbit(10)= 1010(2进制)=10(2进制)=2.实现: 设n的第一个为1的位为第k位,先把n取反则前k-1位都为1,k位为0,~n 加1则第k位为1,则前k-1都为0,再与n&运算,就可以取出前k位。由于 ~n=(-n+1)可得: ...原创 2019-09-26 19:59:45 · 182 阅读 · 0 评论 -
The Battle of Chibi---赤壁之战(DP+数据结构(树状数组))
题目:赤壁之战一个长度为N的序列A,求A有多少个长度为M的严格递增子序列。输入格式 第一行包含整数T,表示共有T组测试数据。 每组数据,第一行包含两个整数N和M。 第二行包含N个整数,表示完整的序列A。输出格式 每组数据输出一个结果,每个结果占一行。输出格式为“Case #x: y”,x为数据组别序号,从1开始,y为结果。由于数据可能很大,请你输入对109+7109+7取模后的结果。...原创 2019-09-28 21:41:55 · 583 阅读 · 0 评论 -
线段树模板
#include<iostream>#include<cstdio>#include<cstring>using namespace std;const int maxn=200010;int a[maxn+2];struct tree{ int l,r; long long pre,add;}t[4*maxn+2];v...原创 2019-09-19 21:57:14 · 78 阅读 · 0 评论