摘要:
Description 给定一个长度为N的序列,每个序列的元素是一个整数。要支持以下三种操作: 1. 将[L,R]这个区间内的所有数加上V。 2. 将[L,R]这个区间翻转,比如1 2 3 4变成4 3 2 1。 3. 求[L,R]这个区间中的最大值。 最开始所有元素都是0。 Input 第一行两个 阅读全文
摘要:
T1神经网络 题目链接 这道题是第一题,把它放在签到题的位置就不用想太多。听说可以用拓扑排序,但是实际上由于数据比较水,裸的bfs即可AC。 注意几点:输入层的ci[i]不需要减去ui[i];只有当ci[i]>0时才能传递给下一层;只需要输出ci[i]>0的输出层。 剩下的细节实现看代码: #inc 阅读全文
摘要:
题目传送门 这道题可以用多叉树转二叉树的方法,左子树为儿子,右子树为同个父亲的兄弟,这样的话就可以很方便地写出状态转移方程: f[x][v]=max(f[x][v],w[x]+dp(ch[x][0],i)+dp(ch[x][1],v-i-1)); 要注意的是,f[x][v]可能在之前已经计算过(比如 阅读全文
摘要:
T1津津的储蓄计划 题目链接 签到题,直接模拟: #include<cstdio> #include<cstring> #include<iostream> #include<algorithm> using namespace std; int main() { int ans=0,now=0,a 阅读全文
摘要:
2017的暑期,是高中生涯唯一一个能称得上暑期的东西了,也是决定我OI这个坑能挖多大的关键时期! 嗯,这个暑期不能颓,一定要好好挖坑,好好补题! 既然入了坑,就努力把坑挖穿再出来! 2017.11.6 时间不够,普及组弃坑辣TwT 暑期挖坑计划之NOIP提高组篇: NOIP2003(3/4) NOI 阅读全文
摘要:
Problem Description N个气球排成一排,从左到右依次编号为1,2,3....N.每次给定2个整数a b(a <= b),lele便为骑上他的“小飞鸽"牌电动车从气球a开始到气球b依次给每个气球涂一次颜色。但是N次以后lele已经忘记了第I个气球已经涂过几次颜色了,你能帮他算出每个气 阅读全文
摘要:
扩展欧几里得的模板题,要记住: x=y1; y=x1-a/b*y1。 这道题的推导过程如下: 1.因为A/B==0,所以令A/B=x,即A=Bx。又因为n=A%m,所以m*y+n=A。 由上面可推导出Bx-my=n。 2.由扩展欧几里得算法可以算出B*x1+m*y1=1的根,等式两边同时乘上n可以变 阅读全文
摘要:
推荐一波题解:http://blog.csdn.net/yuyanggo/article/details/48154031 这道题很容易想出要用DFS,但是单纯的DFS枚举时间复杂度会达到O(n!),这个复杂度是难以接受的,因此我们要想办法剪去一些不必要的情况: 1.用used[i]表示i这个数字是 阅读全文
摘要:
这道题用treap写其实更适合,但是因为要熟悉splay的写法就写一遍splay啦。 然后没什么难的,就当是模版了吧! #include<iostream> #include<cstdio> #include<algorithm> #include<cstring> const int M=1e5+ 阅读全文
摘要:
splay的高级题目,有splay的全部操作,然而本蒟蒻竟不自量力地把这道题作为splay的入门题,然后就学(mi)习(man)了一个星期…… 第一次是对着cyc的模版码的,万分感谢>< 第二次就自己码了一个小时(弱......) 就作为一个splay学习的模版吧! #include<cstdio> 阅读全文
摘要:
没学ST之前肯定是用线段树什么的写,不过如果把它看作一个RMQ问题代码量突然就降了下来。 ST算法可以实现O(NlogN)预处理,O(1)时间查询。 蓝书上说的是开三个num,left和right数组存该位置所在段的编号和左右端点位置,其实没有必要,只要从l向右走到第一次出现的数字(即第t位)那里( 阅读全文
摘要:
给棋盘黑白染色,源点向不为障碍的奇点连一条权值为1的边,向可以攻击到的偶点连一条边,权值为inf;偶点向汇点(t=n*n+1)连一条权值为1的边。 跑最小割,最小割的意义就是看至少要放弃几个点(即这里不放骑士)才能使他们不会互相攻击,最后用总格数减去最小割时记得也要减去障碍数,即n*n-ans-m. 阅读全文
摘要:
代码基本是跟着yy dalao码的吧, 主要是要知道单调队列优化要怎么做, f[i][j]表示第i天手里有j股时的收益。 从第一天到第w+1天初始化为-e[i].ap*j(因为此时只能买不能卖),其余为-inf。 分三种情况: 1.不买不卖:即f[i][j]=max(f[i][j],f[i-1][j 阅读全文
摘要:
这道题是很简单的分块吧,统计每个块里要中转的次数(即st数组),最后输出即可。 如果修改某个弹力装置的弹力系数,那么要从这个装置开始往回走到这一块的最左端(即l[belong[b]]),修改相对应的st数组和pt数组,它前面的块和后面的块都不受影响(因为st统计的是走到这一步到走出这一个装置所属的块 阅读全文
摘要:
听说这道题可以用树状数组什么鬼的做,反正我不会,还是老老实实打manacher+贪心大法吧…… 我们只要在跑manacher的过程中,用一个结构体(也可以直接用数组)来记录以每个字符为对称轴的最长回文的最左端和最右端,然后就得到了一些线段,于是问题完美地转换成了求取最少段的线段来完全覆盖一个区间了, 阅读全文
摘要:
其实这道题本质上也是取石子问题,那么我们还是可以用博弈论来解决。 首先还是特判,若(n>=m)直接输出从n到m的所有整数即可。 然后作进一步分析,可以看到如果目前的竞价是m-(n+1),也就是说离m还有n+1的距离,那么此时轮到竞拍的人必输,所以要尽量给对手这样的点。 同样的,当i*(n+1)<m< 阅读全文
摘要:
这道题就是noi.openjudge.cn上的取石子问题,之前是用搜索写的,但今天发现用博弈论的思路来写会简单非常非常多! 首先,如果m>=n,那么第一个人必胜。 那么如果现在剩下m+1个石子,那么接下来那个人无论取1到m中任意一个数字的石子数,都无法取完石子并会剩下1-m个石子,这样的话下一个人一 阅读全文
摘要:
Problem Description One day, sailormoon girls are so delighted that they intend to research about palindromic strings. Operation contains two steps: F 阅读全文
摘要:
gdkoi时看了一下manacher,发现太弱看不懂…… 如今4个月过去了,终于回想起这遗漏的算法,赶紧回来学了。 这道题是manacher裸题,其实只要理解了并不难。 网上有很多博客都写了该算法的原理,这里就不展开了。 说几个要注意的地方: 1.s数组要开大!(我才不会告诉你我第一次就是因为没开两 阅读全文
摘要:
第二道treap题,码完之后总是RE……查了两个多小时的错,对拍了三四份代码啊啊啊 刚开始发现if(tree[k].l*tree[k].r==0)k=tree[k].l+tree[k].r;这一句写错了,但改完还是WA或RE…… 于是又找了接近两个小时的错啊啊啊,终于发现是左旋操作中的一个t打成了k 阅读全文