摘要: ST表,听起来高大上,实际上限制非常多,仅仅可以求最值问题; 为什么?先从原理看起; st表运用了倍增的思想:st[i][j] = min(st[i][j - 1],st[i + 2^(j - 1))][j - 1]); 意义是:从i开始向后连续2^j个位置的最大值是,i开始向后连续2^(j-1)个 阅读全文
posted @ 2019-09-29 16:23 神之右大臣 阅读(406) 评论(0) 推荐(0) 编辑
摘要: 题面 这道题有着较小的n,所以求最短路时floyd也可以胜任; 设g[i][j][k]表示目前从i到j存在权值为k的路径; 由于边权均为1,所以g[i][j][k]=g[i][p][k-1]+g[p][j][k-1]; 对于f[i][j];如果i到j可以1步过去,那么=1;否则=inf; 然后跑fl 阅读全文
posted @ 2019-09-29 14:38 神之右大臣 阅读(191) 评论(0) 推荐(0) 编辑
摘要: 异或 【题目描述】 给定一个正整数 n,在 [1,n]的范围内,求出有多少个无序数对(a,b)满足 gcd(a,b)=a xor b。 【输入格式】 输入共一行,一个正整数 n。 【输出格式】 输出共一行,一个正整数表示答案。 【输入输出样例】 【输入样例】 3 【输出样例】 1 【样例解释】 只有 阅读全文
posted @ 2019-09-29 14:34 神之右大臣 阅读(292) 评论(0) 推荐(0) 编辑
摘要: 在dinic中,我们会发现,dfs中每条边都会遍历至少一遍,那么我们可以把一定不会用到的边删去吗? 答案是当然可以,这就用到了当前弧优化; 其实这个优化在很久很久以前学习欧拉回路的时候就接触到了; 每次增广一条路后可以看做“榨干”了这条路,既然榨干了就没有再增广的可能了。但如果每次都扫描这些“枯萎的 阅读全文
posted @ 2019-09-29 14:19 神之右大臣 阅读(853) 评论(0) 推荐(1) 编辑