07 2014 档案
摘要:给定n个数第一个操作和普通,区间覆盖性的,把l-r区间的所有值改成固定的val第二个操作是重点,输入l r x 把l-r区间的所有大于x的数,变成gcd(a[i],x) a[i]即指满足条件的序列上的数值最后才输出所有值当时苦思这个地方如何优化,想着不可能单点去更新吧,但是区间gcd,不能保存下来,...
阅读全文
摘要:现在把主席树的原理给弄清楚了,从i=1开始,每次新插入一个数,就为他建一棵线段树(当然第一次i=0的时候是建一棵空树),线段树里面保存的是1-i的树的位置情况简单来说,如果有m个树,则每棵线段树都是范围为1-m的,至于1-i没有m个那就先让它空着不管,我只负责1-i里面的数的位置情况插入到线段树里面...
阅读全文
摘要:本来是想找个主席树的题目来练一下的,这个题目虽说可以用主席树做,但是用这个方法感觉更加叼炸天第一次做这种离线方法,所谓离线,就在把所有询问先存贮起来,预处理之后再一个一个操作像这个题目,每个操作要求区间不同元素的个数,我盲目去查的话,某个元素在之前如果出现了,我把他算在当前区间也不好,算在之前的区间...
阅读全文
摘要:在一棵树上找影响最小的某个点,某个点的影响是等于其他点到他的距离*其他点的权值 的和我一开始也找不到什么好的方法,只能想到每个点暴力去判断,但是这样肯定会超时(10^5个点),又有点想用类似前缀和,但是这是在树上,不是很好搞不过最后还是得用到前缀和,先dfs1把从0号节点出发的整个值算出来,并且沿途...
阅读全文
摘要:给定一个初始都为0的序列,有三种操作,前两种比较正常,一个是对某个位置的数add k,另一个是query区间和。然后比较麻烦的是第三个操作,把某个区间里面的每个值改成离它最近的Fibonacci数,如果存在左右两个离它近的,优先取左边数值小的一看到前两个操作马上就想上手敲树状数组,后来看到第三个就有...
阅读全文
摘要:给定一个n的序列,有m个询问 每次询问求l-r 里面第k大的数字是什么只有询问,没有修改可以用归并树和划分树(我都没学过。。囧)我是专门冲着弄主席树来的对主席树的建树方式有点了解了,不过这题为什么是在主席树里面这么操作的 还是有点不懂,今天照着模板敲了一遍就打多校了再研究吧#include #inc...
阅读全文
摘要:这个题目给定N航班的发出时间和结束时间以及价值,要求不冲突时间的最大价值第一时间想到经典的N方DP,即对航班按发出时间排一下序之后每个i对前面的都扫一遍时间过不了N有10万,只能想优化了,一开始想了个用树状数组记录每次加入某个航班之后 后面的所有在结束时间后的区间全部可以加一个最大值,但是首先时间区...
阅读全文
摘要:求n个图矩形放下来,有的重合有些重合一部分有些没重合,求最后总的不规则图型的轮廓长度。我的做法是对x进行一遍扫描线,再对y做一遍同样的扫描线,相加即可。因为最后的轮廓必定是由不重合的线段长度组成的,这样理论上是对的要注意处理高度相同的线段,把底边优先处理(在代码里就是f标记为1的线段),因为若是一个...
阅读全文
摘要:也是很久之前的题目,一直没做做完之后觉得基本的离散化和扫描线还是不难的,由于本题要离散x点的坐标,最后要计算被覆盖的x轴上的长度,所以不能用普通的建树法,建树建到r-l==1的时候就停止,表示某段而不是某点,同样,左子树和右子树要变成 L MID , MID R比如1-4子树就是 1-2,2-4。。...
阅读全文
摘要:这个是去年遗留历史问题,之前思路混乱,搞了好多发都是WA,就没做了自从上次做了大白书上那个双重懒惰标记的题目,做这个就思路很清晰了跟上次大白上那个差不多,这个也是有一个sets标记,代表这个区间全部置为0或者1,没有置位的时候为-1还有个rev标记,代表翻转操作,0代表当前不翻,1代表当前翻要注意一...
阅读全文
摘要:2014 多校的B题,由于我不怎么搞图论,当时碰到这个题目,我怎么想都没往网络流方面弄,不过网络流真的是个好东西,对于状态多变,无法用动规或者数据结构来很好表示的时候,非常有用这个题目要求每个点一定要访问到,并且每次访问的是没访问过的点,跳跃的方向为向右或者向下。建图的时候,分成二分图,从一个超级源...
阅读全文
摘要:本来是想找一个二维线段树涉及懒惰标记的,一看这个题,区间修改,单点查询,以为是懒惰标记,敲到一半发现这二维线段树就不适合懒惰标记,你更新了某段的某列,但其实其他段的相应列也要打标记,但因为区间不一样,又不好打。。。也可能是我这是在套用一维线段树的思想,还有更好的二维线段树懒惰标记方法反正到现在我还没...
阅读全文
摘要:今天多校的一道题,哎,多校被中学生碾压了发现自己很怕敲贪心,这道题其实贪心特性相当明显,我看这个题算比较早,还在想各种递推或者dp那种后来还是聪哥马上反应过来了首先,对于任何的task,因为最后的money是 500*x+2*y,所以,在得到最多money方面,肯定是x的优先级高,x相同的时候再比较...
阅读全文
摘要:13年长春现场赛的G题,赤裸裸的二维线段树,单点更新,区间查询不过我是第一次写二维的,一开始写T了,原因是我没有好好利用行段,说白一点,还是相当于枚举行,然后对列进行线段树,那要你写二维线段树干嘛二维就是在每个行段也建一棵树,来代表这个区间的行里的某些列的值其他操作倒是不难,因为有一维的功底,只是多...
阅读全文
摘要:也是给这个题目跪了一天。。。时间不多了,也不多讲首先要用 nlogn的优先队列dijstla来求最短路,n^2的会超时,不过发现SPFA好像也可以过,他的复杂度应该介于NlogN和N^2之间。然后统计可以去掉的铁路条数才是难点一开始我采用边跑最短路边标记,最后再统计,发现漏了好多情况,自己想了个数据...
阅读全文
摘要:这个题首先要利用题目的特性,先贪心,否则无法进行DP因为求期望的话,越后面的乘的越大,所以为了得到最小值,应该把概率值降序排序,把大的数跟小的系数相乘然后这种dp的特性就是转移的时候,由 i推到i+1每次添加一个数,就要考虑这个新数应该和谁放在一组,枚举他放在哪一组即可dp[i][j]代表当前第i个...
阅读全文
摘要:先输入n个字符串的字典,每个字符串的前缀+后缀可以组成新的合法字符串,但肯定是有重复的,问从给定的字符串,生成的所有可能的字符串为多少个把前缀和后缀压入字典树,达到前缀和后缀的去重,首先的总和即为前缀数目乘以后缀数目,之后为了去重,记录每个前后缀非第一个相同的每个字母,则每个相同字母必定会产生重复。...
阅读全文
摘要:昨晚CF碰到的题目,昨晚CF跪了啊啊啊题意比较简单,给定一排挨在一起的板子,宽度都为1,高度不一,一个刷子宽度也是1,可以横着刷,也可以竖着刷,但是任何时刻刷子都要在板子上,也就是说,如果横向的时候,出现断层,就要算2次或者多次了 最后求全部刷完的最小刷的次数昨晚真的是想了各种方法,dp也想了,二分...
阅读全文
摘要:给定n m kn和m为一个矩阵的行和列,都从1开始,矩阵的每个元素的值即为 i*j(行*列),求里面第k个数还想找什么规律,发现虽然矩阵里面很有规律,但是n 和m在不断变化 根本不好找其实元素从 1 到 n*m,直接二分,每次二分完后,枚举所有行,通过min(mid/i,m)可以马上得到该行小于等于...
阅读全文
摘要:这题真是坑啊,题意不明,其实就是往桟里面压入空的set集合,所以之前的询问大小都是只有0,只有add的时候,才会产生新的占空间的集合用stack和set直接进行模拟#include #include #include #include #include #include using namespac...
阅读全文
摘要:这个题意搞了半天才搞明白 就是如果定义一个d-summit,即从该点到另一个更高的点,经过的路径必定是比当前点低至少d高度的,如果该点是最高点,没有比他更高的,就直接视为顶点 其实就是个BFS染色,先按降序排序,然后每个点对其可到达的点染色,h-d的点为边界,走到这里就不用往下染了 然后其他店染色的...
阅读全文
摘要:给定N个点的坐标,代表N各城市,有M种操作,共分两种,一种是连线,把两个点连起来(一旦构成连通图,这个连通图即为一个州),还有种询问操作,为y=c,(c为小数部分恒为.5的实数),问y=c这条线经过了多少个大周,这些州总共有多少个城市很明显要用到并查集,比较好的做法是把并查集落实到线段树上,并查集维...
阅读全文
摘要:题意很简单,给定一个N*N的大矩阵,求其中数值和最大的子矩阵。一开始找不到怎么DP,没有最优子结构啊,后来聪哥给了我思路,化成一维,变成最大连续和即可。为了转化成一维,必须枚举子矩阵的宽度,通过预处理的suffix可以很快计算出每一列某一段的和,然后进行一维DP即可。。总复杂度为 O(N^3);#i...
阅读全文
摘要:我们知道1——k有K!种排列,现在给定k和n,要你按字典序输出 第n种排列的数列而且题目给的 n是 n=S1(k-1)!+S2(k-2)!+...+Sk-1*1!+Sk*0!(0=#include #include #include #define N 50000+10using namespace...
阅读全文
摘要:聪哥推荐的题目区间修改和区间查询,但是此题新颖之处就在于他的区间修改不是个定值,而是从L 到 R 分别加 F1、F2、。。。Fr-l+1 (F为斐波那契数列)想了一下之后,觉得用fib的前缀和来解决,每次做懒惰标记记录下当前区间是从哪个L开始加起的,敲了一半之后发现有问题,就跟上次遇到的懒惰标记问题...
阅读全文
摘要:前天晚上的CF比赛div2的E题,很明显一个线段树,当时还在犹豫复杂度的问题,因为他是区间修改和区间查询,肯定是要用到懒惰标记。然后昨天真的是给这道题跪了,写了好久好久,。。。我本来是写了个add标记作为累加用,因为这个题目很明显是累加型的懒惰标记,但是后来不知道脑子怎么想的,又把add标记给删了,...
阅读全文
摘要:惨。今天聪哥选了2013 多校10做训练,结果一题都没做出来。这个题目是数据结构,正好是我强项如果只是插入 删除 光标左右移动,那都小菜,用链表全解决,关键是那个Q k 要求 a1到aq的连续子序列和最大(子序列一定要以a1开头)。然后我用记录每个节点的当前最大和总体最大,这样只要知道第k个是哪个数...
阅读全文
摘要:这个题目让我想起了上次在湘潭赛的那道跪死了的题。也是最值问题,这个也是,有n个动物园 每个都有权值 然后被m条路径相连接,保证图是连通的,然后求所有的p[i][j]之和.i,j为任意两个zoo,pij就为i到j路上遇到的包括i j在内的最小权值的zoo然后我就焦头烂额了一下,这个明显就是看某个最小值...
阅读全文
摘要:这个题目蛮有新意的,一度导致我没看透他是区间DP给一个0-L长度的木板,然后给N个数,表示0-L之间的某个刻度,最后要用刀把每个刻度都切一下 使其断开,然后每次分裂的cost是分裂前的木板的长度。求整个分开之后的最小cost。当时下意识就想到类似花瓶插花问题,即dp[i][j],表示第i个事物放在第...
阅读全文
摘要:这个题目要求和 还有 设置区间值 区间增值,明显要用线段树来由于行数不超过20 而列数多达 10^5,所以对每一行建一棵线段树。然后主要是在懒惰标记方面是难点 针对两种操作 分别设置 set 和 add 方法,但是优先级方面要好好考虑可能出现的结果无非是 单独的 set 或者 add 以及 先set...
阅读全文
摘要:这个题目要求把一个无向连通图里面的所有边,分成 两个一对,只能出现一次,而且一对边必须是连在一起的,点可以复用 但边不可复用可解条件很易得,因为图是连通的,只要边数为偶数即可。一开始我借着做欧拉回路的方法,直接DFS暴搜,沿路做标记,遇到未标记的连续两条边 输出即可不过 事实证明这个算法是错的暴搜能...
阅读全文
摘要:擦。。今天这套题好尼玛难啊,做了一个小时,连一题都没做出来,而且还没什么头绪查了下出题人,师大附中的 14年毕业 13年拿到的国家集训队资格 保送清华题意是 给一串序列,计算一个值,这个值是 相邻两数的距离(或者说差的绝对值)的总和,你可以改变任意一种数(即序列里所有该数字全部变成另一个数),但只能...
阅读全文
摘要:已知有 x[0-(n-1)],但是不知道具体的值,题目给定的信息 只有 I P V,说明 Xp=V,或者 I P Q V,说明 Xp ^ Xq=v,然后要求回答每个询问,询问的是 某任意的序列值Xp1^Xp2,,,,X^pk这个题目用加权并查集是这么处理的:1. f[]照样是代表父节点,照样进行路径...
阅读全文

浙公网安备 33010602011771号