自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 bzoj1010: [HNOI2008]玩具装箱toy

题面:P教授要去看奥运,但是他舍不下他的玩具,于是他决定把所有的玩具运到北京。他使用自己的压缩器进行压缩,其可以将任意物品变成一堆,再放到一种特殊的一维容器中。P教授有编号为1...N的N件玩具,第i件玩具经过压缩后变成一维长度为Ci.为了方便整理,P教授要求在一个一维容器中的玩具编号是连续的。同时如果一个一维容器中有多个玩具,那么两件玩具之间要加入一个单位长度的填充物,形式地说如果将第i件玩具到

2015-06-30 16:30:50 396

原创 bzoj1492: [NOI2007]货币兑换Cash

货币兑换  问题描述     小 Y 最近在一家金券交易所工作。该金券交易所只发行交易两种金券:A 纪 念券(以下简称 A 券)和 B 纪念券(以下简称 B 券)。每个持有金券的顾客都有 一个自己的帐户。金券的数目可以是一个实数。     每天随着市场的起伏波动,两种金券都有自己当时的价值,即每一单位金券 当天可以兑换的人民币数目。我们记录第 K 天中 A 券和 B

2015-06-29 20:29:01 2206

原创 bzoj3510: 首都

题面:在X星球上有N个国家,每个国家占据着X星球的一座城市。由于国家之间是敌对关系,所以不同国家的两个城市是不会有公路相连的。 X星球上战乱频发,如果A国打败了B国,那么B国将永远从这个星球消失,而B国的国土也将归A国管辖。A国国王为了加强统治,会在A国和B国之间修建一条公路,即选择原A国的某个城市和B国某个城市,修建一条连接这两座城市的公路。 同样为了便于统治自己的国家,国家的首都会选在

2015-06-25 10:16:39 942

原创 4103: [Thu Summer Camp 2015]异或运算

