自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

不来也不去的一只失忆蝴蝶

曾迷途才怕追不上满街赶路人

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

原创 [agc015e]Mr.Aoki Incubator

前言看错题好久,怨念极深。 主要就是推染红的条件。 将速度排序是关键。 然而本题最重要的是证明区间不包含,然后做法可以很显然的得到。题意数轴上许多黑点,每个点都有一个方向向右的正速度。 当两个点在同一个位置上重合时,若其中一个是红色,另一个也变成红色。 保证没有相同速度或初始坐标。 现问你有多少方法染红一些点,使得无穷久后所有点都被染红。做法观察一个点i染红后,哪些点j会被染红? 1、

2017-09-28 22:30:38 955

原创 [agc015d]A or...or B Problem

前言一开始想着按二进制位倒着推统计贡献,每次讨论四种情况。 推着推着就发现了结论。 然而还是想复杂了。 直接值域就好了嘛。题意用若干个(至少一个)[A,B]中的数进行or操作能得到多少本质不同的数?做法先找到A和B最高一个不同的二进制位,设为d。 因为我菜下面我们都假设A是较大数。而且因为我懒接下来都用小写。 我们可以根据第d位是0还是1划分两类数。有1的是第一类数。 我们找到a第二个有

2017-09-28 22:18:38 768

原创 [agc14e]Blue and Red Tree

前言这题主要是要想到倒过来,是一个很唯一的过程。 我大概想到了,但我比题解蠢。 题解的不需要区分红蓝让我觉得很机智。题意有一颗全是蓝边的树,你对其执行n-1次操作。 每次操作选择一条全是蓝边的路径,将其中的一条蓝边断开,假设选择的路径是j->k,断的边是x-y,且断开后j和x联通,那么k和y联通。 然后你需要选择j->x上的一个节点,以及k->y上的一个节点,在这两个节点间连红边。 现在问

2017-09-27 22:13:12 432

原创 [agc015c]Nuske vs Phantom Thnook

前言一开始想了无特殊性做法。 后来才用到树的性质QAQ题目大意一个蓝白网格图,保证蓝格子连成森林。 每次选取一个子矩阵问蓝联通块个数。做法森林联通块数=点数-边数。 于是很好做。#include<cstdio>#include<algorithm>#define fo(i,a,b) for(i=a;i<=b;i++)using namespace std;const int maxn=

2017-09-27 22:05:44 433

原创 [agc014d]Black and White Tree

前言看到这种题直觉是树的最大匹配,如果是比赛直接打毫无疑问。 然后证明了一下也不是很难的样子。 主要是见过类似套路吧。题意两个人轮流给树上节点染色。 先手涂白色,后手涂黑色。 如果最后树上存在一个白色点,与其相连的没有黑点,先手胜,否则后手胜。 请你判断先手必胜还是后手必胜。博弈我们先给出结论:后手要赢,这颗树要有完美匹配。 首先充分性显然,有完美匹配,先手涂什么成白色,你把匹配点涂黑,

2017-09-26 21:09:50 1092 3

原创 [agc013e]Placing Squares

