上一页 1 ··· 7 8 9 10 11 12 13 14 15 ··· 18 下一页
摘要: 题解: 阅读全文
posted @ 2018-05-29 00:24 尹吴潇 阅读(109) 评论(0) 推荐(0) 编辑
摘要: 题意: 给定一棵n个节点的树,有边权。m个操作,操作1:给定a,b,求树上a到b上有多少个数字段(比如11233就是3段);操作2:给定a,b,c,将树上a到b路径上所有的边权全部修改为c。 题解: 很水的一道题 考虑一下树剖,线段树维护区间内子段个数以及头尾然后查询的时候合并一下就可以了 代码: 阅读全文
posted @ 2018-05-29 00:23 尹吴潇 阅读(112) 评论(0) 推荐(0) 编辑
摘要: 长链剖分 阅读全文
posted @ 2018-05-29 00:18 尹吴潇 阅读(208) 评论(0) 推荐(1) 编辑
摘要: 题解: 首先分数规划是很明显的 然后在于我们如何要快速要求yi-mid*xi的最值 这个是看了题解之后才知道的 这个是斜率的一个基本方法 我们设y=mid*x+z 那么显然我们可以把(x,y)插入到一个二维平面上 那么答案就是斜率为mid的与这个凸包相切的线 为什么要维护凸包呢,因为一旦下凸就不可能 阅读全文
posted @ 2018-05-29 00:13 尹吴潇 阅读(160) 评论(0) 推荐(0) 编辑
摘要: 题解: 还是比较水的一道题 首先可以发现每个数最多被除log次,所以有连续一段相同 然后我想的是变成矩形统计前缀和问题用主席树来维护 然后发现这题很卡空间 qwq acm依旧很多64mb的题 首先比较重要的一点是 这题如果不用标记永久化 需要用到down 主席树down需要新开节点(随意yy一下就知 阅读全文
posted @ 2018-05-29 00:11 尹吴潇 阅读(184) 评论(0) 推荐(0) 编辑
摘要: 题解: 这题跟超级noi钢琴思路大致相同 不同之处在于如何寻找最大值 这道题里出现了每个数都只能被算一次这个限制 我们考虑一下如果还要使用主席树和前缀和该怎么做 我们每次操作一个数时,可以让这个数上一次出现的位置 当前位置都减去这个值就可以了 代码: 阅读全文
posted @ 2018-05-26 16:47 尹吴潇 阅读(153) 评论(0) 推荐(0) 编辑
摘要: 题解: 弹球题目地址:https://www.nowcoder.com/acm/contest/113/E 后面这题 应该是天天爱跑步的加强版本 原理都是查询子树中dep[x]+f[x]的值的个数 由树变成了基环树 天天爱跑步我以前写过splay启发式合并和树剖 因为是离线,现在发现直接差分应该更加 阅读全文
posted @ 2018-05-26 14:42 尹吴潇 阅读(159) 评论(0) 推荐(0) 编辑
摘要: 题解: 这个东西我觉得好像并没有意思。。 就是看书的事情 定义sg(x)函数 当且仅当为0时是必败状态 每个点的sg值等于mex(后继状态) mex是指最小的没有出现在后继状态中的值 然后多组就是将sg值^起来 然后nim游戏可以证明出sg(x)=x 所以就等于所有的^起来啊 然后下面是蓝书上的几道 阅读全文
posted @ 2018-05-25 00:42 尹吴潇 阅读(121) 评论(0) 推荐(0) 编辑
摘要: 题解: 我觉得可能该去看看扫描线的难一点的题目。。 我好像只会求面积求周长。。 这题我想的是对每个点求一下以它为右上角对应的区间的和 坐标可以离散化一下二分查找一下对应的位置 然后树套树维护一下 我以为他这个n只给了1e4所以这个很有理有据。。。 然后这种题目其实套路差不多都是扫描线吧 就是扫x轴, 阅读全文
posted @ 2018-05-25 00:38 尹吴潇 阅读(267) 评论(0) 推荐(0) 编辑
摘要: 题解: 想的和标算不是很一样 标算实现起来应该比较简单吧 我的做法: 对每个点维护一个值代表它能向左延伸的最大位置 然后查询时在线段树上二分nlogn 那么修改怎么进行呢 从向左延伸到的最大位置到当前位置修改为等差数列,这个操作用到的还是挺多的 将覆盖的这一段修改为0 维护区间最大值就可以了 不小心 阅读全文
posted @ 2018-05-25 00:23 尹吴潇 阅读(160) 评论(0) 推荐(0) 编辑
摘要: 题解: 虽然这题挺简单的 但在实现上还是有一些问题 首先变前缀和 然后对每个点维护一颗线段树,表示x-l,x-r 这个用主席树维护就好了 另外的思路就跟那个两个串,取k大一样 用堆对每个右节点维护一下就可以了 然后这样就是nlogn的 在实现中遇到的一些问题 1.由于不太用堆,发现cmp写的是反的 阅读全文
posted @ 2018-05-25 00:02 尹吴潇 阅读(149) 评论(0) 推荐(0) 编辑
摘要: 题解: hall定理。。第一次听说 思考了半小时无果 二分图匹配时间显然太大 但是有这个hall定理 二分图有完美匹配的充要条件是 对于左边任意一个集合(大小为|s|),其连边点构成的集合(大小为|s'|) 需满足(|s'|>=|s|) 正确性可能yy一下就可以出来 所以这道题 我们考虑一个连续区间 阅读全文
posted @ 2018-05-24 20:17 尹吴潇 阅读(133) 评论(0) 推荐(0) 编辑
摘要: 题解: 没笔的时候我想了一下 发现如果不是出现一半次数而是k次,并不太会做 然后我用前缀和写了一下发现就是维护一个不等式: 于是就可以随便维护了 阅读全文
posted @ 2018-05-24 00:22 尹吴潇 阅读(203) 评论(0) 推荐(0) 编辑
摘要: 题解: 就是个最小表示法 大概做法就是扩大2倍原串 然后双指针比较,如果不相同了直接跳 原理随便画画就知道了 阅读全文
posted @ 2018-05-22 23:42 尹吴潇 阅读(151) 评论(0) 推荐(0) 编辑
摘要: 题解: 数据结构套路真多。。 思考了一下线段树分治和启发式合并发现复杂度并不怎么对。。 看了题解发现都是套路啊 考虑一下lca(x,y)的dep有什么性质 我们把1-x的路径+1,查询1-y的路径和 那么就是lca(x,y)的dep了 然后显然离线排个序搞个差分就ok了 查询和修改树剖随便维护一下 阅读全文
posted @ 2018-05-22 20:20 尹吴潇 阅读(116) 评论(0) 推荐(0) 编辑
摘要: 题解: 一道维护奇怪信息的线段树。。。 我刚开始看了标签想的是删去图上一个点后求连通性 发现不会 于是退化成一般图支持删除 插入 维护连通性 发现有2两种做法 1.lct维护 按照结束顺序先后排序,给每条边一个权值 然后我们只要维护最大生成树就好了,因为这样可以保证删除当前树上的边是不会被权值更小的 阅读全文
posted @ 2018-05-22 00:01 尹吴潇 阅读(150) 评论(0) 推荐(0) 编辑
摘要: 题解: win下的10mb和linux下的好像不是很一样 明天再看看 求lca用的离线求,注意bz数组开2*n 这道题的线段树合并还是很好想的 我们只要把操作差分一下就好了 时间复杂度nlogn的 写代码用时:1:30 对拍+maker+调错=30 看到网上题解用的是树剖。。 我看了很久很久才理解。 阅读全文
posted @ 2018-05-21 00:28 尹吴潇 阅读(146) 评论(0) 推荐(0) 编辑
摘要: 题解: 我发现拉格朗日乘数法真是个好东西。。 我是不会说我数学竞赛求最值都是用这个东西的 由于我不太会打那个符号就用li代表通常偏导数中的lanmuda 。。。 这题里化简一下就可以得到 2 li * ki * ​(vi​−vi′​)* vi^2​=1 然后一旦li确定 我们会发现这个三次函数是单峰 阅读全文
posted @ 2018-05-20 19:34 尹吴潇 阅读(135) 评论(0) 推荐(0) 编辑
摘要: 题解: 我觉得数据结构写成结构体还是有必要的 因为不然一道题里出现了两个相同的数据结构由于名字很像很容易出错 另外初始化用segmenttree(){ } 首先裸的dp很好想 f[i][j]表示在i点,最大值<=j的点数最大值 看了别人的题解知道了可以用线段树合并来优化这个东西。。 我们考虑对于每个 阅读全文
posted @ 2018-05-19 14:44 尹吴潇 阅读(154) 评论(0) 推荐(0) 编辑
该文被密码保护。 阅读全文
posted @ 2018-05-17 00:22 尹吴潇 阅读(10) 评论(0) 推荐(0) 编辑
该文被密码保护。 阅读全文
posted @ 2018-05-17 00:03 尹吴潇 阅读(10) 评论(0) 推荐(0) 编辑
摘要: 题解: 按时间分治线段树 然后线性基维护一下就好了 尝试了一下循环展开并没有什么效果 代码: 阅读全文
posted @ 2018-05-16 21:58 尹吴潇 阅读(256) 评论(0) 推荐(0) 编辑
摘要: 题解: cf765f cf671e bzoj4184 bzoj4552 线段树分治裸题 还是介绍一下线段树分治 这个东西其实挺简单但也挺有用的 可以把删除+插入操作变成只有插入(倒着就是删除) 像这一道题,我们对时间点建立线段树 对一段区间共同有的元素依次加入到线段树中(开个队列维护一下) 发现这样 阅读全文
posted @ 2018-05-14 22:55 尹吴潇 阅读(734) 评论(0) 推荐(0) 编辑
摘要: 当函数是单峰函数时适用三分 我得改一下我的三分模版以便于在整数中运用 midl等于(l➕r)/2 midr等于(midl➕r)/2 但是在大部分题目并不显然 一般情况下 增函数➕减函数构成了单峰函数 举个例子 Codeforces 939E Maximize 题意: 有两种操作,1.往集合里面加一个 阅读全文
posted @ 2018-05-11 14:51 尹吴潇 阅读(231) 评论(0) 推荐(0) 编辑
摘要: 题解: A*来做 首先对终点向外面跑一遍最短路 然后从起点开始dfs 按照估价函数建立小根堆 每次取出最小的那个继续更新 每次更新到终点cnt++直道cft=k为止 那估价函数怎么弄呢? 其实就是终点到它的距离+已经走了的距离 所以其实很简单啊?? 可能需要多看几题了解一下 阅读全文
posted @ 2018-05-11 00:44 尹吴潇 阅读(106) 评论(0) 推荐(0) 编辑
摘要: 题解: 室友教了一波wqs二分 发现还是很神奇的 先介绍一下这个算法 首先我们建立直角坐标系 横坐标代表白色的边的数目 纵坐标代表花费的价值 那么我们会发现从中间某个最小的点开始向两边递增 并且其导数是单调不降的 那么我们考虑一条直线,当它与我们需要的这个相切的时候 这条直线在过这个点时在y轴上的截 阅读全文
posted @ 2018-05-11 00:35 尹吴潇 阅读(1096) 评论(0) 推荐(2) 编辑
摘要: 题解: 挺不错的一道题目 首先4个里面只有1个1或者3个1 那么有一个特性就是4个数xor为1 为什么要用xor呢? 在于xor能把相同的数消去 然后用一般的套路 看看确定哪些值能确定全部 yy一下就能发现第一行第一列能确定全部 然后接下来就简单了 随便推一下就能发现aij是由a11^a1i^aj1 阅读全文
posted @ 2018-05-10 17:09 尹吴潇 阅读(188) 评论(0) 推荐(0) 编辑
摘要: day1: 8:20分还不知道考场在哪给ccf差评 8:30开始看题 第一题感觉是个模拟啊 很烦 瞄了一眼第二题第三题题意挺简单的啊感觉还不错 然后开始仔细看t1 然后我发现好像可以退狮子 应该是个数学题 推了半个小时的式子 我发现这个就是(a1+a2...+an)/1+(循环和x1x2)/2+.. 阅读全文
posted @ 2018-05-10 00:52 尹吴潇 阅读(2052) 评论(2) 推荐(1) 编辑
该文被密码保护。 阅读全文
posted @ 2018-05-07 15:42 尹吴潇 阅读(9) 评论(0) 推荐(0) 编辑
摘要: 就看了几道题目。。 day1t1 良心题啊。。 经过一波转化就变成了求某一个数后面有几个比它大的 并且是有长度的(固定的) 然后这样暴力是nlogn的 再写个后面的部分分大概就有70了 其实100也很简单。。 发现每个数只会+1 -1,那么就开个数组维护一下每个数的个数就可以了 day1t2我可能只 阅读全文
posted @ 2018-05-05 22:51 尹吴潇 阅读(295) 评论(0) 推荐(0) 编辑
摘要: 题解: 爬到了bzoj的数据哈哈哈哈 然后提交上去t了 自己测只有1秒多呀 不理解 然后这题目就是个线段树/平衡树合并裸题 来练一下线段树合并 据说是nlogn的 阅读全文
posted @ 2018-05-05 22:35 尹吴潇 阅读(204) 评论(0) 推荐(0) 编辑
摘要: 题解: A:傻逼题 B: 令dp1[i]表示前i个最多匹配到哪里 dp2[i]表示后i个最多匹配到哪里 然后对于每一个位置,它的取值范围是由dp1[i-1]和dp2[i+1](一个交错区间) 然后前缀和算一下就可以了 C: 推公式题 发现是个组合数 E: 一上来就写了spfa+状压dp 然后就发现m 阅读全文
posted @ 2018-05-05 10:07 尹吴潇 阅读(131) 评论(0) 推荐(0) 编辑
摘要: 题解: 一波优秀的打表技巧 分块打表,分成1000组,打表打出来 另外10^6暴力算 阅读全文
posted @ 2018-05-01 19:22 尹吴潇 阅读(140) 评论(0) 推荐(0) 编辑
摘要: 题解: 打表出奇迹 能发现所有ai一定是不减的 其实很好证明啊。。 考虑两个位置x y(y在x右边) x的最优值已经知道了 考虑y处 先让y=x,然后开始变化 因为x处已经是最优的了,所以如果减小,那么一定会增多(或者不变) 说明左边增加的逆序对比右边减少的要多(或者不变) 那现在考虑y处 如果减少 阅读全文
posted @ 2018-05-01 14:44 尹吴潇 阅读(175) 评论(0) 推荐(0) 编辑
摘要: 题解: 虽然是过了,不过做的十分智障 首先是有 2根 2 1 1 , 3根 1 1 1 这两种方法 然后考虑2 2 1 1 two-point-two没啥好说的 3 1 1 1 我很智障的以为数据范围是1e9 然后写了hash,刚开始还开错范围 把int换short int才卡过了空间 首先枚举 1 阅读全文
posted @ 2018-05-01 10:59 尹吴潇 阅读(216) 评论(0) 推荐(0) 编辑
摘要: 题解: 1。以前见过类似的,可以cdq分治 当l=r时就是还有一个剩余 这样时间是nmlogn的 空间是mlogn 2。首先我们可以dp出表示出j的方案数 令g[i][j]表示不能选i,表示出j的方案数 考虑一下怎么转移 g[i][j+w[i]]=f[i][j+w[i]]-g[i][j] 这个表示的 阅读全文
posted @ 2018-04-30 14:56 尹吴潇 阅读(149) 评论(0) 推荐(0) 编辑
摘要: https://www.cnblogs.com/yescoolfan/p/3462350.html 阅读全文
posted @ 2018-04-30 11:50 尹吴潇 阅读(471) 评论(0) 推荐(0) 编辑
摘要: 题解: 首先想到了标算。。然后证明了一发是错的(事实证明很智障) 先说正确性比较显然的O(n^2)算法 令f[i][j]表示前i个物品,匹配到第j个括号,最大值是多少 g[i][j]表示前i个物品,匹配到第j个括号,最小值是多少 然后这个转移是O(1)的 状态是n^2的 被状态局限了就没法优化了 标 阅读全文
posted @ 2018-04-30 10:32 尹吴潇 阅读(133) 评论(0) 推荐(0) 编辑
摘要: 题解: 感觉真是很智障。。连这么简单的题都没想出来 一直在想这么做动态背包。。发现不会 首先显然我们将询问按照m 序列按照a[i]排序 然后怎么满足b呢 其实很简单啊。。只需要记录f[i]表示前面这些物品达到i体积时最小值最大是多少 阅读全文
posted @ 2018-04-29 22:54 尹吴潇 阅读(100) 评论(0) 推荐(0) 编辑
摘要: 题解: 看到区间修改先想一下差分 这题用差分是为了分析问题 现在的问题就变成了 原序列全为0,要使得特定的k个点变为1,每个操作改变x,y+1 然后我们会发现 对于二元组a,b我们要修改它,实际上是在找连续的区间相连,所以实质上是最短路 为什么要差分了才能这么做呢 因为原来的区间修改可能中间涉及了有 阅读全文
posted @ 2018-04-29 13:32 尹吴潇 阅读(186) 评论(0) 推荐(0) 编辑
上一页 1 ··· 7 8 9 10 11 12 13 14 15 ··· 18 下一页