关闭

NOIP专题训练——网络流 题解

虽然不知道NOIP会不会出网络流的题目,但是练一练总是好的。轮回先说一下良心的部分分的算法。n≤1n \le 1,直接输出唯的一盒子的底面积就好了。n≤2n \le 2,对于两个盒子的情况,判断一下是否存在一个盒子能放进另一个盒子的情况,如果有就输出大的盒子的底面积,否则输出两者底面积之和。n≤6n \le 6,直接搜索盒子的放法,找出使得底面积最小的方案。n≤13n \le 13,状态压缩。设ss...
阅读(59) 评论(0)

NOI2017 退役记

也许以后这个博客就再也没有更新了……也许有?这也说不定呢。希望以后不要再有人因为写挂题,特别是模板写挂而退役呀……然而这又怎么可能一直不发生呢?就当自己运气差吧。其实到现在还是无法释怀,因为确实只差了那么一点点。除了这篇游记,退役文可能还会写,但也不知道什么时候写。20170717 Day1报道日,来到绍一新校区。感受就是浙江真TM热住宿条件比冬令营的时候好,但是wifi实在是太慢了啊……食堂依旧是...
阅读(608) 评论(1)

福建省队集训游记

作为FJ省队里最弱的一个,很荣幸能够参加这次省队面基大会省队集训。谨以此篇纪念我的被虐日常。20170706 Day0省队集训开始的前一天,高二生活的最后一天(话说其他同学好像还在准备下周的期末考呀……停课了大半年早已感觉自己没救了)。CY说,现在是什么水平,到NOI就是什么水平了。确实,一周之内基本很难有特别大的进步了。我现在这么弱,到NOI考场上也还是这么弱。CY又说,这次省队集训主要干的一件事...
阅读(125) 评论(0)

LOJ 6032 「雅礼集训 2017 Day2」水箱

线段树合并+树状数组把0设成-1,问题就变成求最大前缀和。考虑一个DP,记f[i]表示i隔板隔住了水,i之前最多满足多少条件。转移的时候枚举j表示[j,i]能是一个以j,i为左右端点的装水区间。这样的问题是每次从新的i扫到一个j都要合并一遍区间里的所有标记,也就是一个区间会被合并多次。然而能够证明,不同的装水区间不超过O(n)个,且它们之间不会有交(端点可能相同)。因此先找出这些区间,线段树维护一个...
阅读(135) 评论(0)

LOJ 6100 「2017 山东二轮集训 Day1」第一题

