题目链接:hdu 5151 Sit sit sit
区间dp,dp[i][j]表示从i到j的方案数,每次枚举i~j之间放最大值的位置,左右颜色不同的位置不能放最大值。
#include
#include
#include
using namespace std;
const int maxn = 105;
typedef long long ll;
const ll mod =...
分类:
其他好文 时间:
2015-01-03 22:28:31
阅读次数:
213
1.冒泡排序:
思路:将相邻的逆序元素交换为顺序排列,直到整个序列有序,算法如下:
/**
* 冒泡排序-最初实现,时间复杂度O(n^2)
* @param arr 待排序的数组
* @param lo 待排序区间的起始位置
* @param hi 待排序区间的结束位置
*/
public static void bubbleSort(int[] arr, int lo, int ...
分类:
编程语言 时间:
2015-01-03 17:22:28
阅读次数:
242
这个题本来我是想练堆用的,结果堆没练出来,倒是练了练线段树。
此题属于那种看起来特别简单,一做起来做出翔的那种;交了六遍,对拍了N年才A。
主要需要注意的是这么几点:
1、节点保存什么信息?
题目中让求的是距离最大,但这玩意儿在线段树中不太好办;
我一开始想当然地写成了r-l式的距离,结果合并信息的时候呵呵了。
更好的做法是保存区间中连续一段空橱子的个数:①设置变量意义时一定要从易于理...
分类:
其他好文 时间:
2015-01-03 14:43:09
阅读次数:
169
天啊,竟然忘了买春节后回上海的票。。。只能买区间票,中途再补票了。。。...
分类:
其他好文 时间:
2015-01-03 13:16:20
阅读次数:
196
题目描述:
有一个长度为整数L(1
现在要移走一些树,移走的树的区间用一对数字表示,如 100 200表示移走从100到200之间(包括端点)所有的树。
可能有M(1
输入:
两个整数L(1
接下来有M组整数,每组有一对数字。
输出:
可能有多组输入数据,对于每组输入数据,输出一个数,表示移走所有区间的树之后剩下的树的个...
分类:
其他好文 时间:
2015-01-03 09:29:00
阅读次数:
145
连号区间数
时间限制:1.0s 内存限制:256.0MB
问题描述
小明这些天一直在思考这样一个奇怪而有趣的问题:
在1~N的某个全排列中有多少个连号区间呢?这里所说的连号区间的定义是:
如果区间[L, R] 里的所有元素(即此排列的第L个到第R个元素)递增排序后能得到一个长度为R-L+1的“连续”数列,则称这个区间连号区间。
...
分类:
其他好文 时间:
2015-01-02 22:28:07
阅读次数:
693
解题报告http://blog.csdn.net/juncoder/article/details/38102391对于给定的数组,取对数组中的一段进行翻转,问翻转后是否是递增有序的。思路:仅仅要找到最初递减的区域,记录区域内最大和最小的值,和区间位置。然后把最大值与区间的下一个元素对照,最小值与区...
分类:
其他好文 时间:
2015-01-02 22:26:50
阅读次数:
294
题意:给出N和M,统计区间x ∈ [2, N!],x满足所有素因子都大于M的x的个数。分析:首先将问题转化一下,所有素因子都大于M 等价于 这个数与M!互素对于k大于M!,k与M!互素等价于 k % M! 与 M!互素所以我们可以求出φ(M!)(φ为欧拉函数) 然后乘以N! / M!,最后答案再减一...
分类:
其他好文 时间:
2015-01-02 22:21:37
阅读次数:
322
再填个坑。 动态维护区间第K大(带单点修改) 首先裸的区间第K大我们是用的【前缀和】思想,实现O(n)预处理,O(1)找树查询,那么如果是动态的呢?我们可以利用树状数组(BIT)的思想,进行O(logn)的修改,O(logn)的查询(当然由于是在线段树上做,都各需要再乘logn的复杂度) 也就是.....
分类:
其他好文 时间:
2015-01-02 22:18:48
阅读次数:
144
可持久化线段树 可持久化线段树是一种神奇的数据结构,它跟我们原来常用的线段树不同,它每次更新是不更改原来数据的,而是新开节点,维护它的历史版本,实现“可持久化”。(当然视情况也会有需要修改的时候) 可持久化线段树的应用有很多,仅以区间第K大这种简单的问题来介绍这种数据结构。 我们原本建立的线段...
分类:
其他好文 时间:
2015-01-02 22:16:55
阅读次数:
237