摘要:
二分答案,大于二分值的边直接不走,看最后是否存在一条路径即可 c++ include include include include include using namespace std; define debug(x) cerr 1; if(SPFA(g[mid])) { ans = g[mid 阅读全文
摘要:
用树状数组求逆序对的时候注意:要统计b[i] 1的前缀和,因为可能有相同值的元素 不去重离散化: c++ sort(a+1, a+n+1, cmp); for(int i=1; i include include include using namespace std; const int MAXN 阅读全文
摘要:
问题是求一个数往右边看,在遇到大于等于他本身的之前,有多少个比他小的数 正难则反,转化问题为一个数能被多少个数看到,算贡献,那么这些的和就是答案 用单调栈去处理,把栈里的比当前处理的数要小于等于的全弹掉,剩下的那些就是严格比这个数大的,也就是可以看到这个数的 ans要开long long c++ i 阅读全文
摘要:
这道题有着一个 转化思想 $k \bmod i \Leftrightarrow k i \lfloor\frac{k}{i}\rfloor$ 所以有$ans = \sum_i^n (k i \lfloor\frac{k}{i}\rfloor) =n k \sum_i^n(i \lfloor\frac 阅读全文