自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Sdchr

You are the only light in my darkness.

  • 博客(65)
  • 收藏
  • 关注

原创 【NOIP2016模拟赛五】小结

今天再小结一场。 问题主要还是出现在审题和策略上。 稍微把昨天的总结突出重点且细化一下。审题: ①从头到尾,读两遍,不要放过任何细节 ②手算一下样例,防止理解错题意 ③一定要看数据范围,这可以给出一些启示想题:想出的算法要手算,测一测样例,来确定是否正确规划做题顺序: ①效益最大化 ②中场的顺序调整:除非真的出现了什么问题,否则不要调换做题顺序,规划好顺序之后,就不要想太多了,然而这种

2016-08-18 14:25:50 383

原创 【NOIP2016模拟赛四】小结

最近学校集训,每天一场比赛。 今天的比赛犯了很多策略上的错误,稍微小结一下。。比赛持续4个小时。 前30min,很正常地按照自己的流程,把所有题目读了一遍,大概想了一想,然后再仔细分析一下,确定一下做题顺序。 然后,开始码第三题的欧拉序剖分+分块+Hash,结果最终打完了发现连样例都跑不过,仔细一看,原来审题都审错了。。 觉得第三题不可做。。然后开始写第一题的高精度+组合计数。。写到一半才发

2016-08-17 22:48:10 395

原创 【BZOJ 2301】Problem B 莫比乌斯反演

题意nn个询问。 求∑bi=a∑dj=c[gcd(i,j)=k]\sum_{i=a}^b\sum_{j=c}^d [\gcd(i,j)=k]。 1≤n≤50000,≤a≤b≤50000,1≤c≤d≤50000,1≤k≤500001\leq n\leq 50000,≤a≤b≤50000,1≤c≤d≤50000,1≤k≤50000分析用莫比乌斯反演求解这道题。 网上常见的分析有两种,一种是直接推一

2016-07-22 12:49:53 367

原创 欧拉筛法

一. 筛法例题:codevs14301. 埃拉托斯特尼筛法vis[1]=1;for (int i=2;i<=n;i++) if (!vis[i]) { pri[++tot]=i; for (int j=i*2;j<=n;j+=i) vis[j]=1; }时间复杂度:O(nloglogn)O(n \log\log n)2

2016-06-21 19:58:12 4704

原创 【BZOJ 4517】排列计数 - 排列组合+乘法逆元

【题意】 求有多少种长度为 n 的序列 A,满足: ①1 ~ n 这 n 个数在序列中各出现了一次; ②若第 i 个数 A[i] 的值为 i,则称 i 是稳定的。序列恰好有 m 个数是稳定; 满足条件的序列可能很多,序列数对 10^9+7 取模。数据范围:T=500000,n≤1000000,m≤1000000T=500000,n≤1000000,m≤1000000 【分析】 对于稳定

2016-04-25 21:38:28 496 1

原创 【CodeForces 651A】Joysticks 模拟

题意:给定a,b,每个单位时间可以将a,b中一台加1,一台减2,求最久可以支持多久。#include <cstdio>#include <algorithm>using namespace std;const int N=256;int n1,n2;int cnt;int main(void){ scanf("%d%d",&n1,&n2); while (n1>0&&n2>0

2016-03-18 13:48:01 266

原创 【CodeForces 651B】Beautiful Paintings 排序+贪心

题目大意: 给定集合AA,对于任意一个AA的排列(a1,a2,...,an)(a_1,a_2,...,a_n),记S(a)=cnt(ai<ai+1)S(a)=cnt(a_i<a_{i+1}),求max(S(a))\max(S(a))。很明显每次搞出一个长度为cntcnt的最长上升序列,然后把元素给删掉,答案增加cnt−1cnt-1。 直接暴力需要O(n2)O(n^2)。但是可以进行优化。 设有

2016-03-18 13:23:40 310

原创 【BZOJ 2243】染色 - 树链剖分+线段树

#include <cstdio>#include <cstring>#include <cstdlib>using namespace std;const int N=100001;int n,m,color[N]; //Basicstruct G{ int v,nxt;}map[N+N];int hd[N],tt; //Graphint son[N],dep[N]

2016-03-12 15:51:27 308

原创 【BZOJ 3295】动态逆序对 - 分块+树状数组