题面:给定长度为n的数列X={x1,x2,...,xn}和长度为m的数列Y={y1,y2,...,ym},令矩阵A中第i行第j列的值Aij=xi xor  yj,每次询问给定矩形区域i∈[u,d],j∈[l,r],找出第k大的Aij。(n思路:因为n比较小,所以维护第二维,然后暴力询问第一维。#include#include#includeusing namespace std;c

2015-06-23 21:01:05 890

原创 bzoj3166: [Heoi2013]Alo

题目大意:给定一个数列,求一个区间[l,r],区间次大值与区间其他任意数的异或值最大,输出这个最大值;思路:看到xor最大,就想到可持久化trie。然后我们先要预处理出对于每个数x,区间次大值为x的最大区间是什么。求区间左端点时,我们只要找到前面比x大的第二个数位置a,然后区间左端点就是a-1,右端点同理。于是我们可以用set搞搞,由于暴力也能过,所以就偷了一下懒...预处理完成后,我们只要对

2015-06-23 20:41:07 752

原创 bzoj3261: 最大异或和

题面:给定一个非负整数序列 {a},初始长度为 N。       有   M个操作,有以下两种操作类型: 1 、A x:添加操作,表示在序列末尾添加一个数 x,序列的长度 N+1。2 、Q l r x:询问操作,你需要找到一个位置 p,满足 l a[p] xor a[p+1] xor ... xor a[N] xor x 最大,输出最大是多少。  思路:因为是xor,所以用

2015-06-23 20:32:52 870

原创 bzoj2683: 简单题

题目大意:给你一个N*N(N思路:CDQ分治的第一题。前半部分和后半部分分别递归处理,然后处理前半部分的修改对后半部分询问的影响,这也是CDQ分治与一般的分治不同的地方。第一维排序,第二维用树状数组维护。#include#include#includeusing namespace std;const int maxn=500010,maxm=200010; int n,m,cn

2015-06-23 15:27:31 814

原创 bzoj3651&3081: 网络通信

3651: 网络通信Time Limit: 10 Sec  Memory Limit: 256 MBSubmit: 50  Solved: 37[Submit][Status][Discuss]Description   有一个由M 条电缆连接的 N 个站点组成的网络。为了防止垄断,由 C 个公司控制所有的电缆,规定任何公司不能控制连接同一个站点的两条以上的电缆(可以控制两

2015-06-22 21:47:05 437

原创 bzoj3282: Tree

#include#include#include#define ls c[x][0]#define rs c[x][1]using namespace std;const int maxn=300010;int n,m; struct LCT{ int c[maxn][2],fa[maxn],rev[maxn],sum[maxn],val[maxn]; bool

2015-06-22 21:39:24 453

原创 bzoj2631: tree

话说bzoj上叫tree的题可真多...题目大意:路径加,路径乘,路径求和,加边删边。思路:动态树搞搞就行了,两个标记要注意。#include#include#include#define ll unsigned int#define ls c[x][0]#define rs c[x][1]const int mod=51061,maxn=100010; using na

2015-06-22 21:34:44 431

原创 bzoj3083: 遥远的国度

题意:给定一棵树,支持换根,路径权值覆盖,求子树最小。思路:求子树?上树链剖分,但是换根怎么办?我们只能通过原有信息推出换根后的答案。换根不影响路径修改,所以只要考虑子树最小值的维护。这里要分3种情况讨论1:如果询问点是当前根,直接返回整棵树的最小值。2:如果在原树中,当前根不在x的子树中,直接返回原树中x的子树最小值。判断x在不在y的子树中,只要通过dfs序即可,如果x的dfs序

2015-06-22 21:11:05 410

原创 bzoj2594: [Wc2006]水管局长数据加强版

题目大意:给定一个简单图,支持删边,每次询问两点间 最大边权值最小的路径。思路:首先每次询问两点间 最大边权值最小的路径一定是在最小生成树上。具体证明可以自行百度或YY。然后我们就可以去维护最小生成树了,但是题目是删边,没法做啊....这时我们可以倒着做,离线处理,删边就成了加边。怎么用LCT维护呢?先跑一遍kruskal,因为题目保证任意时刻图是联通的,所以一定可以跑出一棵初始的最小生成树(

2015-06-22 20:44:58 1345

原创 bzoj2243: [SDOI2011]染色

2243: [SDOI2011]染色Time Limit: 20 Sec  Memory Limit: 512 MBSubmit: 3271  Solved: 1262[Submit][Status][Discuss]Description给定一棵有n个节点的无根树和m个操作,操作有2类:1、将节点a到节点b路径上所有点都染成颜色c;2、询问节点

2015-06-22 20:22:14 1368

原创 bzoj2819: Nim

题意:树上的NIM游戏,每次取出一条链,问先手是否有必胜策略。思路:动态树or树链剖分维护链异或和,为0则没有,否则有。LCT死活就是TLE,代码就不贴了。

2015-06-22 20:12:57 469

原创 bzoj1180: [CROATIAN2009]OTOCI

题目大意:询问两点是否连通(反人类的是连通输no,不联通输yes...),单点权值修改,路径和。思路:正常的动态树,搞搞就行了。#include#include#includeconst int maxn=30010;using namespace std;int n,m;char op[15];struct LCT{ int sum[maxn],fa[maxn],c[maxn]

2015-06-22 20:07:23 526

原创 bzoj2002:[Hnoi2010]Bounce 弹飞绵羊

思路:动态树。把每个装置看成点,能弹到的装置连边,能弹飞的装置连到n+1号点,每个点点权设为1,这样问几次弹飞就可以转化为该点到n+1号点的路径的点权和。#include#include#include#includeconst int maxn=200010;using namespace std;int n,m,next[maxn];char ch;void read(in

2015-06-22 19:58:51 794

原创 bzoj1036树的统计Count

单点修改,询问链最大,链和,LCT和树链剖分都可以写,不过LCT就是慢....LCT:#include#include#includeusing namespace std;const int maxn=30010;int n,m,u[maxn],v[maxn];char s[7];struct LCT{ int val[maxn],fa[maxn],c[maxn][2],

2015-06-22 19:47:58 568

原创 bzoj 2049 洞穴勘测

#include#include#includeusing namespace std;const int maxn=10010;int n,m;char s[10];struct node{ int c[maxn][2],f[maxn],rev[maxn]; bool isroot(int x){return (c[f[x]][0]!=x)&&(c[f[x]][1])!=x;}

2015-06-22 17:36:24 510

空空如也

空空如也

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

TA关注的人

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