从前往后DP;先离散化;假设DP到第i个位置。las[i]表示第i种颜色最后一次出现的位置。t[k]表示满足w(t[i],i)==k的最小下标,w(a,b)表示从a,a+1,a+2......b这段区间的不同颜色的数量是多少。然后每次先更新t数组,再更新dp数组,k只需从1枚举到sqrt(n),所以...
分类:
其他好文 时间:
2014-09-25 15:53:29
阅读次数:
226
链接:http://poj.org/problem?id=3368
题意:给你一个序列,n个数,序列是有序的,q个询问,问区间(l,r)中出现频率最高的数字出现了几次。
思路:因为序列是有序的,可以把序列相同部分合并,然后存成一个新的数组,并增加一个值num表示数字出现的次数,找区间(l,r)中出现频率最高的数字,就是找num的最大值了,区间最大值,RMQ可做,线段树也可做,我用RMQ...
分类:
其他好文 时间:
2014-09-25 14:14:28
阅读次数:
147
题目链接:Codeforces 468C Hack it!
题目大意:给据题目定义,找到l,r,使得solve(l,r) % a = 0.
解题思路:f(x + 1e18) = f(x) + 1,所以有solve(x + 1, x+1e18) = solve(x, x+1e18-1) + 1,假定x为0,我们求出solve(0, 1e18) % a = k,那么a - k,即为区间需要...
分类:
其他好文 时间:
2014-09-25 12:40:36
阅读次数:
408
题意:有t组测试数据,有n张海报,海报按题目给出的顺序覆盖,问最后能看到几张海报。这道题刚开始没想出来,,最后看的题解,,从最后一张海报开始处理 一下子就明白了。线段树区间更新搞之。(当然离散化是必须的)预处理区间所有值都置0,然后从最后面开始,每次求 l[i] ~r[i]区间的和,如果小于r[i]...
分类:
其他好文 时间:
2014-09-25 03:26:18
阅读次数:
285
题目大意:给你一个区间【L,U】,求出从L到U之间素数序列中,连续两个素数差值最大
的最小的两对素数对,但其中(1<=L< U<=2,147,483,647),但区间【L,U】距离不超
过1000000
思路:因为L,U的值太大了,普通素性判断和素数筛法都不可行,所以可以考虑先筛选
一次,筛出50000以内的素数,然后用50000以内的素数再次筛选出区间【L,U】的素
数。第一次素数筛法比较简单,主要是第二次筛法,分别判断【L,U】中每个数是50000
以内的素数的多少倍,若为1倍,则从2倍开始筛选。若不为...
分类:
其他好文 时间:
2014-09-25 01:17:57
阅读次数:
394
求解的个数
对应ax+by=c 根据裴蜀定理c%gcd(a, b) == 0有解 假设d = gcd(a, b)
用扩展欧几里德求出方程aax+bb*y=cc 的解x0 y0
那么原方程的一个解就是x0*c/d和y0*c/d
通解为
x = x0+i*b/d
y = y0+i*a/d
分别讲x1 x2 带入得到i 满足最小的左区间 y1 y2一样
#include
#inclu...
分类:
其他好文 时间:
2014-09-25 00:05:08
阅读次数:
447
1 //Accepted 3728 KB 1079 ms 2 //线段树 区间合并 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 using namespace st...
分类:
其他好文 时间:
2014-09-24 23:30:47
阅读次数:
265
Uva 1232 SKYLINE (线段树 + 区间更新)题意: 按照顺序在地面上建造放在,每个房子的高度为h,操作 l r h 表示 在(l,r] 区间建立一个高度为h的房子。统计每次建立完房子之后的overlap值之和overlap值表示[ 修完一座房子之后,统计它在多长的部分是最高的(可以和其...
分类:
其他好文 时间:
2014-09-24 22:57:57
阅读次数:
263
如果静态查找表是一个有序表,则可以使用折半查找。
折半查找的过程是:先确定待查记录所在的范围(区间),然后逐步缩小范围直到找到或找不到该记录为止。折半查找过程是以处于区间中间位置记录的关键字和给定值比较,若相等,则查找成功,若不等,则缩小范围,直至新的区间中间位置记录的关键字等于给定值或者查找区间的大小小于零时(表明查找不成功)为止。
关键字key与...
分类:
其他好文 时间:
2014-09-24 22:40:38
阅读次数:
213
1 /* 2 题意:给一个长度为n的序列, 从中选择长度为m的k个区间(任意两个区间不会有公共部分) 3 使得所选择的区间的和最大! 4 思路:这是一种很常见的dp 5 6 dp[i][j] 表示的是前 i 个数选择 j 个 长度为m区间的最大和! 7 ...
分类:
其他好文 时间:
2014-09-24 22:04:07
阅读次数:
208