摘要:
每个节点有重量,询问节点的祖先序列中最长重量递增序列长度赛中写的倍增没调出来,感觉这种从指数最大到最小枚举做倍增的方法也不错比之前那个从每次都从低位开始凑的更快//#include //#pragma ... 阅读全文
摘要:
给a进制下的x,求x的b进制表示考虑20(10)→(3)20/3=6余2,那么3^0位记录2,接下来考虑用3^1位表示6整体像是一个递归,把原数字不断除以b,每一轮余下的数字作为这个深度的余数最深一层也就... 阅读全文
摘要:
复杂度大约是nloglog//#include //#pragma comment(linker, "/STACK:1024000000,1024000000") #include #includ... 阅读全文
摘要:
倍增可行长度和直接二分都可以保证对于每个左端点至多log次找到最远右端点但是倍增的过程中所需要计算的长度是从小逐渐变大的,而且可以利用前一步倍增的有序数组做一轮归并,整体就比直接二分右端点所需要计算的长度... 阅读全文
摘要:
//#include //#pragma comment(linker, "/STACK:1024000000,1024000000") #include #include #include ... 阅读全文
摘要:
150个点,500种速度,乘起来大概8e4个点,3e4的边其他题解写的基本都是spfa,想想dij也能做,还挺快#include //#pragma comment(linker, "/STACK:10... 阅读全文
摘要:
#include //#pragma comment(linker, "/STACK:1024000000,1024000000") #include #include #include #i... 阅读全文
摘要:
考虑左区间中的任意数x,令len1为左区间长度,sum1为左区间的期望和经过操作1,x的期望会变为x*(len1-1)/len1+sum2/len2*(1/len1)这个变化相当于y=kx+b,因此可以用... 阅读全文
摘要:
想出正解之后感觉不太会缩点,今天学了一下tarjan,发现就是遍历边。。tarjan只是过程,存反向边dfs两次分解scc也能做#include //#pragma comment(linker, "/... 阅读全文
摘要:
这么一看缩点用tarjan也没必要啊,用之前那个存反向边dfs两次的做法就行了缩点过程就是遍历边,两侧不同scc就加边#include //#pragma comment(linker, "/STACK... 阅读全文