随笔分类 -  Atcoder

摘要:"atcoder" ~~一道小清新dp题~~ 我们设$f[i][j]$表示当前放了$i$个白球和$j$种其他颜色的球$(j include include include using namespace std; define rg register void read(int &x){ char 阅读全文
posted @ 2019-09-11 20:33 蒟蒻--lichenxi 阅读(151) 评论(0) 推荐(0) 编辑
摘要:"传送门" 好妙的一道题,题目要求的其实是这个式子 $$ \sum_{i=1}^{n}\sum_{j=i+1}^{n}\binom{a_i+b_i+a_j+b_j}{a_i+a_j} $$ 但是直接计算显然是$O(n^2)$的,看起来也没法优化 由于$n$比较大,而坐标范围比较小,我们发现,~~我才 阅读全文
posted @ 2019-05-30 19:30 蒟蒻--lichenxi 阅读(166) 评论(0) 推荐(0) 编辑
摘要:"传送门" ~~这里提供智障的$O(n^2)$做法~~ 其实是有$O(logn)$做法的,但是我太菜了想不出来 Solution: 首先可以发现生成的序列一定是一个两边向中间单调递减的序列 这样就可以发现我们的删除序列也是一个有两个单调递减的子序列的序列 然后我们就可以设$f[i][j]$为当前确定 阅读全文
posted @ 2019-04-23 18:26 蒟蒻--lichenxi 阅读(178) 评论(0) 推荐(0) 编辑
摘要:"传送门" 这个是真的简单题,随便手玩一下就可以发现最优策略一定是给$1$加上自环 然后就可以dfs一下看哪些点子树里深度最深的点到当前点的距离会等于$k 1$,然后将当前点连向$1$(当然特判一下父亲节点是不是$1$),就好了 代码: c++ include include include inc 阅读全文
posted @ 2019-04-22 14:01 蒟蒻--lichenxi 阅读(146) 评论(0) 推荐(0) 编辑
摘要:"传送门" 其实有一个显然的性质嘛:对于每个数,其实只要考虑它最右能被换到的位置就好了 然后设$f[i][j]$表示已经处理完了前$i 1$位,当前还有$j$个$1$可以自由支配(注意这里说的是当前可以自由支配,不是总共可以自由支配的$1$) 代码: c++ include include incl 阅读全文
posted @ 2019-04-22 11:17 蒟蒻--lichenxi 阅读(213) 评论(0) 推荐(0) 编辑
摘要:"传送门" 这个题只要想到移动机器人和移动出口是等价的就好做了 考虑设$f[i][j][k][t]$为最远向左移动$i$,向右移动$j$,向上移动$k$,向下移动$t$,这个矩形内最多能救的机器人 转移就记录一个前缀和来辅助转移,这样复杂度就在能通过的范围内了 但是转移还是比较麻烦的,还需要考虑当前 阅读全文
posted @ 2019-04-20 17:39 蒟蒻--lichenxi 阅读(184) 评论(0) 推荐(0) 编辑
摘要:"传送门" 智障爆搜题 可以发现题目给出的式子可以移项 然后就是$rev(N) N=D$ 然后假设$N=a_1 10^{n 1}+a_2 10^{n 2}+...+a_{n}$ 那么$rev(N)=a_n 10^{n 1}+a_{n 1} 10^{n 2}+...+a_{1}$ 就容易得到$\sum 阅读全文
posted @ 2019-04-20 12:58 蒟蒻--lichenxi 阅读(241) 评论(0) 推荐(0) 编辑
摘要:"传送门" 显然$a b$的情况下才有解 考虑先找出一个诚实的人,然后剩下的都可以在$n$次以内问出来了 发现如果一个人说另一个人是说谎的那么这两个人必有一个是说谎的,由于诚实的人严格多于不诚实的人,我们就可以把他们都丢掉 我们可以考虑维护一个栈,这样找出来的栈顶一定是诚实的人,总次数也在$2n$以 阅读全文
posted @ 2019-04-19 16:43 蒟蒻--lichenxi 阅读(191) 评论(0) 推荐(0) 编辑
摘要:"传送门" 这个题是真的巧妙 首先一个很巧妙的思路,差分 考虑假如$a_i!=a_{i 1}$,则$b_i=1$,否则$b_i=0$ 这样一来,一个区间的翻转就变成了对于两个数的取反了 然后我们来考虑一下取反的代价(没错这个题我就只想到了这个) 1、假如距离是奇质数,只要1步,显然 2、假如距离是偶 阅读全文
posted @ 2019-04-19 16:28 蒟蒻--lichenxi 阅读(207) 评论(0) 推荐(0) 编辑
摘要:"传送门" 考虑到一个很显然的事实:水是逃不掉的,一定要接的 所以我们就可以得到一个结论:如果当前的水温比上次低,就混合起来(因为水是逃不掉的),如果高就保留(因为我可以将前面的全部抛弃,只取这个高的) 维护一个单调递增队列,复杂度$O(n)$,然后就做完了,答案就在做的过程中统计就好了 代码: c 阅读全文
posted @ 2019-04-18 21:52 蒟蒻--lichenxi 阅读(151) 评论(0) 推荐(0) 编辑
摘要:"传送门" 这个题网上有两种做法,一种是树状数组的,还有一种是暴力模拟的,暴力模拟显然不够优美,所以我用的树状数组 显然可以从初状态推到目标状态,我们也可以考虑倒推回去 首先可以容易发现每列的数字是不变的,所以可以把一些奇奇怪怪的情况先处理掉 每次旋转会使矩阵翻转并且每列取反,发现行其实没什么用,可 阅读全文
posted @ 2019-04-17 21:27 蒟蒻--lichenxi 阅读(168) 评论(0) 推荐(0) 编辑
摘要:"传送门" 按理说想到转化问题之后就不难了吧,可是我还是不会写 一个很容易想到的转化就是差分,将银币数和铜币数都减去金币数,这样就转化为$x+y+z$个钱币选$y$个银币和$z$个铜币的最大数量了 ~~然后我这个菜逼就不会做了~~ 设总钱币数为$n$,银币$x[i]$个,铜币$y[i]$个,就可以按 阅读全文
posted @ 2019-04-17 15:13 蒟蒻--lichenxi 阅读(165) 评论(0) 推荐(0) 编辑
摘要:"传送门" 好神的状压dp啊 首先考虑一个性质,删掉之后的图一定是个联通图 并且每个点最多只与保留下来的那条路径上的一个点有边相连 然后设状态:$f[s][t]$代表当前联通块的点的状态为$s$和路径结尾的点$t$ 然后考虑转移,要么拓展一个点作为路径,要么挂一个联通块到当前路径结尾的点上 代码: 阅读全文
posted @ 2019-04-16 18:42 蒟蒻--lichenxi 阅读(300) 评论(0) 推荐(0) 编辑
摘要:"传送门" 还是猜结论呢 然后我们就想我们可以每次去掉尽量多的位数来保证次数最小,假装这是对的,先写一发,A了 考虑如何去掉尽量多的位数,我们可以找到最大的几位的不下降序列,把最后一个 1,后面全部改成9,这样我们就得到了一个每次去掉数字最前的一个不下降序列,然后将最后一位+1的做法 然后发现有一种 阅读全文
posted @ 2019-04-15 13:04 蒟蒻--lichenxi 阅读(129) 评论(0) 推荐(0) 编辑
摘要:"传送门" 还是看题解的啦 先考虑一个显而易见的结论:A和B二进制下最高的几位相同是没用的(设去掉的那些位之和为sum) 然后我们设$d$为二进制下从高位到低位第一位不相同的,$k$为B从高位到低位第二个不为0的 然后我们分几段来统计答案 首先,$[A,2^d 1+sum]$显然是可以凑出来的 然后 阅读全文
posted @ 2019-04-14 21:57 蒟蒻--lichenxi 阅读(176) 评论(0) 推荐(0) 编辑
摘要:"传送门" 感觉性质挺好想的,就是二分答案怎么就是想不到呢 考虑先二分出一个值,比他大的设为1,比他小的设为0 然后就可以$O(n)$地推出第一行是0还是1: 1、如果没有两个相邻且相等的,那么中间那个也就是第一行的 2、如果有两个相邻且相等的,那么第一行显然就是离底层最近的那个相邻且相等的 性质就 阅读全文
posted @ 2019-04-14 10:43 蒟蒻--lichenxi 阅读(183) 评论(0) 推荐(0) 编辑
摘要:"传送门" 乍一看像是一个计算几何,然后想到了BFS,但是苦于无奈$O(n^2)$不会优化 然后以下参考zjq_shadow大佬的思路 显然发现曼哈顿距离很麻烦,除了暴力枚举貌似没什么很好的办法 考虑将坐标轴旋转$45^\circ$,然后就可以将曼哈顿距离转化为切比雪夫距离,坐标为$(x,y)$的点 阅读全文
posted @ 2019-04-12 15:23 蒟蒻--lichenxi 阅读(562) 评论(0) 推荐(0) 编辑