题目描述给定一个1~n的序列,然后m次删除元素,每次删除之前询问逆序对的个数。分析:分块+树状数组(PS:本题的CDQ分治解法见下一篇)首先将序列分成T块,每一块开一个树状数组,并且先把最初的答案统计完成。对于每一次删除,找到对应位置,考虑删除之后的增减情况: ①块内:直接暴力,对于左边,少了比它大的个数,对于右边,少了比它小的个数,O(nT)O({n\over T}) ②块外:枚举每一块。对于

2016-03-12 14:51:06 367

原创 【BZOJ 2818】Gcd - 筛法求素数&phi()

题目描述给定整数NN,求1≤x,y≤N1\leq x,y\leq N且gcd(x,y)\gcd(x,y)为素数的数对(x,y)(x,y)有多少对. 1≤N≤1071\leq N\leq 10^7分析首先筛出所有的素数。 我们考虑枚举素数p,统计满足gcd(x,y)=p\gcd(x,y)=p的个数,等价于统计gcd(xp,yp)=1\gcd({x\over p},{y\over p})=1的个数,

2016-03-12 13:28:42 338

原创 【NOI 2014】起床困难综合征 拆位+贪心

分析首先求出所有的situ[i][j]situ[i][j]表示第ii个二进制为jj的情况下攻击的最后的值(0或1). 然后从最高位开始尽可能取1,分四类讨论.代码#include <cstdio>#include <cctype>const int N=100010;const int BIT=30;int n,m;int p[N][2];int situ[BIT][2];int cnt;

2016-03-04 13:39:08 367

原创 【POJ 2484】A Funny Game 博弈找规律

题目给定一个nn个石子的环,石子编号为1−n1-n. 每次可以进行这样两个操作中的一个: ①取一颗石子; ②取相邻编号的石子; 谁先取完谁胜. 1≤n≤1061\leq n\leq 10^6分析首先要读懂题意.应该是找规律,从小数据开始分析. 当n=1n=1时,Alice. 当n=2n=2时,Alice. 当n≥3n\geq 3时, 情况一:当nn为偶数时,Alice怎么取,Bob

2016-02-17 12:44:07 349

原创 【POJ 2975】 Nim 博弈论

题目给定nn堆石子,分别有a1,a2,...,ana_1,a_2,...,a_n个. 问有多少种方法使得第一次操作是必胜决策.1≤n≤10001\leq n\leq 1000分析先求出异或值x=a1⊗a2⊗...⊗anx=a_1\otimes a_2\otimes...\otimes a_n. 所以x⊗a1⊗a2⊗⋯⊗an=0x\otimes a_1\otimes a_2\otimes\dots

2016-02-17 12:25:38 305

原创 【POJ 2505】A multiplication game 博弈 - 找规律