前言这题啃了好久啊。 一开始就知道要解决子问题,但没想到是模型转换,只是对着式子乱搞,推了好久(中途推出了一个隔项斐波那契数列)然而最后证实我式子推错了(菜醒.jpg) 于是膜拜了题解的模型转换。题意给你一个大小为m的集合S,S中不包含n。 现在对于一个正整数序列a1−aka_1-a_k,如果不存在sis_i属于集合S就是合法的,s表示a的前缀和。 这样的序列贡献是Πki=1a2i\Pi_{

2017-09-26 17:40:02 821

原创 [agc006c]Rabbit Exercise

前言一开始看成随机跳一个兔子让我感觉不可思议,于是很难。 如果理解对题意,相信这题不难做。题意n只兔子在数轴上。 有m种操作,每种操作找到一个编号的兔子,再随机选择一个编号和其相邻的兔子,然后让该兔子的位置改为与这只相邻编号兔子的对称位置。 问最后每个编号兔子位置的期望值。做法很容易发现可以用每次操作兔子的期望位置直接代替原位置,因此每次相当于xi=xi+1+xi−1−xix_i=x_{i+1

2017-09-25 22:08:22 616

原创 [agc013d]Piling Up

前言一开始写了个naive的dp发现方案数跟初始放球无关只和颜色序列有关所以我算重了。 然后想到了强制到达0,但发现会算漏(因为0会卡下界)。 然后想到加上强制到达1就不卡下界了,但发现还是会算重(如果这个方案没有执行某种转移)。 最终弄出来才觉得这种“简单dp”题的精髓还是挺秒的。题意在箱子里放n个球,有黑白两色。 执行m轮操作: 抓箱子里一个球堆在塔顶。 往箱子里放入一个黑球和一个白

2017-09-23 16:49:38 1157

原创 [agc012e]Camel and Oases

前言很容易的就发现了只有log次跳跃。 然后状压DP。 似乎就是个简单题吧(怎么比12c还简单)题意一排点,两点间有距离。 初始你有一个行走值v,如果相邻两点距离不超过v你可以自由在这两点行走。 当v大于0时,你可以选择某一时刻突然飞到任意点,这样做后v会减半(下取整)。 问从每个位置初始出发能否到达所有位置。DP预处理left[i,j]表示在i行走值已经减半j次能往左走到哪,同理有rig

2017-09-23 11:19:45 679

原创 IOI2018精英培训计划

清华集训: 清华集训给修记 集训队作业: cnt:104(+11)/104(+52) atc部分: agc001_d √ agc001_e √ agc002_d √ agc002_e √ agc002_f √ agc003_d √ agc003_e √ agc003_f √ agc004_c √ agc004_d √ agc004_e √ agc004_f √ ag

2017-09-22 22:05:47 2770

原创 [agc012d]Colorful Balls

前言做这题时感觉肯定是有一堆球允许重排的,要求找到每种颜色这些球的个数,其余球大概都是固定的,应该不复杂。 大概思路也确实就是这样。不过需要仔细讨论。 有一个很重要的性质当然是a和b如果都能和c对换,a和b也是可以对换的。题意n个球,每个都有颜色和重量。 对于两个同颜色的球,如果重量和在x以内可以交换位置。 对于两个不同颜色的球,如果重量和在y以内可以交换位置。 问颜色序列的方案数。做法一

2017-09-22 22:04:03 745 1

原创 [agc012c]Tautonym Puzzle

前言怎么wxh随手秒的傻逼题我看了好多眼啊。 对于这种题我感到措手不及,因为这样的题我一般只会两种方法。 一种是分离构造,将答案序列分成若干个互不相干的部分,答案是这些部分答案的和。 那么只要我能想到如何简单构造一个部分即可。 可惜我这样想长度怎么都爆。 另一种是倍增构造,但是想了好久都不知道如何不长度*2的把答案*2。 这就很GG了。 最后总结一下我的想题过程,这样的题还是朝着二进制

2017-09-21 22:15:37 589

原创 [agc013c]Ants on a Circle

题目大意数轴蚂蚁问题升级成环。做法如果是数轴是经典问题: 两只蚂蚁相遇后掉头可以看做代替对方继续前行。 相对位置永远不变。 初始坐标刚好递增。 但是现在是环,注意到每当有蚂蚁跨过L-1或0就会使排名进行右/左移。 因此也很方便了。#include<cstdio>#include<algorithm>#define fo(i,a,b) for(i=a;i<=b;i++)using na

2017-09-21 20:56:44 968

原创 [codechef]WEASELTX

题目大意有一颗点权树。 每过一天,就会自上而下更新,更新的含义是点权变成子树内点权异或和。 若干个询问询问第d天根节点的点权。分析很显然深度相同的可以缩在一起。 我们设a[i][j]表示第i天深度为j的节点点权是否会给根节点带来影响。 容易发现a[i][j]=XORj−1k=0a[i−1][k]a[i][j]=XOR_{k=0}^{j-1} a[i-1][k] 也就是a[i][j]=a[i

2017-09-16 10:28:03 613

原创 [agc001d]Arrays and Palindrome

题目大意给定你a序列,请你重排它并构造一个b序列。 使得两个序列元素和均为n。 对于一个长度为n的字符串,满足如果前a[1]个是回文串,接下来a[2]个是回文串……且前b[1]个是回文串,接下来b[2]个是回文串……那么这个字符串处处相同。构造题我打了下表猜想了一下。 2个奇数无解。 否则奇数放首尾。 b就是第一个+1,最后一个-1,其余照抄。#include<cstdio>

2017-09-15 22:36:41 885 2

原创 [agc001e]BBQ hard

题目大意给你a[]和b[],权值范围在2e3内。 求∑n−1i=1∑nj=i+1Cai+ajai+aj+bi+bj\sum_{i=1}^{n-1}\sum_{j=i+1}^nC_{a_i+a_j+b_i+b_j}^{a_i+a_j}做法你考虑Cba+bC_{a+b}^b的组合意义其实是从(0,0)走到(a,b)每次只能向上和向右有多少走法。 因此这个魔幻的式子其实相当于(0,0)走到两个向量和的

2017-09-15 22:12:05 678

原创 生命之树

题目大意ansu=∑i在u子树中∑j在u子树中且i<j(vi xor vj)∗LCP(Si,Sj)ans_u=\sum_{i在u子树中}\sum_{j在u子树中且i<j}(v_i\ xor\ v_j)*LCP(S_i,S_j) 每个点都有点权v和一个字符串S,求ans[]。做法可以想到把v拆位做于是现在变成了黑白树。 可以想到dsu on tree,trie上节点记录子树内某个颜色的数量即可。

2017-09-15 21:56:49 386

原创 [CF750G]New Year and Binary Tree Paths

题目大意一颗无穷个节点的完全二叉树,编号满足线段树分配。 求有多少条树上的简单路径编号和为s?结论从根节点到一个编号为x的节点,到根编号和为2x-bitcount(x)。 用归纳法证明。 我们尝试枚举这条简单路径两个节点到lca分别的距离为a和b,设lca为x。 首先一定有x∗(2a+1+2b+1−3)x*(2^{a+1}+2^{b+1}-3)的编号和。 然后我们尝试把x子树所有编号都去掉

2017-09-14 17:20:04 553

原创 n根号n解决在线无修区间逆序对问题

做法带log的分块相信大家都会,今天我们来讲讲不带log。 首先先离散化,这样值域就变成n了。 我们以根号为阈值分块,然后我们记A->B的含义是将A和B两个序列拼接在一起有多少逆序对两个元素一个来自A另一个来自B。 首先考虑如何求A->B,可以发现A和B的内部顺序是没有关系的,因此如果我们把A和B排好序了,运用归并即可线性求得A->B。 现在我们先把每个块排序,然后预处理一个位置到块头的逆序

2017-09-14 17:04:43 3186

原创 健美猫

题目大意旋转序列s使得∑ni=1|si−i|\sum_{i=1}^n|s_i-i|最小做法大致思路是可以拆绝对值记录个数即贡献,顺着扫,对于一个位置有两个位置很关键。 (我都不知道我在说什么#include<cstdio>#include<algorithm>#include<cmath>#define fo(i,a,b) for(i=a;i<=b;i++)using namespace

2017-09-11 22:29:35 716

原创 春思

题目大意求a^b的约数和。基础题分解出a的质因数即可,然后算等比数列和可以倍增。#include<cstdio>#include<algorithm>#include<cmath>#define fo(i,a,b) for(i=a;i<=b;i++)using namespace std;typedef long long ll;const int mo=9901;ll i,j,k,l

2017-09-11 22:27:23 420

原创 [LibreOJ β Round #4]求和

题目大意∑ni=1∑mj=1μ2((i,j))\sum_{i=1}^n\sum_{j=1}^m\mu^2((i,j))反演∑ni=1μ(i)∗∑n/id=1μ2(d)∗(n/id)∗(m/id)\sum_{i=1}^n\mu(i)*\sum_{d=1}^{n/i}\mu^2(d)*(n/id)*(m/id) 可以发现后面在容斥,结果是(n/i/i)∗(m/i/i)(n/i/i)*(m/i/i)

2017-09-04 22:40:58 685

原创 [LibreOJ β Round #4]框架

题目描述有一个n×m的矩形框架,但其中有些边被删除了。qmqmqm想知道剩余部分中还有多少完整的正方形。只有当一个正方形的每一条边均被保留下来,这个正方形才是完整的。做法先预处理每个位置往四个方向的最远扩展长度。 枚举一条对角线,正方形的两个相对端点在该对角线上。 一个点作为左上角有一定修改范围,一个点作为右下角也有一定查询范围,可以用树状数组维护。#include<cstdio>#inclu

2017-09-04 22:36:50 537

原创 [LibreOJ β Round #4]子集

题目大意给你一个集合,请选出一个子集,使得两两元素的gcd或分别+1后的gcd至少一个不等于1,最大化子集的大小。最大团看起来是个最大团模型,裸上random_shuffle+greedy可过。#include<cstdio>#include<algorithm>#include<map>#define fo(i,a,b) for(i=a;i<=b;i++)using namespace s

2017-09-04 22:34:34 487

原创 [LibreOJ β Round #4]多项式

题目大意构造一个不超过6w次的非0多项式,使得每项系数是非负数且小于k,并使得任意数x代入后模k=0。扩展欧拉定理我们知道了扩展欧拉定理。 那么可以直接构造x2∗ϕ(k)−xϕ(k)x^{2*\phi(k)}-x^{\phi(k)}#include<cstdio>#include<algorithm>#define fo(i,a,b) for(i=a;i<=b;i++)#define fd(

2017-09-04 22:32:47 431

原创 [LibreOJ β Round #4]游戏

题目大意一个含数字和X的序列。 两方轮流操作,每次在X里填入一个实数。 当X全部被填完时,根据序列逆序对的奇偶性判胜负。 问谁必胜。做法没有X的时候用数据结构求逆序对即可。 有X的时候,先特判n=1。 然后假设两人随便填,最后一个人填最后一个X时,假设最小数当前是t,显然他在这个位置填t+eps或t-eps可以使逆序对奇偶性不同。 他能直接获胜。 因此此时判断X个数的奇偶性即可。#in

2017-09-04 22:30:35 426

空空如也

空空如也

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

TA关注的人

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