自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(70)
  • 收藏
  • 关注

原创 bzoj 2741 分块 + 可持久化trie

题意是求  【a,b】 中 的最大字段异或和。 。看了神牛题解才会的。首先将 区间  转化成   前项和 中两个的异或值。  也就是 将 1- n 个数a[ ],转化成 0-n 个数的数列b[ ]。  也就是b[ r ] ^ a[ l ]  = a[l+1] ^ a[l+2]^...^a[ r ]b[2] ^ b[ 0 ] = a[1 ]^a[ 2 ] 在查

2013-11-03 13:29:58 2750

原创 bzoj 3166: [Heoi2013]Alo 可持久化trie

题意 : 选取一个区间 区间中的第二大的那个数 可以跟 区间中的任意一个数 进行 异或得到一个区间内的最大的值。 问任意选取区间,问最大的那个 异或的值是多少。 ? 枚举每个数是 区间中的 第二大的值,  找到 可行的区间,可行区间就是 : [ 左边第二个比这个大的数的下标 +1,右边第二个比这个数大的数的下标-1];然后 可持久化 tire ,求 区间  对于 a 的

2013-10-31 19:27:52 2431

原创 bzoj 3261 最大异或和 可持久化trie树

查询 i 属于【l,r】 中  p[i] ^ p[i+1 ] ^ ....^p[n]^x 中的最大值b【i】 为 p【1】^p【2】^……^p【i】 的异或值。也就是查询   b【i-1】^ b【n】^ X    (i属于 [l,r])也就是变成在 一个区间中查询 对于A = (b[n]^ X)的最大的异或值。所以应该维护 b【i-1】。trick 对于 i =1  b

2013-10-30 22:34:00 5677

原创 spoj COT 可持久化数据结构 (LCA模版)

查询树链第K大 。                 每个版本的线段树维护的是 从这个节点到 根的 树链的版本, 由于树链第K大,在统计比X 小的数个数时 是可以 进行加减法运算的,所以  就可以用可持久化数据结构。维护个数时 , sum = f(a) + f(b) - f(c) -f(d)    : c 为 a,b 的最近公共祖先, d 为 c 的父亲节点。这样就是 四个版本运

2013-10-30 10:26:34 1535

原创 LA 6348 数据结构

想法题:   坑爹细节没想清楚就敲了 。。  整体的思路 在更新的时候出了问题。 10WA->AC 。。    战绩成渣了。。。 弱渣的艰辛奋斗史。,。。    题意是 : 给出 n个矩形,问每一个外边的那个矩形 的编号。 (0 ->  n-1)  性质: 对于矩形 a,b   ,若 a.x2 b.x1的矩形 同样不会在a 矩形中。(单调形)。性质2:若 a

2013-10-29 15:17:32 717

原创 bzoj 3207 hash + 可持久化数据结构

思路: 把长度为K 的串 hash 之后,就变成 查询区间中有没有某个数。不知道为什么  RKHash 的思想 hash 时一直不过, 暴力 O(NK) hash 时 可以通过。 // 。。。bzoj 3207 打死不过 给跪了#include #include #include #include #include #include #inclu

2013-10-28 17:22:11 1801

原创 bzoj 2653 middle 二分+ 可持久化数据结构(可持久化感悟)

本以为可持久化数据结构掌握的还不错,通过此题 我顿时觉得 可持久化数据结构比我想想的要强大。本以为只有在用到  树上的减法才会用到可持久化数据结构的,如动态区间第K大 这种 明显就是用了 区间属性 可以  两个 前项和的属性 相减得到 。此时 可持久化数据结构是 按 下标建树,构建了n个版本的树。第 K 棵树 表示的是 区间 1-K 的属性。第K版本的意义并非只有 区间 1-K。完

2013-10-26 22:46:12 3549

原创 bzoj 2120 数颜色 树状数组套可持久化数据结构。

查询区间l,r 中 不同值的个数, 修改操作是 单点更新。如果没有更新,此题直接 离线。有更新的话,就只有 树状数组套 平衡树 或者 可持久化数据结构。 问题一 。统计 在 【1,l-1】中都多少个值没有出现在 【l,r】。也就是统计 【1,l-1】中有多少个值,在【1,r】中仅出现在 【1,l-1】。统计 对于ai ,它的下次出现与ai 值相同的点的下标是多少。 相当于 把所

2013-10-16 12:25:56 2660

原创 bzoj 1901 动态区间第K大 树状数组套可持久化数据结构