题目两个人轮流用2~9来乘n,使n不断扩大. n开始为1,当给一个固定值k,谁先使n超过k谁赢.1<k<42949672951<k<4294967295分析设fif_i表示ii是必胜态还是必败态. 很明显[n,∞)[n,\infty)是必败态. ∴[⌈n9.0⌉,n)\therefore [\lceil {n\over 9.0}\rceil,n)是必胜态. ∴[⌈⌈n9.0⌉2.0⌉,⌈n9

2016-02-17 11:56:17 279

原创 【POJ 2425】A Chess Game SG函数

【POJ 2425】A Chess Game SG函数题目【题目大意】 多组测试数据. 给定一张有向无环图G=(V,E)G=(V,E),其中节点的标号为00到n−1n-1. 多个询问,对于给定mm个点x1,x2,...,xmx_1,x_2,...,x_m,每次可以将一个点uu跳到它连边的对应点vv,谁不能跳谁就输了. 现在询问先手方胜还是负.【数据范围】 1≤n≤10001\leq n\le

2016-02-17 11:22:08 339

原创 【CodeVS 1222】信与信封的问题 随机化+treat Hungery

题目nn封信依次编号为11到nn,nn个信封也依次编号为11到nn. Small John能提供一组信息:第ii封信肯定不是装在信封jj中. 请编程帮助Small John,确定一定匹配的信和信封.1≤n≤1001\leq n\leq 100分析这是存在性问题,有两种思路: ①枚举所有的情况,找情况交; ②枚举所有可能的单个匹配,假设某种情况存在,进行验证;【思路①】treat,AC为了使效

2016-02-16 17:59:38 467

原创 【CodeForces 339B】Red and Blue Balls 找规律

题目一个栈内初始有n个红色和蓝色的小球,请你按照以下规则进行操作: 1. 只要栈顶的小球是红色的,将其取出,直到栈顶的球是蓝色. 2. 然后将栈顶的蓝球变成红色. 3. 最后放入若干个蓝球直到栈中的球数为nn. 以上3步骤为一次操作. 如栈中都是红色球,则操作停止,请问几次操作后停止.样例1:RBR, 样例2:RBBR 分析操作是确定的,没有决策,现在要求求次数.首先的想法必然

2016-02-16 11:18:32 827

原创 总结

只有努力,才有出路。然后,是关于OI的训练。 虽然我很清晰自己的目标,很清晰自己要增强哪方面的能力,但是我并没有将自己的行动与目的相对应。 自己很多时候都在盲目地刷题,而这并没有太大的实际意义。我要做到:①锻炼

2016-02-13 21:22:59 294

原创 小结(2016-02-02至2016-02-13)

小结(2016-02-02至2016-02-13)目标上次的总结中: 这个寒假还有好多作业…… BZOJ目前已经切了前16道,这个假期切完前25道就好了…… 下学期要把学校的题都完成,也把BZOJ第一版做得差不多了.然而很明显没有继续切下去,因为觉得有更好的选择,倒是把学校OJ的一版给做完了. 重新组织一下下学期的目标:完成初中的所有题,完成UOJ第一版.这个假期的OI训练告一

2016-02-13 13:03:01 388

原创 UOJ #9 vfk的数据 排序 字典序比较

UOJ #9 vfk的数据 排序题目描述UOJ上,由于一群人开心的在hack着,有的题的测试数据都有1000010000组了!为了处理这些数据,vfk决定把这道题所有输入数据都弄出来,每个数据给个编号,比如uoj1.inuoj1.in,uoj2.inuoj2.in。这些编号是随机的,可以不连续,比如三组数据分别叫uoj1.inuoj1.in, uoj100.inuoj100.in,uoj2014.i

2016-02-13 11:37:40 431

原创 BZOJ 2118 墨墨的等式 最短路 同余类分析

BZOJ 2118 墨墨的等式 最短路 同余类分析一. 题目墨墨突然对等式很感兴趣,他正在研究a1x1+a2x2+…+anxn=Ba_1x_1+a_2x_2+…+a_nx_n=B存在非负整数解的条件,他要求你编写一个程序,给定NN、aia_i的值以及BB的取值范围,求出有多少BB可以使等式存在非负整数解。对于100100%的数据, N≤12N≤12,0≤ai≤5∗1050≤ai≤5*{10}^5,

2016-02-09 15:20:09 595

原创 BZOJ 4337 BJOI2015 树的同构 Hash

题目给定mm棵无根树,求每棵树与其同构的树的最小编号。 1≤N,M≤501\leq N,M\leq 50分析考虑hashhash,要求不涉及编号对答案的影响,且为了确保正确用2个Hash。 我使用的函数:设当前的子树是uu,深度是dd,则: hashu=(ad+bd∑hashi.son)2{hash}_u={(a_d+b_d\sum {hash}_{i.son})}^2, 其中aa和bb是以

2016-02-06 21:27:16 649

原创 [CodeForces #80 Div 1 D] 分块+树状数组/线段树

Part 1 题解题意给出一个长度为N(≤300000)N(\leq 300000)的数列aia_i,再给出MM个询问,每个询问是形如(x,y)(x,y)的形式,你需要输出ax+ax+y+ax+2y+...+ax+kya_x+a_{x+y}+a_{x+2y}+...+a_{x+ky}的和,其中x+(k+1)y>Nx+(k+1)y>N。分析对于每个询问,首先我们想到的方法是依次将axa_x,ax+ya

2016-02-03 17:59:23 691

原创 CodeChef "Chef and Churus" 分块+树状数组

题意给定nn个数和nn个区间和f[i]=∑rik=liakf[i]=\sum_{k=l_i}^{r_i} a_k,支持两种操作: 1. 将aia_i变为xx; 2. 求编号为xx到yy的所有ff的和。n≤100000n\leq 100000分析对于每个fif_i,可以直接使用树状数组求出。 所以我们可以使用分块,中间的直接用块的答案,边上的用树状数组。首先我们进行预处理,记录第i块中每个编号的

2016-02-02 17:11:22 483

原创 BZOJ 2002 Hnoi2010 弹飞绵羊 分块

题意某天,Lostmonkey发明了一种超级弹力装置,为了在他的绵羊朋友面前显摆,他邀请小绵羊一起玩个游戏。游戏一开始,Lostmonkey在地上沿着一条直线摆上n个装置,每个装置设定初始弹力系数ki,当绵羊达到第i个装置时,它会往后弹ki步,达到第i+ki个装置,若不存在第i+ki个装置,则绵羊被弹飞。绵羊想知道当它从第i个装置起步时,被弹几次后会被弹飞。为了使得游戏更有趣,Lostmonkey可

2016-02-02 16:52:23 344

原创 CodeVS 1080 线段树练习 分块 块状数组

题意给定序列a,支持两种操作: 1. 单点修改 2. 区间求和1≤N≤1000001\leq N\leq 100000 M≤10000M\leq 10000分析考虑分块。 我们把连续的n√\sqrt n个元素放在一块,并保存所有值的和。对于单点修改,找到对应块,修改对应点的值和块的和。对于区间求和,注意分类讨论: ①当l,rl,r在同一块时,直接求和; ②当l,rl,r不在同一块时,

2016-02-02 10:27:46 362

原创 小结(2016-01-15至2016-02-01)

收获一. K极值问题CodeVS 1245 第一篇 CodeVS 1245 第二篇 Uva 11997首先这类问题可能要求所有的前k小值,可能只求第k小值。这类问题与单调性有关,对于无序的序列一般需要先排序。我想到了三种方法: **①依次求 ②排序可能情况 ③二分答案**对于方法①“依次求”,每次在待定状态内的元素要尽可能少,可以通过某些性质来减少元素的个数。 通常的做法是构建多条元

2016-02-01 19:22:37 343

原创 BZOJ 1016 最小生成树计数 Kruskal

题目给出一个简单无向加权图,求最小生成树有多少种?分析首先最小生成树有以下两个性质: (1)每种权值相同的边的数量是一定的。 (2)权值相同的边对最小生成树的效果相同。那么首先求一次最小生成树,找出每种边的数量。 然后枚举权值,可以进行搜索或者用Matrix-Tree定理用行列式进行生成树计数。 根据乘法原理相乘即结果。代码#include <bits/stdc++.h>using nam

2016-02-01 15:38:23 509

原创 BZOJ 1015 JSOI2008 星球大战 逆向回代法+并查集

删除边求连通块个数比较麻烦,但增加边求连通块个数可以用并查集来做。 我们考虑存储所有的操作,然后反过来求解。#include <cstdio>#include <cstring>#include <cstdlib>#include <algorithm>using namespace std;const int N=400001;const int M=200001;struct E{

2016-02-01 15:31:51 374

原创 BZOJ 1014 JSOI2008 火星人prefix Splay+Hash+二分

题目给定字符串,三种操作: 1. 询问 语法:Q x y,x,y均为正整数; 功能:计算LCQ(x, y); 限制:1 <= x, y <= 当前字符串长度。 2. 修改 语法:R x d,x是正整数,d是字符; 功能:将字符串中第x个数修改为字符d; 限制:x不超过当前字符串长度; 3. 插入 语法:I x d,x是非负整数,d是字符; 功能:在字符串第x个字符之后插入字符d

2016-02-01 12:37:26 435

原创 【BZOJ】1013 球形空间生成器

分析设圆心的坐标为(r1,r2,...,rn)(r_1,r_2,...,r_n), 点A(a1,a2,...,an)A(a_1,a_2,...,a_n)和点B(b1,b2,...,bn)B(b_1,b_2,...,b_n)在圆上。则有 dist=(r1−a1)2+...+(rn−an)2−−−−−−−−−−−−−−−−−−−−−√=(r1−b1)2+...+(rn−bn)2−−−−−−−−−−−

2016-01-31 11:46:21 293

原创 【BZOJ】1012 最大数

题目维护一个数列,两种操作: 1. 查询操作 语法:Q L 功能:查询当前数列中末尾L个数中的最大的数,并输出这个数的值。 限制:L不超过当前数列的长度。 2. 插入操作 语法:A n 功能:将n加上t,其中t是最近一次查询操作的答案(如果还未执行过查询操作,则t=0),并将所得结果对一个固定的常数D取模,将所得答案插入到数列的末尾。 限制:n是非负整数并且在长整范围

2016-01-31 11:24:15 346

原创 【BZOJ】1011 遥远的行星

题意直线上nn颗行星,x=ix=i处有行星ii,行星jj受到行星ii的作用力,当且仅当i<=Aji<=Aj,此时jj受到作用力的大小为 Fi→j=Mi×Mjj−iF_{i\rightarrow j}={M_i\times M_j\over j-i},其中AA为很小的常量,故直观上说每颗行星都只受到距离遥远的行星的作用。 请计算每颗行星的受力,只要结果的相对误差不超过5%即可.1≤n≤1051\le

2016-01-31 10:40:28 355

原创 【BZOJ】1010 玩具装箱

分析预处理前缀和sumi=∑j=1iaisum_i=\sum_{j=1}^i a_i,为区间求和作准备。这显然是dp。 设fif_i表示前ii件玩具花的最小费用。 则有: ①边界条件:f0=0f_0=0; ②动态转移方程:fi=min(fj+(i−j−1+sumi−sumj−L)2)f_i=min(f_j+{(i-j-1+sum_i-sum_j-L)}^2); ③答案:fnf_n。直接求解

2016-01-30 23:11:15 427

原创 【BZOJ】1009 GT考试

分析设f[i][j]f[i][j]表示前ii位,匹配了不吉利数字的jj位的方案数。 边界:f[0][0]=1,f[0][i]=0f[0][0]=1,f[0][i]=0。 转移:f[i][j]=∑f[i−1][k]∗go[k][j]f[i][j]=∑f[i-1][k]*go[k][j],go[k][j]go[k][j]表示是否有从不吉利数字的第kk位转移到第jj位的方法。 答案:res=∑f[n

2016-01-30 12:11:36 327

原创 【BZOJ】1008 越狱

题目监狱有连续编号为1...N1...N的NN个房间,每个房间关押一个犯人,有MM种宗教,每个犯人可能信仰其中一种。如果相邻房间的犯人的宗教相同,就可能发生越狱,求有多少种状态可能发生越狱。1≤M≤1081\leq M\leq {10}^8 1≤N≤10121\leq N\leq {10}^{12}分析发生越狱的情况数=总的情况数-不发生越狱的情况数。 总的情况数=MNM^N,不发生越狱情况数=

2016-01-30 10:46:04 315

原创 【BZOJ】1007 水平可见直线

Analysis将直线排序:第一关键字斜率kk,第二关键字截距bb。 然后维护一个下凸包。Code#include <cstdio>#include <cstring>#include <cstdlib>#include <algorithm>#include <cmath>using namespace std;const int N=50000;const double eps=1

2016-01-29 19:12:23 327

原创 【BZOJ】1006 神奇的国度

题目BZOJ 1006 神奇的国度分析弦图,想到完美消除序列,首先用MCS算法求出来。MCS算法: http://wenku.baidu.com/view/6f9f2223dd36a32d73758126.html?re=view http://tieba.baidu.com/p/2891159900 MCS写O(nlogn)O(n\log n)的算法就算了,O(n+m)O(n+m)的肯定会老

2016-01-29 18:44:54 295

原创 【BZOJ】1005 明明的烦恼

Overview【题意】给出标号为11到NN的点,以及某些点最终的度数,允许在任意两点间连线,可产生多少棵度数满足要求的树?【范围】0<N≤10000<N\leq 1000Analysis题解1号题解2号上面的题解的推导已经很详细了,公式如下: total=(n−2)!×nn−2−cnt(n−2−cnt)!×∏ni=1(di−1)!total={(n-2)!\times n^{n-2-cnt}\o

2016-01-29 18:04:55 305

原创 【NOIP模拟题】防护伞

题目NOIP2012模拟试题 给定NN个平面上的点,求最小的覆盖所有点的圆的面积。 2≤N≤10002\leq N\leq 1000分析首先枚举一个点ii,然后枚举另一个点jj。 取pi=max(dis(i,j))p_i=max(dis(i,j))作为一定选ii所需的圆面半径。 然后由于要求面积最小,所以半径最小,rmin=min(pi)r_{min}=min(p_i)。 然后S=πr2S

2016-01-29 16:59:09 393

空空如也

空空如也

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

TA关注的人

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