上一页 1 ··· 6 7 8 9 10 11 12 13 14 ··· 18 下一页
摘要: 题解: 刚开始想错了 以为直接做就可以了 这题的关键是要对每个点维护一个在它右边比它大的单调递减序列 而这个在2维是不太好做的 所以我们用x分治 然后对y从大到小做 另外要求出当前点右边的后继 这个可以用set也可以用单调栈 单调栈的一个最重要的用处就是O(n)时间内处理出所有数的一边前驱后继,当然 阅读全文
posted @ 2018-07-09 13:52 尹吴潇 阅读(103) 评论(0) 推荐(0) 编辑
摘要: 题解: 分治好题 首先暴力显然rmq可以做到n^2 比较容易想到是以最值分治,这样在数据随机复杂度是nlogn,不随机还是n^2的 以最值分治只有做多与较小区间复杂度相同才是nlogn的 而这题里我们直接分治 想清楚再搞个暴力对拍还是比较好写的 代码: 阅读全文
posted @ 2018-07-08 23:13 尹吴潇 阅读(154) 评论(0) 推荐(0) 编辑
摘要: 题解: 还是一道不错的题目 首先它要求每个区间都满足要求,所以我们很容易想到将它映射到二维平面上 然后我们算出每个数的前驱以及后继li,ri 那么第一维是li-i,第二维是i-ri的区间就是合法的,同理交换 这样就变成了矩形覆盖问题 然后因为是不能遍历所有点的所以二维差分是不行的 2种方法 1.线段 阅读全文
posted @ 2018-07-08 15:15 尹吴潇 阅读(173) 评论(0) 推荐(0) 编辑
该文被密码保护。 阅读全文
posted @ 2018-07-08 11:09 尹吴潇 阅读(5) 评论(0) 推荐(0) 编辑
摘要: 题解: 矩阵树定理入门题 一个图的邻接矩阵G:对于无向图的边(u,v),G[u][v]++,G[v][u]++ 一个图的度数矩阵D:对于无向图的边(u,v),D[u][u]++,D[v][v]++; 而通过这两个矩阵就可以构造出图G的基尔霍夫矩阵:C=D-G. Matrix Tree定理:将图G的基 阅读全文
posted @ 2018-07-08 10:38 尹吴潇 阅读(142) 评论(0) 推荐(0) 编辑
摘要: 题解: 首先有一个比较显然的事情是如果我们确定了买的次数这道题就可以简单的贪心了 但是答案和买的次数是什么关系呢。。 好像是可以三分的 所以应该是单峰的 这里用了模拟退火,而且是没有处理失败情况的模拟退火 代码: 阅读全文
posted @ 2018-07-07 13:40 尹吴潇 阅读(125) 评论(0) 推荐(0) 编辑
摘要: 第一题统计个和 第二题 特判一下然后算一下概率发现很大直接随机 第三题显然是求最小割 然后发现它没有环这件事情 发现在树上 就很简单了 阅读全文
posted @ 2018-07-06 14:13 尹吴潇 阅读(143) 评论(0) 推荐(0) 编辑
摘要: 题解: 阅读全文
posted @ 2018-07-06 14:12 尹吴潇 阅读(96) 评论(0) 推荐(0) 编辑
摘要: 题解: 两道几乎差不多的题(所以说当年sdoi考了道原题) 都是将树上一段改为新颜色询问颜色数目 可以把改成新颜色这个操作看成access操作 然后通过线段树+dfs序来维护 另外换根了为什么还可以用dfs序来维护 我们观察一下会发现 1.当根在x当中,就是除了根那边那块 2.不在的话就是原先的子树 阅读全文
posted @ 2018-07-06 11:57 尹吴潇 阅读(124) 评论(0) 推荐(0) 编辑
摘要: 题解: 方法非常巧妙的一道题 首先考虑要求全部为0怎么做 发现是个欧拉回路的问题(很巧妙) 直接dfs一遍就可以了 而这道题 要求是-1,1,0 我们可以先离散化 完了之后判断每个点被奇数还是偶数条边覆盖 如果是奇数,那么就多连一条边 另外有个细节是为了要用欧拉回路区间左开右闭 代码: 阅读全文
posted @ 2018-07-03 13:37 尹吴潇 阅读(178) 评论(0) 推荐(0) 编辑
摘要: 题解: 平衡树维护hash值 为了支持加入删除操作 x*base^y 其中y为他是第k大 同一般的维护方法,我们不用对每个节点维护他的hash值 而是只用记录他的x值(他的位置) 然后通过updata的时候维护 很神奇的一点是 我用了mo数就炸了。。。 直接自然溢出就好了。。。应该是哪里正负没处理好 阅读全文
posted @ 2018-07-03 08:52 尹吴潇 阅读(187) 评论(0) 推荐(0) 编辑
摘要: 题解: 会了Miller-Rabin这题就很简单了 首先这种题很容易想到质因数分解 但是暴力根号算法是不行的 所以要用到 Miller-Rabin素数 https://blog.csdn.net/ltyqljhwcm/article/details/53045840 对于要判断的数n 1.先判断是不 阅读全文
posted @ 2018-07-02 00:37 尹吴潇 阅读(174) 评论(0) 推荐(0) 编辑
摘要: 题解: 首先要边双缩点这很显然 然后变成树上问题 发现dp,dfs好像不太对 考虑一下度数 发现只要在度数为1的点之间连边 但我好像不太会证明这个东西。。 网上也没有看到比较正确的证明方法和连边策略。。 另外从桥上考虑这题是错的 举出链的反例就很容易能发现了 阅读全文
posted @ 2018-06-20 23:23 尹吴潇 阅读(141) 评论(0) 推荐(0) 编辑
摘要: 题解: 首先贪心的会发现我们每次一定会选当前权值和最大的那个 然后在于怎么维护这个最大值 我们发现每个修改实际上是对沿途所有点的子树的修改 所以用线段树维护就可以了。。 另外注意有重复部分,但一定是包含关系所以比较好处理 代码: 阅读全文
posted @ 2018-06-19 23:45 尹吴潇 阅读(197) 评论(0) 推荐(0) 编辑
摘要: 题解: 倍增+floyd 首先这题比较容易想到是把每个点拆点做dij 但是这样复杂度是knlogn的 这道题的k较大,所以不行 我们考虑到每走一步,其实就是在进行一次floyd 而这个可以看成矩阵乘法 所以可以倍增优化 这样是logk*n^3的 代码: 阅读全文
posted @ 2018-06-18 15:48 尹吴潇 阅读(184) 评论(0) 推荐(0) 编辑
摘要: 题解: 刚开始把题目看错了 以为没有给出路径 那我们就可以求极长路径为k的分别有多少条 可以上点分治+fft 是nlogn^2的 因为fft的范围和点分治后剩余的节点多少有关 正确的题目意思的话 我们将路径分两种情况 一是ab不是直着连向根的 那么只需要求一个端点在a子树中 而另一个端点在b子树中的 阅读全文
posted @ 2018-06-18 00:47 尹吴潇 阅读(223) 评论(0) 推荐(0) 编辑
摘要: 题解: 这个应该还是比较简单的 首先比较容易想到用lct来维护 我们可以建立一个特殊点 然后我们要处理环 其实只要判断它和不和这个特殊点联通就行了 那么当它不是环了我们怎么还原呢 只要对每个在根节点记录一下lazy标记 然后处理一下就好了 代码: 阅读全文
posted @ 2018-06-18 00:40 尹吴潇 阅读(223) 评论(0) 推荐(0) 编辑
该文被密码保护。 阅读全文
posted @ 2018-06-17 00:49 尹吴潇 阅读(9) 评论(0) 推荐(0) 编辑
该文被密码保护。 阅读全文
posted @ 2018-06-14 23:43 尹吴潇 阅读(16) 评论(0) 推荐(0) 编辑
摘要: 题意: 给你n个区间[li,ri],让你选出从中一个子序列,然后在子序列的每个区间里都选择一个tj,满足t1<t2<...<tlent1<t2<...<tlen。最大化这个子序列的长度。 1≤n≤3⋅105,1≤l≤r≤109 题解: 首先我们很容易想到n^2的递推式 f[i]表示最后一个是i f[ 阅读全文
posted @ 2018-06-14 19:57 尹吴潇 阅读(335) 评论(0) 推荐(0) 编辑
摘要: 只适用于存在加减性的问题 有时候可以把一维主席树变成线段树+整体二分降低难度 一直没写过 今天写了一下 要注意的是 二分有负数的时候 加一句特判 int mid=(h1+t1)/2; if (h1<=0&&t1<=0) mid=(h1+t1-1)/2; 阅读全文
posted @ 2018-06-13 23:46 尹吴潇 阅读(152) 评论(0) 推荐(0) 编辑
摘要: 题解: 应该还是比较水的 首先很容易发现的就是两个点一旦联通他们就永远联通了 所以联通之后我们就把他们之间缩成一个点 阅读全文
posted @ 2018-06-11 23:27 尹吴潇 阅读(160) 评论(0) 推荐(0) 编辑
摘要: 题解: 还是比较简单的 首先我们的思路是 确定起点 然后之后贪心的选择边(也就是越靠前越希望选) 我们发现我们只需要将起点从后向前枚举 然后用lct维护连通性 因为强制在线,所以用主席树记录状态就可以了 *数组开小查了很久 代码: 阅读全文
posted @ 2018-06-11 23:25 尹吴潇 阅读(160) 评论(0) 推荐(0) 编辑
摘要: 题解: 闲着无聊做了一遍noip2012 我觉得出题出的好奇怪啊。。。 为什么两道倍增两道二分答案??? 两天第一题: 第一天第一题傻逼普及组题没什么好说的了 第二天第一题你会扩欧就秒了 两天第二题: 第一天第二题这道贪心 知道方法就很简单了。。 我记得我去年第一次看这题觉得是完全不可做的 我们考虑 阅读全文
posted @ 2018-06-11 22:50 尹吴潇 阅读(163) 评论(0) 推荐(0) 编辑
摘要: 。。 阅读全文
posted @ 2018-06-10 23:58 尹吴潇 阅读(134) 评论(0) 推荐(0) 编辑
摘要: 题解: 因为n,m很大 所以复杂度应该是和m相关的 考虑到每个点的影响区间是连续的 就很简单了 区间查询最小值线段树维护(st表也可以) 然后注意一下不要重复算一个就可以了 max函数用template<class T> 不能与原来min重名 代码: 阅读全文
posted @ 2018-06-10 22:36 尹吴潇 阅读(557) 评论(0) 推荐(0) 编辑
摘要: 题解: 老早之前看的并没有写题解。。 t1: 我刚开始想的是线段树来维护。。 看了题解发现直接二分就行了 很容易发现因数只会有30个 那么我们就统计每一种因数在这段区间的个数 然后开个vector记录这种因数的位置 二分一下就好了 nlog^2 t2: t3: 我觉得这道题出的还是不错的 首先考虑一 阅读全文
posted @ 2018-06-09 00:16 尹吴潇 阅读(107) 评论(0) 推荐(0) 编辑
该文被密码保护。 阅读全文
posted @ 2018-06-05 01:02 尹吴潇 阅读(12) 评论(0) 推荐(1) 编辑
摘要: 。。 阅读全文
posted @ 2018-06-05 00:59 尹吴潇 阅读(148) 评论(0) 推荐(0) 编辑
摘要: 题解: 还是很水的 复制个题面过来 好吧我不会复制 https://www.cnblogs.com/skylee03/p/9127130.html 题目链接 第一题是个傻逼题 初中数学题随便凑凑 (b+a)(b+c)(c-a) 第二题 我们把它给出的表示成(sn-a1)a1+(sn-a2)a2+.. 阅读全文
posted @ 2018-06-05 00:05 尹吴潇 阅读(434) 评论(0) 推荐(0) 编辑
摘要: 题解: 我的做法好像跟网上不太一样。。 首先分位讨论 我的做法是先观察出了一个性质 这个答案只跟最后一个0出现的位置有关(这个随便yy一下很容易出来因为运算有0则1) 然后问题就变成了 给出一棵树,支持单点修改,查询x向上第一个0的位置 其实这个用lct维护比较方便。。而且这个复杂度是nlog^2的 阅读全文
posted @ 2018-06-03 23:46 尹吴潇 阅读(264) 评论(0) 推荐(0) 编辑
摘要: 题解: 一道比较经典的题目 首先这题要动态维护虚树 然后这样多计算的就是lca最大点 根的距离 而lca最大点就是dfs序最小的和dfs序最大的lca 然而动态维护虚树我并不会 所以一个比较常用的做法是 按照dfs序排列,然后通过自己与lca来维护一下东西 这道题里显然是sigm(dis[a[i]] 阅读全文
posted @ 2018-06-03 15:55 尹吴潇 阅读(81) 评论(0) 推荐(0) 编辑
该文被密码保护。 阅读全文
posted @ 2018-06-03 13:07 尹吴潇 阅读(34) 评论(0) 推荐(0) 编辑
摘要: 题意: 30种颜色,支持区间覆盖,区间查询颜色个数 题解: 傻逼题 线段树维护区间颜色 操作只有| 用二进制记录 再大点可以用bitset 阅读全文
posted @ 2018-06-02 14:45 尹吴潇 阅读(73) 评论(0) 推荐(0) 编辑
该文被密码保护。 阅读全文
posted @ 2018-06-02 14:29 尹吴潇 阅读(32) 评论(0) 推荐(0) 编辑
摘要: 题解: 给出n个物品,每次能使用l-r之间的物品,问能不能表示出k,m次询问 k<=100,m,n=1e5 想了线段树分治 发现是k^2(n+m)logn claris告诉我可以直接分治 我们对mid-r mid-l分别求一次背包 这样是nklogn的 我们就可以对包含mid的公司做处理 o(k) 阅读全文
posted @ 2018-05-31 23:29 尹吴潇 阅读(90) 评论(0) 推荐(0) 编辑
该文被密码保护。 阅读全文
posted @ 2018-05-30 22:40 尹吴潇 阅读(5) 评论(0) 推荐(0) 编辑
摘要: 题解: 首先dp方程很简单 dp[i]=min(dp[j]+p[i]*dist(i,j)+q[i]) 显然是可以斜率优化的 (dp[j]-dp[k])/(dis[j]-dis[k])<p[i] 那么我们的目的就是要维护这个凸包 由于p[i]不具有单调性,所以最优解是要三分的 然后我们先考虑这个问题在 阅读全文
posted @ 2018-05-30 20:52 尹吴潇 阅读(141) 评论(0) 推荐(0) 编辑
摘要: 题解: 阅读全文
posted @ 2018-05-30 00:04 尹吴潇 阅读(202) 评论(0) 推荐(1) 编辑
摘要: 题解: 首先比较显然的是每个点只会有一个点变正 然后我并没有想出来怎么搞 我想的是是用主席树来可持久化树链剖分然后二分 但是这样空间是nlogn^2的跟个傻逼一样 比较优的做法是用线段树维护负数的最大值 然后 我们继续深入的条件是这个点会被修改 也就是说logn时间我们必定搞完了一个点 这种线段树的 阅读全文
posted @ 2018-05-29 19:59 尹吴潇 阅读(153) 评论(0) 推荐(0) 编辑
上一页 1 ··· 6 7 8 9 10 11 12 13 14 ··· 18 下一页