空间复杂度 nlgnlgn  在zojMLE  大视野 AC第一次用树套树。。写的 不优雅。/************************************************************** Problem: 1901 User: OceanLight Language: C++ Result: Accepted

2013-10-14 20:06:42 2318

原创 poj 2104 K-th Number 静态区间第K大 可持续数据结构

静态区间第K大。。首先应该会 集合第K大的方法。 按值建树,[i,j] 分成【i,p】 【p+1,j】 线段树中的均分。 如果sum(i,p)>=k ,说明第k大在左区间,接下来在左区间找第k大,否则 在右区间找 第k-sum(i,p)大。。利用可持续数据结构 相减的性质, 每次求出在下标 left 到right ,值在 【i,p】的数的个数。#include #in

2013-10-14 20:03:35 1460

原创 可持久化线段树

给定一个序列 求在 li ri 之间的 数值大小在 【a,b】 的数的个数 有多少个 ?山东省省赛题目。  当时离线直接水过。  http://acm.upc.edu.cn/problem.php?id=2224#include #include #include #include #include #include #include #include #inc

2013-10-12 19:58:27 3558

原创 sgu 114 三分

题意: 在一条直线上 到每个点pi 个人,位置xi 。 建一个中转站 ,每个位置上的 不高兴 的值 就是 pi*( xi  - X)   ,X 为 中转站。问不高兴的值的总和最小是多少。对一个位置 向两边的变化速率的分析的。  一个点向右的速率是  左侧人数和 减去 右侧人数和。随着点从左端向右端移动的过程中 速率由负值一直增大, 则总和的变化就是 下凸曲线,就是三分曲线。

2013-10-10 21:36:48 707

原创 sgu 204

此题就是个坑题, 卡精度,eps  1e-12  才可过  并且最终答案 f(left) 不可行。。  只能是 最终left right mid 中的小的值。。。话不多说,代码#include #include #include #include #include #include #include #include #include #include

2013-10-10 19:36:27 801

原创 hdu 2298 Toxophily 公式 或者 三分+二分。

射箭 为射到靶子的最小出手角度。 出手速度  、靶子的位置 给出。公式推导。三角函数 推导 求解。最终公式   sin(2*p -q ) = (g*a*a + b)/(v*v * sqrt(a*a + b*b))a , b 为靶子的坐标 v是出手速度。p 要求的角度cos q = a/ sqrt(a*a + b*b);#include

2013-10-09 15:58:41 671

原创 hdu 4686 Arc of Dream 矩阵快速幂

#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include

2013-10-08 01:01:03 915

原创 hdu 3306 Another kind of Fibonacci 矩阵快速幂

Now we define another kind of Fibonacci : A(0) = 1 , A(1) = 1 , A(N) = X * A(N - 1) + Y * A(N - 2) (N >= 2).And we want to Calculate S(N) , S(N) = A(0)2 +A(1)2+……+A(n)2.s( n ) = s(n-1) + An^2 

2013-10-08 00:25:08 991

原创 hdu 3400 Line belt

先求一个点到  一条线段的最小值。从P 到B . 从 c 到 A  肯定是增加的 。设 cd 为x ,cb 是 L2  pc 是L1线段上 速率是 k2   其余为 k1t = sqrt(L1*L1 + x*x )/k1  + (L1 -x);求导。  f = 2/(k1 * sqrt(L1 *L1  + x*x)) *x - 1/k2随着x 的增大 f 逐

2013-10-07 15:30:50 766

原创 ZOJ 3203 Light Bulb

设 人离墙的距离是 x   则 F(x) =(H*x - D*h )/(x - D) + x;分析易得 是   a/x + x 小于 0 的部分 , 再加上一个常数。但是重要的一点是 : F(x) 的定义域并不是 0到 D 。  而是 0到 D*h /H  .当超出这个区间时,在墙上部分  (H*x - D*h )/(x - D) 变成负值。无意思。 在三分求函数时一定要注意定

2013-10-06 23:13:20 619

原创 poj 3301 Texas Trip 三分

求n个点的最小包围正方形。对于其中的任意两个点构成一条边,  包围这条边 的正方形的边长,分析易得, 随着这条边的旋转角度的变化是  下凸曲线 ( 先下降后上升 ) 。然而 对于 n*(n-1) 条边的状态和, 对于 旋转角度 x  ,所有边的状态和 是 求max (分析易得)。所以 n 的下凸曲线 的max 构成的曲线 还是下凸曲线。因此对于所有的点 通过旋转 求的面积

2013-10-06 14:07:19 1054

原创 hdu 3756 Dome of Circus 三分

求 能包围 n个点的 最小体积的圆锥 的 高 和 底面半径。对于一个点而言,通过分析 体积公式。 求导后,公式是单点的。 所以 体积公式是 先下降 后上升 (推导和分析好一会)。而对于n个点, Fi (h) 为高为h 时最小体积。 对于 高 h,得到 最小 V  = max(  Fi (h))    i 为 1--n 分析的 n 个 对钩函数 的max 也是对钩函数 (这里

2013-10-06 01:11:06 737

原创 poj 3737 UmBasketella 三分

水题一只。 已知 圆锥表面积 求最大体积  底面r 和 高推公式。    r^2 = s^2/( h^2*PI^2 + 2*PI *s )v = 1/3 *PI Ir^2 *h 发现   公式是分数形式 上边是常数, 下边是对钩 函数   a*x + b/x  的格式。 分析单调性 。直接求导 出结果 或者 三分#include #include #in

2013-10-05 12:54:26 1172

原创 子序列个数

写这个题完全是 由于自己竟然没想到这么做。。。  o(︶︿︶)o 唉。。。子序列的定义:对于一个序列a=a[1],a[2],......a[n],则非空序列a'=a[p1],a[p2]......a[pm]为a的一个子序列,其中1例如:4,14,2,3和14,1,2,3都为4,13,14,1,2,3的子序列。 对于给出序列a,有些子序列可能是相同的,这里只算做1个,要求输出

2013-10-04 17:04:49 3514

原创 LA 6135 - Environment Protection simpson积分

求深度 d 使得从深度0到深度d 的middle layer的面积是 A。一开始读错题意。 所以代码中的 A 是深度 ,ans 才是面积A。 变量名不一致。#include #include #include #include #include #include #include #include #include #include #include

2013-10-04 16:15:09 952

原创 hdu 1071 simpson 求积分

根据点 p1     y = a(x- x1 )^2 + c  在根据一个点 求出 a ,c。 根据 p2 p3 求出直线。 直接simpson 。#include #include #include #include #include #include #include #include #include #include #include

2013-10-04 14:07:35 949

原创 hdu 1724 自适应 simpson 算法 求积分

题意: 给出椭圆, l  和 r  求 在这之间的椭圆的面积。#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #

2013-10-03 20:48:54 3903

原创 zoj 2614 Bridge 积分 (公式 和 simpson ) + 二分

问题最终转化成 过原点和 (x,y) 的抛物线 y = k*x^2  ,知道 (0,0)到(x,y)的曲线长度 s和 x 的值,求y 的值。二分 y, 求 长度(用到积分)。直到接近 s 为止。#include #include #include #include #include #include #include #include #in

2013-10-01 15:50:46 1245

原创 hdu 4035 Maze

题意 : 给定一棵树型迷宫,一开始在 1 号节点, 在  第i 个节点 时 有 Ki 的概率被杀死 回到 1 号节点,  Ei 的概率 逃出这个 迷宫 ,  还有 1- Ki -Ei 的概率到达相邻的点,到达相邻的点的概率是相等的, 包括 父亲节点, 。问逃出这个迷宫时 ,走过的树上的路径的期望是多少?对于 点i  p = (1 - Ei - Ki )/ m;  m 是 相邻的点的

2013-08-29 23:15:38 630

原创 poj 3744 Scout YYF I

题意 : 初始状态 你在 1 这个点上, p 个概率向前走一步, 1-p 的概率 向前有 两步。 现在,线上分布这 n 个雷, 也就是这n 个格子不能走,问成功走出这条路的概率。n概率DP : 考虑到 雷的坐标比较大 ,不可以直接DP ,但是 n 比较小,可以分段,对没有雷的坐标 x -> y ,   f[ i ] = f[ i -1] *p + f[ i-2 ]*(1 -

2013-08-27 23:13:41 598

原创 hdu 1525 Euclid's Game

给出  a,b , 每个人 可以 将 大的数 可以减去 小的数的倍数,但不能变成负的, 谁先出现 x ,0 的状态 谁赢。假设 当前可以选择的倍数k 是大于2 的, 那么这个状态就是必胜的。  a,b 转化成  b ,a%b 时, 若b, a%b 是必胜, 只要转化成 a%b+b , b 这个状态。若 b,a%b 必败, 则 直接转化成 b ,a%b 。 那么 决定先手胜负

2013-08-21 00:11:48 632

原创 hdu 1536 S-Nim

题意:给n个数的集合s, 再给m 组数据,每组表示 k 堆石子,每次可以取的个数只能是集合s中的数量。问先手胜还是输? 简单的SG 函数 求知 ,无规律,直接DP 求得所有解即可 。 在求值时 有两种方式 。 第一种先求出所有解。把所有的可能的数都求出来。还有一种 是 递归 求解。 只是在用到时, 求解。 依次求其子状态的值, 最终求出当前一个值得解,但是其子状态也已经求出

2013-08-18 16:56:00 704

原创 zoj 1024 Calendar Game

题意是: 日历翻页, 可以翻到下一天,也可以翻到下一个月的同一天, 如果没有同一天就不能翻, 其实日期 1900 1 1 结束日期 2001 11 4 。由于 状态比较少 , 直接 DP 就可破。#include #include #include #include #include #include #include #include #include #inc

2013-08-18 13:13:49 778

原创 poj 1830 开关问题 高斯消元

题意是 给一些开关的初始状态 0 或1 ,在给出终止状态, 在给出相关的变化规则,规则: x 变化 则  y 也变 , x y 读入。输出有多少种开关的拨动情况,使初始状态变成终止状态。此问题  很容易转化成  高斯消元 解 异或方程组。t =  方程组的自由化的个数,则结果就是  2^t .#include#include#include#include#includ

2013-08-14 00:58:56 841

原创 hdu 4628 Pieces 集合DP

给一个长度为 n ( for(int subset = set ; subset >0 ;(--subset)&=set)枚举 set 的子集  #include #include #include #include #include #include #include #include #include #include #include #inclu

2013-08-10 22:03:07 582

原创 poj 1222 EXTENDED LIGHTS OUT高斯消元。

把每个格子的状态看成一个变元。列出30个状态方程。 高斯消元 求解异或方程即可。#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #inc

2013-08-07 14:05:42 613

原创 hdu 4335 What is N? 数论

题意  给定  b,p,m  求 满足 n^(n!) %p =b  ( 0m  的范围 2^64 -1   这里是个trick。。。 利用降幂的公式 。    a^x %p= a^( x%phi(p) + phi(p)) %p  就可以把指数降到 1 - p 这个范围内。 对于  kp+1   ~  (k+1)p    (k>1)这个范围中的n 可以 映射到 1 - p

2013-07-31 23:20:37 653

原创 spoj 4491. Primes in GCD Table 莫比乌斯反演

http://www.spoj.com/problems/PGCD/题意: 给出 a ,b  (1如果gcd(x ,y) = 1; 这个问题比较好求。g(n) 为  gcd(x ,y) = n 的方案数。f( n )  为  gcd(x ,y) = b ,其中 n|b 的所有方案数f( a ) =  sigma( g( b ))   条件  a|b;g( n ) =

2013-07-31 15:54:57 1474

原创 uva 861 Little Bishops

问 在n*n 的国际象棋棋盘中 能放 k个象的方案数?国际象棋中 白格 和 黑格 中的象不能互相攻击, 就可以 把这两部分拆开来看,分别统计由于象是斜着攻击的,我们可以把棋盘旋转45 度,然后对 格子做 水平和竖直方向的交换(不会影响方案数)。把白格子弄出来就是               *          *  *  *      *  *  *  *  * 

2013-07-29 10:48:18 1149 1

原创 zoj 3687 The Review Plan I

题意抽象出来就是 在  n*n 的 棋盘中 加了 m 个禁位, 放置 n 个棋子 ,每两个棋子不在同一行 同一列,问有多少中放置方式 ?trick  :    M 个禁位 中 有相同 坐标的点。解法 : 利用 有禁位的排列的公式 (容斥原理):  n! - r1 *( n-1)! + r2*(n -2)! - r3*(n-3)! +..........ri  指 在禁区中 选

2013-07-29 00:30:07 984

原创 zoj 3688 The Review Plan II 组合数学

我的解法比较慢。 复杂度 O(nlgn) 有O( N )的解法  递推公式看不懂此题是 有 禁位 的排列 。相当于在 n*n的棋盘中  设置了 2n 个 禁位。 有 k个在 这 2*n 个禁位中 的排列数  Pk。 这 2*n 个 禁位 可以看成  一个有 t =2*n 个点 形成的环中 ,选出k个不相邻的组合数。可以通过 枚举圆上的 点 就将 圆拆分成了链。   先选取一

2013-07-27 15:35:11 1199

原创 hdu 4045 Machine scheduling 组合数学

题意是 有n台机器,从中选出r台机器,满足两台的编号差不小于k , 并将这r台,分成m组, 问有多少种组合方式?第二部分 就是裸的 第二类斯特林数。 重点是第一部分 :     问题 抽象出来就是  : 从 数字 1 - n 种,选出 r 个 ,相邻的两个差不小于k 。     这个题的解法有两种。 一种是 dp   一个一个递推。      第二种就是  组合公式。

2013-07-27 13:51:46 799

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除