09 2018 档案
该文被密码保护。
摘要:题目:https://www.lydsy.com/JudgeOnline/problem.php?id=2006 本来应该是可以用主席树,找区间最小值,取出来后再找那段区间的次小值...... 但也可以只找最小值,取出来后把原来区间分裂成两个,继续找最小值,用ST表即可; 发现自己还没写过 ST 表
阅读全文
摘要:题目:https://www.lydsy.com/JudgeOnline/problem.php?id=4571 区间找异或值最大,还带加法,可以用主席树; 可以按位考虑,然后通过加上之前已经有的答案、减去题目给的那个 x ,得到满足这一位最大的值的范围,查找一下有没有即可; 注意如果写 b&(1<
阅读全文
摘要:题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1014 用 splay 维护字符串上不同位置的哈希值还是第一次... 具体就是每个节点作为位置被不断旋转,点上维护的哈希值就是此时它及其儿子这一段区间的哈希值; 要查询 LCQ,可以二分一个长度
阅读全文
摘要:题目:https://www.lydsy.com/JudgeOnline/problem.php?id=2962 维护 sum[i] 表示选 i 个的乘积和,合并两个子树就枚举两边选多少,乘起来即可; 取反只需要把奇数个数的乘积和变成相反数即可; 关键是区间 + k:比如对于一个元素,原来是 a,
阅读全文
摘要:题目:http://codeforces.com/contest/809/problem/D 看题解,抄标程...发现自己连 splay 都快不会写了... 首先,题目就是要得到一个 LIS; 但与一般不同的是,新加入的不是一个值,而是一个取值范围; 仍是设 f[i] 表示长度为 i 的 LIS 的
阅读全文
摘要:题目:https://www.lydsy.com/JudgeOnline/problem.php?id=3489 题解:http://www.itdaan.com/blog/2017/11/24/9bc46b690756fe252e17fc3ca90aa01.html 在我挣扎一下午时 Narh 早
阅读全文
摘要:题目:http://codeforces.com/contest/949/problem/D 先二分一个答案,让两边都至少满足这个答案; 由于越靠中间的房间越容易满足(被检查的时间靠后),所以策略就是优先满足中间的房间,舍弃两边边缘的; 所以就由外到内推过来就可以了,用一个指针记录现在已经使用到的房
阅读全文
摘要:题目:https://www.lydsy.com/JudgeOnline/problem.php?id=3232 心烦意乱的时候调这道题真是...越调越气,就这样过了一晚上... 今天再认真看看,找出几处小错,就A了... 关于题解:https://www.cnblogs.com/CQzhangyu
阅读全文
摘要:题目:https://www.lydsy.com/JudgeOnline/problem.php?id=4753 注意赋初值为 -inf; eps 设为 1e-3 会 WA ... 代码如下:
阅读全文
摘要:题目:https://www.lydsy.com/JudgeOnline/problem.php?id=5281 二分一个答案比值,因为最后要*1000,不如先把 v[] *1000,就可以二分整数; 枚举 mid ,如果 mid 小于等于 ans ,则 ∑v[i] - mid * ∑w[i] >=
阅读全文
摘要:题目:https://www.lydsy.com/JudgeOnline/problem.php?id=3872 从食蚁兽所在的边向叶节点推,会得到一个渐渐放大的取值区间,在叶子节点上二分有几群蚂蚁符合条件即可; 注意中途判断,如果已经超过范围就返回或者处理一下,据说会爆 long long 之类的
阅读全文
摘要:题目:https://www.luogu.org/problemnew/show/P1344 就是求最小割; 但是还要边数最小,所以把边权都*1001+1,这样原来流量部分是*1001,最大流一样的不影响,而+1会使其尽量减少边数; bfs 里忘了给 dis[] 赋0了调了好半天...尴尬... 代
阅读全文
摘要:题目:https://www.luogu.org/problemnew/show/P1262 首先,一个强连通分量里有一个点被控制则所有点都被控制,所以先 tarjan 缩点,记一下每个连通块中能被收买的人的最小价钱,和整个连通块的点的最小 id; 然后如果有入度为0的点不能被收买,则输出 NO,找
阅读全文
摘要:题目:https://www.lydsy.com/JudgeOnline/problem.php?id=3714 因为每个杯子下最多一个小球,所以从奇偶性就可以看出有没有球; 询问一段区间,等于知道一段区间的奇偶性; 设 s[i] 表示从 0 到 i 的小球总数的奇偶性,已知 s[0] = 0; 那
阅读全文
摘要:题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1731 差分约束; ML: dis[y] - dis[x] <= k,即 x 向 y 连边权为 k 的边; MD: dis[y] - dis[x] >= k,即 y 向 x 连边权为 -k 的边
阅读全文
该文被密码保护。
摘要:题目:https://www.lydsy.com/JudgeOnline/problem.php?id=4883 首先,注意到每个点可横可竖,但花费一样; 所以考虑行列的交集,那么这个条件可以转化为行点和列点之间的边,边权就是花费; 如果行和列都按原图交点连了边,那么问题就转化成在有向图中,每个点(
阅读全文
摘要:题目:https://www.luogu.org/problemnew/show/P1979 真是一道好题... 首先考虑暴力做法,应该是设 f[i][j][x][y] 记录指定棋子和空格的位置,然后 bfs 转移; 然后发现,这些状态中有很多无用的,换句话说,就是仅当空格在指定棋子旁边时才有用,能
阅读全文
摘要:题目:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1443 首先要得到一个最短路树; 注意边权和最小,因为在最短路中,每个点的 dis 都是固定的,所以边权和最小... 边权和会不同是因为,虽然 dis 固定,但由于组成
阅读全文
摘要:题目:https://www.lydsy.com/JudgeOnline/problem.php?id=2067 问题1:贪心考虑,应该是每个点的儿子尽量两两配对,如果剩一个就和自己合并向上,所以 ans = 1 + ∑(1<= i <= n ) (deg[i] - 1)/2 问题2:二分最长线段的
阅读全文
摘要:题目:https://www.luogu.org/problemnew/show/P1084 5个月前曾经写过一次,某个上学日的深夜,精疲力竭后只有区区10分,从此没管... #include<iostream> #include<cstdio> #include<cstring> #include
阅读全文
摘要:题目:http://codeforces.com/contest/600/problem/E 看博客:https://blog.csdn.net/blue_kid/article/details/82192641 https://blog.csdn.net/clove_unique/article/
阅读全文
摘要:题目:http://codeforces.com/problemset/problem/1042/A 代码如下:
阅读全文
摘要:题目:https://www.luogu.org/problemnew/show/P1314 显然就是二分那个标准; 当然不能每个区间从头到尾算答案,所以要先算出每个位置被算了几次; 不知为何自己第一想法是把符合要求的位置插入树状数组再遍历区间得到该区间内的个数然后在其左右端点差分最后遍历位置时一边
阅读全文
摘要:题目:https://www.luogu.org/problemnew/show/P2585 首先,三色其实记录两种状态:是绿色,不是绿色 即可,因为红蓝可以随意取反; 一开始因为懒得还原出树,所以写了个错误贪心-_- #include<iostream> #include<cstdio> #inc
阅读全文
摘要:题目:https://www.luogu.org/problemnew/show/P1131 记录 x 子树内同步的时间 f[x],同步所需代价 g[x]; 直接转移即可,让该儿子子树与其它儿子同步,只需要在自己到儿子的那一条边上改动。 代码如下:
阅读全文
摘要:题目:http://codeforces.com/contest/908/problem/D 首先,设 f[i][j] 表示有 i 个 a,j 个 ab 组合的期望,A = pa / (pa + pb) , B = pb / (pa + pb) 那么 f[i][j] = A * f[i+1][j]
阅读全文
摘要:题目:http://noi.ac/problem/31 好题啊! 题意很明白,对于有关最小生成树(MST)的题,一般是要模拟 Kruskal 过程了; 模拟 Kruskal,也就是把给出的 n-1 条边一条一条加进去,那么就要枚举每次连接了哪两个连通块(点集); 于是需要记录连通块情况,这样加一条边
阅读全文
摘要:题目:https://www.luogu.org/problemnew/show/UVA10559 区间DP,有点难想; 为了方便,先把原来就是连续一段相同颜色的点看做一个点,记一下长度; f[i][j][k] 表示右边有 k 个和 j 颜色相同的点时(其它都已经各自被消掉),消除 i ~ j 区间
阅读全文
摘要:题目:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1522 区间DP,从大往小加; 新加入一种数有3种加法:全加左边,全加右边,一左一右; 然后判断一下加完是否满足那些条件即可; 但判断这个条件还挺复杂,一不小心就写丑了
阅读全文
摘要:题目:https://www.luogu.org/problemnew/show/P2577 首先,想一想可以发现贪心策略是把吃饭时间长的人放在前面; 设 f[i][j] 表示考虑到第 i 个人,目前第一个窗口排队总时间 j ,所有人吃完最晚的时刻; 于是可以算出来第二个窗口的排队总时间,就可以转移
阅读全文
摘要:题目:https://loj.ac/problem/6089 对于 i <= √n ,设 f[i][j] 表示前 i 种,体积为 j 的方案数,那么 f[i][j] = ∑(1 <= k <= i ) f[i-1][j - k*i] 可以用前缀和优化,因为第 i 次只会用到间隔为 i 的和; 对于
阅读全文
摘要:题目:https://www.luogu.org/problemnew/show/P1969 看每个高度和前面的关系即可。 代码如下:
阅读全文
摘要:题目:https://www.luogu.org/problemnew/show/P1965 居然真的就只是 ( x + m * 10k % n ) % n 代码如下:
阅读全文
摘要:题目:https://www.luogu.org/problemnew/show/P1970 普通的DP,f[i][0/1] 表示 i 处处于较小或较大的长度; 注意:1.树状数组向后 query 时不能有0,所以读入的 h[i] 都+1; 2.可能有相同的高度!所以 query 时注意 +1,-1
阅读全文
摘要:题目:https://www.luogu.org/problemnew/show/P1966 首先,一个排列相邻交换变成另一个排列的交换次数就是逆序对数; 随便画一画,感觉应该是排个序,大的对应大的,小的对应小的差值最小,具体证明的话应该是分类讨论一下吧; 操作两个序列可以转化成操作一个序列,大小对
阅读全文
摘要:题目:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1450 期望DP; INF 表示这种情况不行,转移时把不行的概率也转移到自身即可; 还要按得星概率排个序,先决策概率大的就是最优策略,因为后面的都基于它。 代码如下:
阅读全文
摘要:题目:https://www.luogu.org/problemnew/show/P2312 https://www.lydsy.com/JudgeOnline/problem.php?id=3751 10^10000 太大了,高精度也很难做,怎么办? 注意我们要求的是方程的值 = 0 的解,不妨在
阅读全文
摘要:题目:https://www.luogu.org/problemnew/show/P1351 树形DP,别忘了子树之间的情况(拐一下距离为2)。 代码如下:
阅读全文
摘要:题目:https://www.luogu.org/problemnew/show/P1328 直接模拟即可。 代码如下:
阅读全文
摘要:题目:https://www.luogu.org/problemnew/show/P2038 大水题暴露出我的愚蠢。 用二维树状数组,然而居然忘了它应该那样写,调了一个小时; 正方形可以超出外面,只要中心在里面即可。 代码如下:
阅读全文
摘要:题目:https://www.luogu.org/problemnew/show/P2296 第一次用 Emacs 对拍,写了半天; 注意那个 is 赋值的地方很容易错,千万别反复赋值; 一道水题写了一个下午,崩溃。 代码如下:
阅读全文
摘要:题目:https://www.luogu.org/problemnew/show/P2615 直接按题意模拟即可; 用 Emacs 做的第一道题! 代码如下:
阅读全文
摘要:题目:https://www.luogu.org/problemnew/show/P2678 二分答案。 代码如下:
阅读全文
摘要:题目:https://www.luogu.org/problemnew/show/P2822 阶乘太大,算不了; 但 k 只有 8 个质因子嘛,暴力60分; #include<iostream> #include<cstdio> #include<cstring> #include<algorith
阅读全文
摘要:题目:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1486 对于每个点,求出从起点到它,不经过其他障碍点的方案数; 求一个点时,首先得到走到它的所有方案,减去 x , y 都小于它的点的方案 * 走到该点的方案数; 由于
阅读全文
摘要:题目:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1967 显然是欧拉回路问题,度数为奇数的点之间连边,跑欧拉回路就可以得到方案; 想一想不会有奇数个奇度数的点,否则总度数就是奇数,但一条边增加两个度,所以总度数一定是偶
阅读全文
摘要:题目:https://www.luogu.org/problemnew/show/P3960 NOIP 题,不用很复杂的数据结构...但又参考了许多; 要求支持维护删除第 k 个和在末尾插入的数据结构,线段树就很好; 所以每行一个线段树维护前 m-1 个元素,最后一列一个线段树即可; 但 n+1 个
阅读全文
摘要:题目:http://codeforces.com/contest/1036/problem/B 题意:从 (0,0) 走到 (n,m),每一步可以向八个方向走一格,问恰好走 k 步能否到达,能到达则输出最多能走多少斜步; 自己想得太复杂了... 首先,判断 -1 就看横纵距离中的较大值是否大于 k
阅读全文
摘要:题目:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1301 参考博客:https://blog.csdn.net/qq_33229466/article/details/78418414 原来是DP。 代码如下:
阅读全文
摘要:题目:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1250 看了半天... 把第一问想成逆序对的话似乎很容易想了,新加入一个数,可以往前挪动,增加的逆序对数就是它后面那些数的个数; 所以 f[i][j] = ∑(k =
阅读全文
摘要:题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1455 还是对并查集的 rt 不太熟悉... 注意删去一个堆顶后把它的 fa (rt) 改成儿子合成的新堆顶,这样路径压缩也没有错了。 代码如下:
阅读全文
摘要:题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1078 考察斜堆的性质; 一个点如果没有左子树,也一定没有右子树; 看了这篇精美的博客:http://www.cppblog.com/MatoNo1/archive/2013/03/03/192
阅读全文
摘要:题目:https://www.lydsy.com/JudgeOnline/problem.php?id=2333 稍微复杂,参考了博客:http://hzwer.com/5780.html 用 set 维护全局的最大值就可以方便地删除和查询了; 大概就是写一堆关于可并堆的子函数吧; 这里还用了斜堆,
阅读全文
摘要:题目:http://acm.hdu.edu.cn/showproblem.php?pid=1512 很简单的左偏树; 但突然对 rt 的关系感到混乱,改了半天才弄对; 注意是多组数据! 还可以把 rt 当并查集用,因为并查集实际上也是树,似乎更简洁; 代码如下:
阅读全文
摘要:题目:https://www.lydsy.com/JudgeOnline/problem.php?id=4003 其实蛮简单的,首先一个城市只会被其子树中的骑士经过,启发我们 dfs 序用可并堆合并子树信息; 先乘后加,和带乘法的线段树一个方法; 如果秒 WA 的话,把读入全写成 %lld 就好了.
阅读全文

浙公网安备 33010602011771号