- 博客(27)
- 收藏
- 关注
原创 GDOI模拟4.24~4.26总结DAY1:
DAY1: 第一题,一看就知道是后缀数组,不过忘记了后缀数组有一个东西怎么线性处理,所以就只能够暴力搞后缀数组,所以也只能暴力搞后缀数组,然后暴力的来求。把height从大到小填进去是一个很套路的东西,但是只打过一次后缀数组,对他的用法还不太熟练。所以对于很多省选的知识,由于打得不多,所以很多东西还不是很熟练,一定要找一个时间再去熟悉熟悉。 第二题,从来没有在比赛的时候做过SG函数之类的东西,所
2017-04-27 09:47:44 393
原创 GDOI模拟4.19~4.21总结
DAY1:第一题,一看就是LCT,所以并没有去打,暴力都要用splay,所以打起来特别的特别的亏,所以要等到将近做完了才能去打,虽然并没有做完,所以第一题就没有去打。省选完应该找个时间练练LCT,splay之类的比较长的数据结构,然后splay像打线段树一样,LCT像打链剖一样。 第二题,一开始就想到了一个可以用数据结构优化的暴力,然后打着打着,出数据卡了一下发现挂了。比完赛才知道这个序列是一个排
2017-04-22 21:02:32 342
原创 【GDOI2017第三轮模拟day1】影魔(主席树)
Description影魔,奈文摩尔,据说有着一个诗人的灵魂。事实上,他吞噬的诗人灵魂早已成千上万。千百年来,他收集了各式各样的灵魂,包括诗人、牧师、帝王、乞丐、奴隶、罪人,当然,还有英雄。 每一个灵魂,都有着自己的战斗力,而影魔,靠这些战斗力提升自己的攻击。 奈文摩尔有n个灵魂,他们在影魔宽广的体内可以排成一排,从左至右标号1到n。第i个灵魂的战斗力为k[i],灵魂们以点对的形式为影魔提供攻击
2017-04-22 17:02:32 517
原创 【GDOI2017第三轮模拟day2】魔法咒语(AC自动机,矩阵乘法)
Description Solution这道题目的60分非常的简单,直接用ac自动机直接搞一搞就好了。 但是后面的40分怎么做? 我们发现后面的40分全部都是基本单词长度不会大于2,所以我们可以考虑一下怎么矩阵乘法。 假设我们的转移的矩阵有两个部分:[i-1,i] 那么我们要转移到[i,i+1] 当单词长度为1的时候,可以从i转移到i+1,i-1转移到i 当单词长度为2的识货,可以从i
2017-04-22 16:25:43 890
原创 【GDOI2017第三轮模拟day2】树的难题(点剖,树状数组)
DescriptionSolution一看就知道是点剖,但是还要套上一个数据结构,感觉很麻烦,比赛的时候直接上暴力。 点剖的时候在分治中心的时候,因为发现颜色是一个很麻烦的东西,所以考虑对直系儿子的颜色进行排序,然后对同一个颜色的开一个树状数组,然后对整体开一个树状数组,用树状数组log方的时间求最大值(如果r-lowbit < l那么r–) 这样做是nlog3nnlog^3n的,但是因为树状数
2017-04-22 16:14:30 773
原创 【GDSOI2017第三轮模拟】Informatics Training(码农,平衡树)
DescriptionSolution这题一看及时一道码农题。 肯定是平衡树。 但是c++可以直接用set做。 用给体力,颜色,每个组,序号,每组最小的刷题量开一个set。 然后搞一搞。 结果常数写的不好呗强行卡成暴力分。超了500ms,难得优化。Code#include<iostream>#include<stdio.h>#include<string.h>#include<alg
2017-04-22 16:07:53 408
原创 【GDSOI2017第三轮模拟】Travel Plan(DP)
DescriptionSolution一开始我的DP方程f[i][j]的j设的是代价是多少,但是代价非常的打,所以枚举的时候很容易超时。 但是反着想一想如果f[i][j]的j是满意度,然后求的是最小的代价,那么枚举的东西就很少了。 这样就只能拿40分。 但是100分非常的简单啊,用dfs序思考一下,题目只是要求你不取一段而已,所以前缀后缀匹配一下就好了。 怎么匹配呢?一开始我打的是排序,但是
2017-04-22 16:03:31 407
原创 【SDOI2017】数字表格
DescriptionSolution这道题明显可以用莫比乌斯反演来做,非常的裸的繁衍。 假设n < m ans=∏ni=1∏mj=1f[gcd(i,j)]ans=\prod_{i=1}^n\prod_{j=1}^mf[gcd(i,j)] 那么直接枚举gcd=d ans=∏nd=1f[d]g[d]ans=\prod_{d=1}^nf[d]^{g[d]} g[d]表示gcd=d的个数g[d]
2017-04-18 21:09:11 1257 2
原创 GDOI模拟4.15~4.17总结
DAY1: 题目都不会做。 所以打完暴力开始优化暴力,结果有一个程序优化错了,另一个 暴力的时候多打了一个符号爆零了。 在看第一题的时候其实是想到了正解,但是看时间有点大不敢打。 其实打了可能也有60分的,赛后才知道。 这个方法常数卡的好可以拿100分。 结果第一天就只拿了100分。 理论上第一天:(60~100)+60+30+20=170~210 DAY2: 第二天的第一题和第
2017-04-18 17:18:40 448
原创 【GDOI2017第二轮模拟day2】开房间
DescriptionA君与B君正在玩一款闯关游戏,游戏共有n关,每一关的目标只有一个:开房间。 每一关都会有m个房间(从1~m进行编号),A君与B君每关各打开一个房间即可过关,但两人不能打开同一个房间。 通过每一关后,m个房间会重新关上,在第i关打开第j个房间需要消耗t[i][j]的体力值。并且无论A君还是B君,除了第一关外,若上一关自己开了a号房间,这一关开了b号房间,则需要额外消耗K*|a
2017-04-18 14:19:48 589
原创 【GDSOI2017第二轮模拟】树
*Descriptionn个点,它们从1到n进行标号,第i个点的限制为度数不能超过A[i]. 现在对于每个s (1 <= s <= n),问从这n个点中选出一些点组成大小为s的有标号无根树的方案数。Solution这题一眼就是prufer序列,但是比赛的时候忘记了prufer序列的性质了。 prufer序列就是每个数的出现次数不会超过这个点的度数,那么直接一个DP: f[i][j][k]表示做
2017-04-18 12:24:02 457
原创 【GDOI2017模拟二试4.12】旅游路线(后缀自动机,trie)
DescriptionA君准备在Z国进行一次旅行,Z国中有n个城市,城市从1到n进行编号,其中1号城市为Z国首都。Z国的旅行交通网由n-1条单向道路构成,并且从任何一个城市出发都可以通过旅行网到达首都。 一条旅行交通网中的旅行线路,可以用线路上所经过的城市来描述,如{v1,v2,v3,……,vm},它表示一条经过了m个城市的旅行路线,且城市vi到城市vi+1有一条单向道路相连。 两个城市是相似的
2017-04-16 11:37:54 522
原创 【GDOI2017第二轮模拟day1】最长路径(性质题,容斥,组合数学)
Description在Byteland 一共有n 个城市,编号依次为1 到n,它们之间计划修建n(n-1)/2条单向道路,对于任意两个不同的点i 和j,在它们之间有且仅有一条单向道路,方向要么是i 到j,要么是j 到i。换句话说,这是一个n 个点的竞赛图。 Byteasar 居住在1 号城市,他希望从1 号城市出发,沿着单向道路不重复地访问一些城市,使得访问的城市数尽可能多。 请写一个程序,帮
2017-04-16 09:50:11 1702
原创 【GDOI2017第二轮模拟day1】公路建设
Description在Byteland一共有n 个城市,编号依次为1 到n,它们之间计划修建m条双向道路,其中修建第i 条道路的费用为ci。 Byteasar作为Byteland 公路建设项目的总工程师,他决定选定一个区间[l, r],仅使用编号在该区间内的道路。他希望选择一些道路去修建,使得连通块的个数尽量少,同时,他不喜欢修建多余的道路,因此每个连通块都可以看成一棵树的结构。 为了选出最佳
2017-04-16 09:32:48 718
原创 【GDSOI2017模拟4.13】采蘑菇(点剖||线段树)
DescriptionA君住在魔法森林里,魔法森林可以看做一棵n个结点的树,结点从1~n编号。树中的每个结点上都生长着蘑菇。蘑菇有许多不同的种类,但同一个结点上的蘑菇都是同一种类,更具体地,i号结点上生长着种类为c[i]的蘑菇。 现在A君打算出去采蘑菇,但他并不知道哪里的蘑菇更好,因此他选定起点s后会等概率随机选择树中的某个结点t作为终点,之后从s沿着(s,t)间的最短路径走到t.并且A君会采摘途
2017-04-16 09:30:05 778
原创 【GDSOI2017模拟4.13】炮塔(最小割)
DescriptionA君正在玩一款战略游戏,游戏中的规则是这样的: 给定一个n*m的地图,地图上每一个位置要么是空地,要么是炮塔,要么有若干数量的敌人。现在A君要操控炮塔攻击这些敌人。 对于每个炮塔,它们的攻击方向已经确定(上下左右其中一个),A君只需要为每个炮塔指定攻击位置。每一个炮塔只能朝它攻击方向上的某个位置进行攻击,每个炮塔只能攻击一次,当然,炮塔也可以不进行攻击。炮塔对一个位置攻击后
2017-04-16 09:13:01 936
原创 【GDOI2017模拟二试4.12】树上路径(点剖)
Description给定一颗n个结点的无根树,树上的每个点有一个非负整数点权,定义一条路径的价值为路径上的点权和-路径的点权最大值。 给定参数p,我们想知道,有多少不同的树上简单路径,满足它的价值恰好是p的倍数。 注意:单点算作一个路径;u ≠ v时,(u,v)和(v,u)只算一次。Solution本来是一道很裸的点剖题,但是很久没有打点剖了,并没有去打。 点剖的时候,每个点维护两个值,一个
2017-04-16 09:02:15 754
原创 【GDOI2017模拟一试4.11】颜色树(容斥||点剖||DP)
Description思源湖畔有一棵树,那是独孤玉溪最喜欢的地方。 传说中,这棵不见边际的树有N个节点,每个节点都有1片叶子,每片叶子都拥有K种颜色中的一种,独孤玉溪喜欢爬到这棵树上,沿着一条路线摘叶子,并拥有所有颜色的叶子。 独孤玉溪会选择一个起点,并沿着树边走,然后最终停在一个终点上(起点和终点可能相同),当然了每一个结点只能经过一次(每一片叶子只能摘一遍)。独孤玉溪突生奇想,有多少种不同的
2017-04-16 08:58:20 1152
原创 【GDOI2017模拟一试4.11】腐女的生日(线段树+维护一次函数)
Description腐女要过生日了,pty 想给腐女送礼物,但是腐女所在的教室离pty 的教室太远了,于是pty就拜托会动归和A星的djy帮忙送礼物。djy在学校建立了一个平面直角坐标系,他站在了(0,0)点,腐女在(x0,y0)点,djy每次只能往上下左右四个方向移动一步,中间有n栋矩形教学楼,每个教学楼给出两个对角的坐标,并且保证每栋教学楼的周围区域(如图所示)不会有别的教学楼,即djy可以绕
2017-04-16 08:54:58 987
原创 GDOI模拟4.11~4.13总结
做完这次比赛,发现自己的得分拿的还是不稳,发现人与人的差距还是相当的大,发现自己还需要突破许多的瓶颈。DAY1: 第一题,一眼就是可以用数据结构来做,但是自测了一下常数可能会爆,但是并不知道O2到底能跑多快,还花了好久的时间卡了卡(其实不卡也能过的),这样大大的浪费了后面的时间。省选4h四道题,必须好好地把握时间。第一题一定要稳,且不能用太久的时间。 第二题,并没有看出来是用线段树做,然后估错了时
2017-04-14 16:33:00 616
原创 【NOI2017模拟.4.1】Shoes【DP决策单调性,主席树,分治】
DescriptionData ConstraintSolution动态规划如果只有一个鞋柜,那么真的是相当的简单,直接找个中位数就可以了,但是有多个鞋柜该怎么办? 还有一个很显然的性质,就是鞋柜肯定是放在鞋子上的,就是现在放鞋柜的点缩小为2n。 我们的鞋柜肯定是越靠近两个鞋子的中点越优,所以把鞋子按中点排序 那我们考虑可不可以从k-1个鞋柜推到k个鞋柜。 很明显,可以设一个DP: f[i
2017-04-07 14:54:49 914
原创 【NOI2017模拟.4.1】 Dice【概率,期望,DP,精度优化】
DescriptionSolution这道题的期望转移其实不难,但是精度很难卡。 先考虑第一个答案 设 g[i][j]为取到第i次,取得数为j的概率g[i][j]为取到第i次,取得数为j的概率 f[i][j]为取到第i次,取得数为j的期望f[i][j]为取到第i次,取得数为j的期望 g[i][j]=∑k≠pg[i−1][k]∗Pg[i][j]=\sum_{k≠p} g[i-1][k]*P
2017-04-07 10:28:42 1374
原创 【NOI2017模拟.4.1】 Tree【最大费用循环流】
DescriptionSolution这题一看就是网络流,但是时无向图,无源汇…… 最小费用循环流! 首先连边是很显然的,连成一个环就可以了,树上的边连双向(上下都能走),然后要覆盖一条链,那么这条链就从下往上连(其实上面连了双向,这里从下往上也可以) 然后直接套上最小费用循环流就可以了。 首先把所有的正权边都流满为ans 然后因为要流量平衡,所以要平衡一下。 统计一下现在的流量度数:
2017-04-07 09:37:36 1271
原创 【NOI2017模拟4.4】保持平衡【优先队列,贪心】
Description博爱路上种起了一棵棵的大树,但是有一些地方的树超过了负荷,有一些地方的树的数量又不够。 我们不妨把博爱路看做一条数轴,数轴有n个点,从1到n编号,第i个位置原来现在有ai棵树,这个位置的需求是bi棵树。ai,bi都是0到10的整数。由于你需要是这个位置的树的数量保持平衡,所以你需要移除或者搬一些树过来。 我们怎么使树的数量平衡呢? 首先,你可以从某个位置i移动一棵树到位置
2017-04-07 09:20:47 874
原创 【NOI2017模拟4.2】查询【线段树】
Description给出若干条线段,用(x1,y1),(x2,y2)表示其两端点坐标,现在要求支持两种操作: 0 x1 y1 x2 y2 表示加入一条新的线段,(x1,y1)-(x2,y2) 1 x0 询问所有线段中,x坐标在x0处的最高点的y坐标是什么,如果对应位置没有线段,则输出0。Solution这题一看就是用线段树做的。但是问题就是怎么维护。 很明显我们要在区间维护一条直线。
2017-04-06 20:58:11 592
原创 【NOI2017模拟4.5】机器人游戏【搜索,DP】
Description小A和小B在一个R行S列的棋盘上玩游戏,棋盘上的每一个棋格都有一个方向标记(上、下、左或右)。游戏按如下方式进行: 小A先将K个棋格涂上黑色(初始为白色),并且他不能涂黑最后一列的棋格;随后,小B在第一列的任意一个棋格上放一个小机器人;此时,小机器人将会不停地沿着他所在的棋格所指示的方向走到一个相邻的棋格,直到他到达最后一列的棋格,游戏结束。 游戏胜负规则如下: ●如果小
2017-04-06 17:17:34 929
原创 【NOI2017模拟4.5】无限棋盘【哈希,字符串,倍增】
Description无聊的小A在一个无限大的棋盘上玩游戏,这个棋盘由一个M*N的模板不停重复生成。例如,当模板为: honi hsin 时,我们会生成如下棋盘: …honihonihonihoni… …hsinhsinhsinhsin… …honihonihonihoni… …hsinhsinhsinhsin… 其中,该棋盘在任意一个方向都可以无限延伸。 现在小A在棋盘上随机挑选
2017-04-06 16:58:09 1150
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人