可持久化线段树+二分注意到如果[l,r]不降,[l,r-1]就肯定也不降,因此如果能对于每一个位置l,找到最远的r满足不降。这样套上主席树问题就搞定了。会降当且仅当此时异或上的a[i]的最高位恰好把当前的这一位从1变成0。因此记f[i][j][0/1]f[i][j][0/1]表示从a[1]开始异或到a[i],以j为最高位的时候,j从1变成0(或0变成1)有多少次。这样二分以后每一位都判一下即可。O(...
阅读(254) 评论(0)

LOJ 6043 「雅礼集训 2017 Day7」蛐蛐国的修墙方案

搜索+贪心因为要有解,所以把给出的置换连边形成的图一定是若干简单偶环。然后想了半天贪心,发现什么策略都找不到……考虑爆搜,直接搜索是O(2n2n)O(2^{n\over2}n)的,注意到如果环大小为2则一定前一个是左括号,因此只要枚举长度至少4的环,这样O(2n4n)O(2^{n\over4}n),就能过了。#include #include #define N 1...
阅读(103) 评论(0)

LOJ 6041 「雅礼集训 2017 Day7」事情的相似度

LCT+SAM+线段树问一个区间里的前缀之间的最长公共后缀,考虑SAM一发,建出反串后缀树,然后求最长公共后缀就变成求最深的LCA。直接维护区间的答案不好做,因此考虑一些离线的算法。莫队不知道能不能做,这里考虑把询问按照右端点排序,然后从左到右扫一遍。扫到i,则维护所有左端点在1~i-1,右端点在i的区间的答案。i新贡献的答案就是i和1~i-1的最公共后缀,也就是后缀树上一个点和其它一些点的最深LC...
阅读(220) 评论(0)

BZOJ 4540 [Hnoi2016]序列

线段树+矩阵我来发一篇博客证明我还活着题目要求的区间所有子区间的最小值之和不太容易合并,因此直接上数据结构不好做。考虑离线做法。把所有询问右端点排序。从左到右扫描整个序列,扫描到ii时维护所有1≤j≤i1\le j\le i的区间[j,i][j,i]的答案。那每做完一个ii只要抓出当前询问的区间查询即可。如何随着ii右移,动态地维护前缀所有区间的答案?新加一个ii进来的时候,只会增加右端点在ii的子...
阅读(64) 评论(0)

UOJ 112 & BZOJ 4071 [Apio2015]巴邻旁之桥

线段树同侧的显然不用管他。k=1。枚举啊三分啊什么的应该都能过。进一步地,桥的位置一定是中位数。k=2。发现没有什么二分三分之类的性质。假设两座桥已经定下来,那么一个居民会选择离(A+B)/2近的桥来走。也就是按(A+B)/2排序后,居民会被分成左右两波走不同的桥。那就枚举分界点,对于走同一座桥的,类似k=1的找出中位数,用线段数维护中位数。#include #include<alg...
阅读(105) 评论(0)

UOJ 111 & BZOJ 4070 [Apio2015]雅加达的摩天楼

分块+最短路我们把一个(有doge的)点连向所有它能到达的所有点,这样就是一个最短路问题。考虑优化建图,用分块。如果pp大于n‾√\sqrt n就直接连。小于n‾√\sqrt n的情况?其实有一个性质,对于一系列有相同pp的点i<j<ki<j<k,如果ii能到达kk,jj能到达kk,那只要连上(i,j)(i,j)和(j,k)(j,k) 而不连(i,k)(i,k)即可。也就是说在pp相同的情况下,一个...
阅读(90) 评论(0)

UOJ 206 [APIO2016]Gap

构造第一个子任务就从外往内两个两个地确定即可。第二个子任务,发现如果我们类似上面地把每一个数都确定下来,至少也要N/2级别的询问,而询问代价还有一个k,因此不能直接确定所有数字。那就是要忽略一些数字,发现答案的下界是⌈an−a1n⌉\lceil \frac {a_n-a_1}{n} \rceil,因此把a1a_1至a−na-n分成下界个块数,块内就不用管了。只有块之间有贡献。#include "ga...
阅读(123) 评论(0)

BZOJ 4827 [Hnoi2017]礼物

FFT把式子展开完发现c和顺序无关,可以直接算,最小化这个式子就是最小化一个乘积的东西,也就是一个裸的FFT……涨姿势,C++有一个四舍五入的函数叫round()#include #include #include #define N 400005 using namespace std; namespace runzhe2000 { ty...
阅读(160) 评论(0)

BZOJ 4825 [Hnoi2017]单旋

splay 或 线段树观察这种spaly的性质。插入一个点,这个点的深度就是它的前驱后继中深度较大的那个+1。单旋最小值,则最小值的右子树里的点深度不变,自己深度变为1,其他点深度+1,单旋最大值同理。删除则在这个基础上让全部深度-1。这个是在平衡树上的子树维护,也就是一个区间维护,离线上线段树即可。然而我还是带着敬意地写了一个splay……#include #include<cstdio...
阅读(132) 评论(0)

UOJ 109 [APIO2013]TASKSAUTHOR

提交答案题感觉这道提答是我见过的最善良的提答了……tasksauthor 1卡floyd,上一个101个点的无边图就行了。tasksauthor 2注意到代码里是只要能松弛就把边集for一遍,那就用一条链把松弛卡到V-1次,再把边加到满即可。tasksauthor 3同1tasksauthor 4dijkstra是一个看起来没有什么问题的算法,然而有一个致命弱点在于负权。建出一系列负权边让它的松弛次...
阅读(312) 评论(0)

51Nod 算法马拉松24

A : 构造 B : 状压DP C : 构造 D : 线段树或平衡树 E : 树链剖分+线段树 F : UnfinishedA 1804 小C的多边形强行猜了一个结论,试了一下小数据发现没问题,那就假装没问题吧……就是外面一圈1~n-1,里面把1插在n-2和n-1之间,其他的顺次递推。本题考察输出优化的使用。#include using namespace std; nam...
阅读(619) 评论(1)

BZOJ 4813 [Cqoi2017]小Q的棋盘

树形DP记f[i][j]f[i][j]表示在i的子树里走j步最多能走多少个点。实际上的决策一定是先进一个i的儿子节点的子树,然后出来,再进一个子树,再出来……最后进一颗子树,也许还会出来。枚举在外面走多少步,转移到最后进去的子树即可。#include #include #define N 105 using namespace std; namespace ru...
阅读(366) 评论(0)

BZOJ 3992 [SDOI2015]序列统计

NTT+矩阵快速幂懒得写了,orz链接:http://blog.csdn.net/ied98/article/details/46852805#include #include #include #define N 17005 #define MOD 1004535809 using namespace std; namespace runzh...
阅读(144) 评论(0)

BZOJ 3489 A simple rmq problem

可持久化树套树发现这是一个多维偏序,可持久化树套树即可。#include #include #define N 100005 using namespace std; namespace runzhe2000 { int read() { int r = 0; char c = getchar(); for(;...
阅读(124) 评论(0)

AtCoder agc007_f Shik and Copying String

贪心+队列画出折线图,每一列表示一个位置,每一行表示一次copy,折线段表示覆盖。一个过程就相当于从第一行开始不断向下画折线来覆盖最后一行。根据贪心,显然折线应贴着上面来画,且转移一定是从最近的转移过来。瞎JB感受一下就会发现折线每次至多增加一格,因此只要维护这些折线的拐点,也就是差分点就可以了,用一个队列维护即可。以上口胡,目测讲不清楚。详情还是去看题解吧。#include #in...
阅读(155) 评论(0)

洛谷 2480 [SDOI2010]古代猪文

中国剩余定理+Lucas定理题目就是要求G∑i|nCinmodpG^{\sum_{i|n}C_n^i} \mod p 然后费马小定理一下,变成求指数modp−1\mod p-1模数是合数,拆开来对每一个小质因数做一遍,最后CRT合并一下即可。注意费马小定理ap−1≡1(modp)a^{p-1} \equiv 1 \pmod p成立,当且仅当pp是质数,且a,pa,p互质,然而GG=模数虽然不满足定理...
阅读(145) 评论(0)
308条 共16页1 2 3 4 5 ... 下一页 尾页
    个人资料
    • 访问:47359次
    • 积分:3432
    • 等级:
    • 排名:第10161名
    • 原创:307篇
    • 转载:0篇
    • 译文:0篇
    • 评论:22条
    公告
    欢迎您 !
    由于博主是一个蒟蒻,
    如有错误之处还望指出!
    o( =•ω•= )o
    神犇们的博客
    文章分类