07 2018 档案

摘要:链接: https://www.spoj.com/problems/COT/en/ 思路: 首先看到求两点之前的第k小很容易想到用主席树去写,但是主席树处理的是线性结构,而这道题要求的是树形结构,我们可以用dfs跑出所有点离根的距离-dep[i](根为1,dep[1]也为1)在dfs的过程 中,我们 阅读全文
posted @ 2018-07-31 19:48 冥想选手 阅读(159) 评论(0) 推荐(0)
摘要:链接: http://acm.hdu.edu.cn/showproblem.php?pid=6319 思路: 单调队列倒着维护,队列里面剩下的值的数量就是这一段区间的count值,如样例第一个区间:3 2 2 1 5 7 单调队列倒着维护遍历一遍变成了:7 5 3 长度为3,队首为最大值7 实现代码 阅读全文
posted @ 2018-07-31 12:45 冥想选手 阅读(194) 评论(0) 推荐(0)
摘要:链接: https://www.lydsy.com/JudgeOnline/problem.php?id=1699 思路: 水题,求区间最大最小值,然后减一下,求区间最大最小值线段树,树状数组,分块,莫队都可以,这里直接用分块写了,代码量比较小。 分块写法: 耗时: 阅读全文
posted @ 2018-07-29 13:44 冥想选手 阅读(147) 评论(0) 推荐(0)
摘要:链接: https://loj.ac/problem/6285 思路: 离散化处理下就好了,具体解释在代码里、 ps: 小新新别看了,你学不会的 实现代码: 阅读全文
posted @ 2018-07-27 18:58 冥想选手 阅读(187) 评论(0) 推荐(0)
摘要:链接:https://loj.ac/problem/6283 思路: 多重标记下放,之前写过线段树的多重标记,两个思路是一样的,都是优先处理乘法操作,如果当前块出现乘法操作,那么加法标记也要乘上乘法标记,这样运算的时候就可以直接乘上乘法标记加上加法标记 如果当前块出现加法操作,那只对加法标记有影响, 阅读全文
posted @ 2018-07-27 12:47 冥想选手 阅读(194) 评论(0) 推荐(0)
摘要:链接:https://loj.ac/problem/6282 思路: 用动态的vector去代替数组,这样就可以动态的插入数据了,当一个块的数据插入数据过大时,我们在将整个vector重新分块就好了。 实现代码: 阅读全文
posted @ 2018-07-26 22:44 冥想选手 阅读(314) 评论(0) 推荐(0)
摘要:链接: https://loj.ac/problem/6281 思路: 因为是向下取整开方,那么其实每个数最多被开个个几次就会变成0或者1了,更新的时候我们可以将中间的块标记下是否全部变成了0或者1,如果全变了就不处理 实现代码: 阅读全文
posted @ 2018-07-26 17:02 冥想选手 阅读(136) 评论(0) 推荐(0)
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4747 思路: 比赛打得太菜了,不想写。。。。线段树莽一下 实现代码: 阅读全文
posted @ 2018-07-25 17:24 冥想选手 阅读(257) 评论(0) 推荐(0)
摘要:Naive Operations Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 502768/502768 K (Java/Others)Total Submission(s): 0 Accepted Submission(s): 0 Pr 阅读全文
posted @ 2018-07-25 17:13 冥想选手 阅读(179) 评论(0) 推荐(0)
摘要:Distinct Values Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 2298 Accepted Submission(s): 740 阅读全文
posted @ 2018-07-24 14:41 冥想选手 阅读(251) 评论(0) 推荐(0)
摘要:题目链接: https://www.nowcoder.com/acm/contest/140/J 思路: 都写在代码注释里了,非常好懂。。 for_each函数可以去看一下,遍历起vector数组比较方便,用for(int i = 0;i < q[i].size();i++)的话,是会有一些弊端的, 阅读全文
posted @ 2018-07-22 15:53 冥想选手 阅读(198) 评论(0) 推荐(0)
摘要:题目链接: https://www.lydsy.com/JudgeOnline/problem.php?id=1050 思路: 先将每条边的权值排个序优先小的,然后从小到大枚举每一条边,将其存到并查集里,如果得到的比值比之前的小,那么判断下s与t能否连通,如果连通就替换就好了 实现代码: 阅读全文
posted @ 2018-07-21 11:56 冥想选手 阅读(231) 评论(0) 推荐(0)
摘要:题目链接:http://codeforces.com/contest/691/problem/D 题意: 题目给出一段序列,和m条关系,你可以无限次互相交换这m条关系 ,问这条序列字典序最大可以为多少 思路: 并查集维护这m条关系,用个vector存一下当前点所能到达的点,拍下序大的优先,输出的时候 阅读全文
posted @ 2018-07-20 19:47 冥想选手 阅读(127) 评论(0) 推荐(0)
摘要:链接:https://www.nowcoder.com/acm/contest/139/J 题意: 给你【l,r】问【1,l】,【r,n】中有多少个不同的数。 思路: 可以参考上一篇博客:https://www.cnblogs.com/kls123/p/9342777.html 上一篇是问【l,r】 阅读全文
posted @ 2018-07-20 18:26 冥想选手 阅读(127) 评论(0) 推荐(0)
摘要:DQUERY - D-query Given a sequence of n numbers a1, a2, ..., an and a number of d-queries. A d-query is a pair (i, j) (1 ≤ i ≤ j ≤ n). For each d-query 阅读全文
posted @ 2018-07-20 17:38 冥想选手 阅读(833) 评论(0) 推荐(0)
摘要:题目链接:https://www.lydsy.com/JudgeOnline/problem.php?id=4448 题面: Description 奈特公司是一个巨大的情报公司,它有着庞大的情报网络。情报网络中共有n名情报员。每名情报员口J-能有 若T名(可能没有)下线,除1名大头日外其余n-1名 阅读全文
posted @ 2018-07-20 14:06 冥想选手 阅读(217) 评论(0) 推荐(0)
摘要:题目链接:https://www.lydsy.com/JudgeOnline/problem.php?id=2152 思路: 要想两点之间距离为3的倍数,那么用t0表示该点距离重心的距离对3取模为0,依此得t1,t2,那么两点之间距离为3的倍数只有三种可能:t1-t2,t2-t1,t0-t0,将所有 阅读全文
posted @ 2018-07-17 14:06 冥想选手 阅读(166) 评论(0) 推荐(0)
摘要:题目链接:http://poj.org/problem?id=1741 题意:求树上两点之间距离小于等于k的点对的数量 思路:点分治模板题,推荐一篇讲的非常好的博客:https://blog.csdn.net/qq_39553725/article/details/77542223 实现代码: 阅读全文
posted @ 2018-07-16 12:37 冥想选手 阅读(129) 评论(0) 推荐(0)