- 博客(59)
- 收藏
- 关注
原创 [比赛][2017省队十连测推广赛1]
[比赛][2017省队十连测推广赛1]Pre()这是BZOJ上打的第一场比赛,也是博客里写的第一篇比赛题解。。。T1题目大意:给定一棵N<=100000N<=100000个节点的有根树,设sum[i]sum[i]是以ii为根的子树的权值和。命令11 uu vv是把节点uu的权值改为vv,命令22 ll rr是询问∑ri=lsum[i]\sum_{i=l}^r sum[i]。思路:一开始的想法是把树分
2017-03-07 20:50:07 452
原创 [BZOJ2953][[Poi2002]商务旅行][LCA+水题]
[BZOJ2953][[Poi2002]商务旅行][LCA+水题]就是求树上两点之间的距离。。代码:#include <bits/stdc++.h>using namespace std;const int Maxn = 50010;inline char get(void) { static char buf[1000000], *p1 = buf, *p2 = buf; i
2017-03-29 19:47:29 566
原创 [BZOJ2561][最小生成树][最小割+dinic]
[BZOJ2561][最小生成树][最小割+dinic]题目大意: 给定一个边带正权的连通无向图G=(V,E),其中N=|V|,M=|E|,N个点从1到N依次编号,给定三个正整数u,v,和L (u≠v),假设现在加入一条边权为L的边(u,v),那么需要删掉最少多少条边,才能够使得这条边既可能出现在最小生成树上,也可能出现在最大生成树上?思路:显然比L权值小的边会对最小生成树产生影响。同理比L权值大的
2017-03-29 19:44:00 355
原创 [BZOJ2453][维护队列][莫队]
[BZOJ2453][维护队列][莫队]裸的莫队吧。。代码:#include <cstdio>#include <cmath>#include <algorithm>const int Maxn = 1010000;using namespace std;inline char get(void) { static char buf[1000000], *p1 = buf, *p2
2017-03-29 19:30:18 343
原创 [BZOJ2243][[SDOI2011]染色][树链剖分+线段树]
[BZOJ2243][[SDOI2011]染色][树链剖分+线段树]题目大意:给定一棵有n个节点的无根树和m个操作,操作有2类: 1、将节点a到节点b路径上所有点都染成颜色c; 2、询问节点a到节点b路径上的颜色段数量(连续相同颜色被认为是同一段),如“112221”由3段组成:“11”、“222”和“1”。 请你写一个程序依次完成这m个操作。思路:树链剖分后在线段树上记录一下每个节点表示的区
2017-03-29 19:27:20 382
原创 [BZOJ1089][[SCOI2003]严格n元树][Python+数论]
[BZOJ1089][[SCOI2003]严格n元树][Python+数论]思路:就是一个公式。。直接看代码吧。。高精度也不用打了。。直接上Python吧。。代码:n, d = map(int, raw_input().strip().split())dp = [1]for i in range(1, d + 1) : dp.append(dp[i - 1] ** n + 1)if (d
2017-03-29 19:22:39 460
原创 [BZOJ3036][绿豆蛙的归宿][期望与概率+DP]
[BZOJ3036][绿豆蛙的归宿][期望与概率]题目大意:给出一个有向无环的连通图,起点为1终点为N,每条边都有一个长度。绿豆蛙从起点出发,走向终点。 到达每一个顶点时,如果有K条离开该点的道路,绿豆蛙可以选择任意一条道路离开该点,并且走向每条路的概率为 1/K 。 现在绿豆蛙想知道,从起点走到终点的所经过的路径总长度期望是多少?思路:期望与概率裸题???设f[u]f[u]为uu点的期望长度,
2017-03-29 19:18:39 348
原创 [BZOJ3925][[Zjoi2015]地震后的幻想乡][期望+状压DP]
[BZOJ3925][[Zjoi2015]地震后的幻想乡][期望+状压DP]http://blog.csdn.net/skywalkert/article/details/47792065]这位神犇写得很好啊QAQ代码:#include <bits/stdc++.h>const int N = 11, M = 50;typedef long long ll; inline void read(l
2017-03-29 19:12:34 370
原创 [BZOJ4006][[JLOI2015]管道连接][斯坦纳树+状压DP+SPFA]
[BZOJ4006][[JLOI2015]管道连接][斯坦纳树+状压DP+SPFA]题目懒得写了。。就是斯坦纳树裸题思路:由于需要链接起来的点集最多只有10个,所以可以把集合的状态状压一下。然后设f[i][S]f[i][S]为点ii在SS点集中的最小花费,则有转移:f[i][S]=min{f[i][S′]+f[i][S−S′]} f[i][S]=min \{ f[i][S’]+f[i][S-S’]
2017-03-29 19:05:59 489
原创 [BZOJ3585&3339][Rmq Problem][莫队+二分+树状数组]
[BZOJ3585&3339][Rmq Problem][莫队+二分+树状数组]题目大意:有一个长度为n的数组{a1,a2,…,an}。m次询问,每次询问一个区间内最小没有出现过的自然数。思路:先把所有操作离线然后莫队,然后对于每个操作,先二分最多的从1开始一段连续的数n。(连续的一段值肯定是n)这样n+1就是最小没有出现过的自然数。然后把0特判一下就好了。有一个优化就是不考虑大于n的数,因为这些数
2017-03-29 18:58:40 408
原创 [BZOJ3282][tree][LCT]
[BZOJ3282][tree][LCT]题目大意:给定N个点以及每个点的权值,要你处理接下来的M个操作。操作有4种。操作从0到3编号。点从1到N编号。 0:后接两个整数(x,y),代表询问从x到y的路径上的点的权值的xor和。保证x到y是联通的。 1:后接两个整数(x,y),代表连接x到y,若x到Y已经联通则无需连接。 2:后接两个整数(x,y),代表删除边(x,y),不保证边(x,y)存在
2017-03-29 18:53:04 314
原创 [BZOJ2654][tree][二分+Kruskal]
[BZOJ2654][tree][二分+Kruskal]题目大意:给你一个无向带权连通图,每条边是黑色或白色。让你求一棵最小权的恰好有need条白色边的生成树。思路:可以给每条白色边都加一个权值,这个权值越大,选的白边就越少,反之就越多。对于这个权值二分就好了,然后再做一遍最小生成树。代码:#include <bits/stdc++.h>using namespace std;const int
2017-03-29 18:48:48 403
原创 [BZOJ4499][线性函数][线段树]
[BZOJ4499][线性函数][线段树]题目大意:小C最近在学习线性函数,线性函数可以表示为:f(x) = kx + b。现在小C面前有n个线性函数fi(x)=kix+bi ,他对这n个线性函数执行m次操作,每次可以: 1.M i K B 代表把第i个线性函数改为:fi(x)=kx+b 。 2.Q l r x 返回fr(fr-1(…fl(x))) mod 10^9+7 。思路:可以发现两个
2017-03-29 18:41:45 557
原创 [BZOJ2832][宅男小C][模拟退火]
[BZOJ2832][宅男小C][模拟退火]题目大意:众所周知,小C是个宅男,所以他的每天的食物要靠外卖来解决。小C现在有M元钱,他想知道这些钱他最多可以吃多少天。餐厅提供N种食物,每种食物有两个属性,单价Pi和保质期Si,表示小C需要花Pi元才能买到足够一天吃的这种食物,并且需要在送到Si天内吃完,否则食物会变质,就不能吃了,若Si为0则意味着必须在送到当天吃完。另外,每次送餐需要额外F元送餐费。
2017-03-28 21:15:23 373
原创 [BZOJ4573][[Zjoi2016]大森林][LCT建虚点]
[BZOJ4573][[Zjoi2016]大森林][LCT建虚点]题意懒得写了。。。。思路:建LCT的时候我们可以引入虚点。对于所有的1操作,新建一个没有权值的虚点,然后对于0操作,可以把新建的节点挂在最后建的虚点上面。由于虚点并不参与权值的计算,所以我们可以把所有操作先离线,然后从左到右把所有树都做一遍,每做到一个操作的时候,把在当前树不存在的虚点(当前树不在某个修改生长节点的操作的影响范围内)都
2017-03-28 21:11:36 1441
原创 [比赛][Zjoi2017 Day1]
[比赛][Zjoi2017 Day1]ZJOI2017 DAY1为什么第一题就是仙人掌啊吓死人了。。。刚看完题发现只会打10分的暴力,然后看了第二题发现还是只会打10分的暴力,然后看了第三题还是只会十分的暴力。。。感觉要30分滚粗了。。。先写好了第一题的暴力,调了一会(其实调了一个多小时)过了样例以后发现n哪怕再大1都跑不过。。。于是就跑了一下链的情况,发现答案就是2n−22^{n-2},好开心啊又
2017-03-28 20:58:57 574
原创 [BZOJ1278][向量vector][模拟+向量]
[BZOJ1278][向量vector][模拟+向量]题目大意:一个二维向量(x,y)(x,y)的权定义为x2+y2x^2+y^2。已知一个由n个二维向量组成的集合,求该集合的一个子集,使该子集中的向量和的权尽可能大。思路:有一个结论是,构成答案的向量一定在某一个过原点的直线一侧所以把直线排一遍序然后维护它们在同一侧就好了。代码:#include <bits/stdc++.h>using name
2017-03-15 13:16:18 542
原创 [BZOJ4454][C Language Practice][O(1)GCD]
[BZOJ4454][C Language Practice][GCD]题目大意:思路:如果对于每两个数都求一次gcd显然会超时。考虑O(N)O(N)预处理,O(1)O(1)求gcd。不妨设m=n√m = \sqrt n,可以在O(m2)O(m^2)也就是O(N)O(N)的时间里求出mm范围内的gcd(辗转相除递推)mm范围外的数XX,一定可以分解成A∗B∗CA*B*C的形式,其中A,B,C
2017-03-15 12:58:20 817
原创 [BZOJ2056][gift? 高精度?][水题]
[BZOJ2056][gift? 高精度?][水题]题目大意:输出2a+2b+2c+2d+2e+2f+2g+2h+i2^a+2^b+2^c+2^d+2^e+2^f+2^g+2^h+i思路:sb题。只有一个极限数据会爆unsigned long long特判一下,其他直接算就好了。代码:#include <cstdio>unsigned long long a[10]; int t;int ma
2017-03-15 08:44:57 1250
原创 [BZOJ2117][[2010国家集训队]Crash的旅游计划][点分治+二分答案]
[BZOJ2117][[2010国家集训队]Crash的旅游计划][点分治+二分答案]题目大意:求树上每个点第k长的路径。思路:这道题和这道题应该是双倍经验:http://blog.csdn.net/g1n0st/article/details/58127733但是我那道题的代码交到这里来并过不了。首先还是考虑对树进行分治然后二分答案,但是维护树上路径可以直接用vector而不是线段树,因为并没有对
2017-03-15 08:34:24 1295
原创 [BZOJ2712][[Violet 2]棒球][类欧几里得算法]
[BZOJ2712][[Violet 2]棒球][类欧几里得算法]类似于下面这道题吧,只要把小数转换成分数就好了。http://blog.csdn.net/g1n0st/article/details/62044709代码:#include <bits/stdc++.h>using namespace std;typedef long long ll;typedef pair<ll, ll>
2017-03-14 16:14:29 500
原创 [BZOJ2187][fraction][类欧几里得算法]
[BZOJ2187][fraction][类欧几里得算法]题目大意:求一个最简分数 p / q满足 a / b < p / q < c / d若有多组解,输出q最小的一组,若仍有多组解,输出p最小的一组。思路:代码:#include <bits/stdc++.h>using namespace std;typedef long long ll;typedef pair<ll, ll> abcd
2017-03-14 16:11:20 666
原创 [BZOJ3817][Sum][类欧几里得算法 数论]
题目大意:给定N<=109,R<=104N<=10^9,R<=10^4,求:∑d=1n(−1)⌊d∗r∗d√⌋\sum_{d=1}^{n} (-1)^{\lfloor \sqrt{d*r*d} \rfloor}思路:不妨设x=r√x=\sqrt r,那么 −1⌊dx⌋=1−2(⌊dx⌋%2)=1−2(⌊dx⌋−⌊dx2⌋∗2)=1+4⌊dx2⌋+2⌊dx⌋\begin{align} -1^{\lf
2017-03-14 14:26:51 1109
原创 [比赛][ZJOI2011 day1]
[比赛][ZJOI2011 day1]pre():只是用ZJOI2011的day1来考了一场省选模拟赛。。然而在这之前并没有做过。。实际比赛:T1T1推了一下发现是一个Dp+单调栈?不过要分成三面做。。。于是打了半个小时调了一个小时,因为为了把三面中的某一面作为底面打了翻转操作,调了好久。。。A掉了T2好神的数学题啊并不会,隐隐约约感觉是结论题。。哇N,K<=10N,K<=10感觉可以打暴力,打完发
2017-03-13 15:16:31 499
原创 [BZOJ3307][雨天的尾巴][树链剖分+线段树]
[BZOJ3307][雨天的尾巴][树链剖分+线段树]题目大意:N<=100000N<=100000个点,形成一个树状结构。有M<=100000M<=100000次发放,每次选择两个点x,yx,y,对于xx到y的路径上(含x,yx,y)每个点发一袋ZZ类型的物品。完成所有发放后,询问每个点存放最多的是哪种物品。思路:考虑如果不是一棵树而是一段序列应该怎么做,显然我们可以开一棵权值线段树,对于一个命令
2017-03-12 14:23:26 829
原创 [BZOJ2631][Tree][LCT]
[BZOJ2631][Tree][LCT]题目大意:给定一棵N<=100000N<=100000个节点的无根树,有四种操作:删除一条边后再加一条边(保证形成的还是一棵树)、在树上的一条路径上全部加一个权值、在树上的一条路径上全部乘一个权值、求树上一条路径的权值和。答案要 %51061 \% 51061思路:显然这棵树是动态的,那么用LCT来维护连通性就好了,加和乘的操作可以在splay里面打lazy
2017-03-12 14:11:38 411
原创 [BZOJ2209][[Jsoi2011]括号序列][splay]
[BZOJ2209][[Jsoi2011]括号序列][splay]题目大意:给定一个长度为N的括号序列,有三种操作:询问让A[x],a[x+1],...,a[y]A[x],a[x+1],...,a[y]这个括号序列合法至少需要修改几个括号。将A[x],a[x+1],...,a[y]A[x],a[x+1],...,a[y]翻转将A[x],a[x+1],...,a[y]A[x],a[x+1],..
2017-03-11 15:53:06 672
原创 [BZOJ3207][花神的嘲讽计划Ⅰ][主席树+Hash]
[BZOJ3207][花神的嘲讽计划Ⅰ][主席树+Hash]题目大意:给定一个N<=100000N<=100000个数的序列和M<=100000M<=100000个询问和kk,每个询问包含k+2k+2个数字:l,r,b[1],b[2]...b[k]l,r,b[1],b[2]...b[k],要求输出b[1] b[k]b[1]~b[k]在[l,r][l,r]中是否出现。思路:因为b[1],b[2]...
2017-03-10 20:26:57 248
原创 [BZOJ2002][[Hnoi2010]Bounce 弹飞绵羊]
[BZOJ2002][[Hnoi2010]Bounce 弹飞绵羊]题目大意:某天,Lostmonkey发明了一种超级弹力装置,为了在他的绵羊朋友面前显摆,他邀请小绵羊一起玩个游戏。游戏一开始,Lostmonkey在地上沿着一条直线摆上n<=200000n<=200000个装置,每个装置设定初始弹力系数kik_i,当绵羊达到第ii个装置时,它会往后弹kik_i步,达到第i+kii+k_i个装置,若不存
2017-03-09 15:23:32 262
原创 [BZOJ2049][[Sdoi2008]Cave 洞穴勘测][LCT]
[BZOJ2049][[Sdoi2008]Cave 洞穴勘测][LCT]思路:题目大意就不放了,貌似是一道LCT裸题。。。三个操作分别是linklink,cutcut和findfind。感谢这篇集训队论文:https://wenku.baidu.com/view/75906f160b4e767f5acfcedb以及黄学长的代码:http://hzwer.com/3921.html感觉LCT的复杂度全
2017-03-09 15:15:02 328
原创 [BZOJ3211&3038][上帝造题的七分钟2&花神游历各国][线段树]
[BZOJ3211&3038][上帝造题的七分钟2&花神游历各国][线段树]题目大意:给定一棵线段树,要求支持区间开根和区间查询。思路:直接上线段树暴力修改就好咯,至于为什么,因为每个节点修改的次数是有限的,一个数开根多次后肯定会变成1,然后再执行开根操作的时候就直接跳过就好了(1的根号向下取整还是1)。坑:花神游历各国可能会出现0代码:BZOJ3211:#include <bits/stdc++.
2017-03-07 20:04:20 332
原创 [BZOJ4372][烁烁的游戏][动态树分治+线段树+LCA]
[BZOJ4372][烁烁的游戏][动态树分治+线段树+LCA]题目大意:给定一颗nn个节点的树,边权均为11,初始每个点权值为00 。 其中操作QQ xx询问x点的点权,操作 MM xx dd ww把xx点周围距离不超过ww的点权值加上ww。思路:应该是一棵蛮裸的动态树分治,和BZOJ3730 : http://blog.csdn.net/g1n0st/article/details/56674
2017-03-06 18:27:25 377
原创 [BZOJ2741][[FOTILE模拟赛]][可持久化Trie+分块]
[BZOJ2741][[FOTILE模拟赛]][可持久化Trie+分块]题目大意:FOTILE得到了一个长为NN的序列AA,为了拯救地球,他希望知道某些区间内的最大的连续XORXOR和。 即对于一个询问,你需要求出Max(Ai⊕Ai+1⊕Ai+2...⊕Aj)Max(A_i \oplus A_{i+1} \oplus A_{i+2} ... \oplus A_j),其中l≤i≤j≤rl \le i
2017-03-05 15:22:53 313
原创 [BZOJ1023][SHOI2008[Cactus仙人掌]][Tarjan+单调队列+树形DP]
[BZOJ1023][SHOI2008[Cactus仙人掌]][Tarjan+单调队列+树形DP]题目大意:给定一棵仙人掌,求仙人掌上最长路径。(路径要求是两点之间的最短路)思路:题目太神啦好菜啊虽然过了BZOJ1040但还是一点不会做,快来看这个题解太神啦:http://z55250825.blog.163.com/blog/static/150230809201412793151890/代码:#
2017-03-05 14:51:02 364
原创 [BZOJ1040][[ZJOI2008]骑士][基环外向树+树形DP]
[BZOJ1040][[ZJOI2008]骑士][基环外向树+树形DP]题目大意:给定一个N<=1000000N<= 1 000 000个点的基环外向森林,求带权的最大独立集。思路:首先题目中看上去给出的是有向边但实际上是无向边,因为vv不会和uu在一起那么uu也不会和vv在一起。这道题一开始我以为只是一棵普通的树,那这样直接树形dpdp就好了,用f[u][1],f[u][0]f[u][1],f[u
2017-03-05 11:20:09 775
原创 [BZOJ1006][[HNOI2008]神奇的国度][MCS,完美消除序列]
[BZOJ1006][[HNOI2008]神奇的国度][MCS,完美消除序列]题目大意:对给定的N<=10000N<=10000个点M<=1000000M<=1000000条边的弦图染色,使得两两相邻的点颜色不能相同,求最小需要的颜色数量。思路:弦图与区间图-cdq:http://wenku.baidu.com/view/07f4be196c175f0e7cd13784.html求出完美消除序列后,
2017-03-03 20:22:39 430
原创 [BZOJ1242][Zju1015 Fishing Net弦图判定][完美消除序列]
[BZOJ1242][Zju1015 Fishing Net弦图判定][完美消除序列]题目大意:给定一张N<=1000N<=1000个节点,MM条边的无向图,判断该图是否是弦图。思路:详细看《弦图与区间图-陈丹琦》:http://wenku.baidu.com/link?url=H7Jlvsd5OfkTMgLhVneYZrkQCBC7IW5ruDjY7m2rPY94nJ1wur6fQfPCcyme2
2017-03-03 19:31:18 685
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人