E. The Classic Problem http://codeforces.com/problemset/problem/464/E 题意:给你一张无向带权图,求S-T的最短路,并输出路径.边权为2^xi.xi≤105,n≤105,m≤105. 想法:边权太大了,可以用数组按二进制存下来.带高精度跑太费事了. 观察一下,这里距离的更新:c=(a,b),用dis[a]更新dis[b] ①dis[b][c]=0,直接赋为1.只有一个数字改变. ②dis[b][c]=1,需要进位.考虑极端情况数…
大名鼎鼎的A+B Problem, 主席树优化最小割-- 调题死活调不对,一怒之下改了一种写法交上去A了,但是改写法之后第4,5个点常数变大很多,于是喜提UOJ全站倒数第三 目前还不知道原来的写法为什么是错的,暂时先写一下A掉的那种写法的题解. 题目链接: (BZOJ) https://www.lydsy.com/JudgeOnline/problem.php?id=3218 (UOJ) http://uoj.ac/problem/77 题解: 首先不难想到这样的最小割建图: (醒醒吧这种题就别…
点此看题面 大致题意: 给你一张无向图,每条边的边权为\(2^{x_i}\),求\(s\)到\(t\)的最短路. 最短路 最短路,首先考虑\(Dijkstra\).这里用\(SPFA\)似乎不太好,因为此题中计算边权是比较费时间的. 说句实话,这里的最短路和普通的最短路是一样的,唯一区别就是边权很大. 则我们需要支持的操作就应该是大二进制数的加法和比大小. 线段树?--加法 先考虑最暴力的,我们对于每个点,开一个线段树,每一位维护二进制下这一位的值,表示其距离. 然后由于边权是\(2\)的幂,所…
题目链接 题意:给出一张 \(n\) 个点 \(m\) 条边的无向图,第 \(i\) 条边连接 \(u_i,v_i\),边权为 \(2^{w_i}\),求 \(s\) 到 \(t\) 的最短路. \(1 \leq n,m \leq 10^5\),\(1 \leq w_i \leq 10^5\) 神仙题,不愧是 Div.1 E,不看题解根本写不出来. 我们肯定要用 dijkstra 跑最短路对吧.不过最短路需要两个基本操作,加法和比较大小,如果手写高精度这两个操作时间复杂度都是 \(10^5\)…
原文链接https://www.cnblogs.com/zhouzhendong/p/51Nod1863.html 题目传送门 - 51Nod1863 题意 有 n 个城市,有 m 条双向路径连通它们. 每一个城市有一个属性,可能有多个城市有相同的属性. 给定属性的优先级,求一条从 1 到 n 的路径,满足优先级最大的属性在这条路径中出现次数尽量小,在此基础上,优先级次大的出现次数尽量小,以此类推. 问这条路径经过了哪些属性的节点,按照优先级从高到低输出. $n\leq 10^5,m\leq 5…
[题解]A simple RMQ problem 占坑,免得咕咕咕了,争取在2h内写出代码 upd:由于博主太菜而且硬是要用指针写两个主席树,所以延后2hQAQ upd:由于博主太菜而且太懒所以他决定写kd tree了 upd:由于博主太菜而且太懒所以他不写代码了(实际上是写了6k之后崩溃了) 所以直接口胡题解 题目大意: 因为是OJ上的题,就简单点好了.给出一个长度为n的序列,给出M个询问:在[l,r]之间找到一个在这个区间里只出现过一次的数,并且要求找的这个数尽可能大.如果找不到这样的数,则…
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=3489 题解:http://www.itdaan.com/blog/2017/11/24/9bc46b690756fe252e17fc3ca90aa01.html 所以就没写KD-tree.树套堆.分块,而是写了树套树. 限制条件是:pr<L:nt>R:L<= i <=R. 对pr排序后建主席树,调用1~L-1的主席树就能限制好第一个条件:主席树里维护 nt 的值域,调用R+1…
题目链接 当时没用markdown写,可能看起来比较难受...可以复制到别的地方看比如DevC++. \(Description\) 给定一个长为n的序列,多次询问[l,r]中最大的只出现一次的数.强制在线. \(Solution\) 我也不知道该怎么说,反正就是预处理 建主席树,套堆/set,树i存l为i,r为[i,n]的答案(这样就是在某棵树上单点查maxv了). 处理好最初的树,就可以利用主席树根据前缀建树的性质,每个点i的建树只需要处理i位置. 那么最初的树就是将所有的数在区间[第一次出…
3585: mex Time Limit: 20 Sec  Memory Limit: 128 MB Description 有一个长度为n的数组{a1,a2,...,an}.m次询问,每次询问一个区间内最小没有出现过的自然数. Input 第一行n,m. 第二行为n个数. 从第三行开始,每行一个询问l,r. Output 一行一个数,表示每个询问的答案. Sample Input 5 5 2 1 0 2 1 3 3 2 3 2 4 1 2 3 5 Sample Output 1 2 3 0 3…
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=3489 题解:http://www.itdaan.com/blog/2017/11/24/9bc46b690756fe252e17fc3ca90aa01.html 在我挣扎一下午时 Narh 早就A了... 于是看看有何不同,发现 add  和 insert 中必须把 ls[x] = ls[y] , rs[x] = rs[y] 写在前面,而不能是修改 rs 则在那里单写一个 ls[x] =…