随笔分类 - 基本算法-位运算
摘要:【题目描述】 In the game of Sudoku, you are given a large 9 × 9 grid divided into smaller 3 × 3 subgrids. For example, Given some of the numbers in the grid
阅读全文
摘要:【题目描述】 给定一张N个点M条边的有向无环图,分别统计从每个点出发能够到达的点的数量。N,M≤30000。 【题目链接】 "2101 可达性统计" 【算法】 拓扑排序之后逆序计算(感觉dfs更好写而且应该更快一点), bitset 状态压缩模拟集合的并操作。 【代码】 cpp include us
阅读全文
摘要:【题目描述】 给出一个整数,输出比其大的第一个数,要求输出的数二进制表示和原数二进制表示下1的个数相同。 【题目链接】 http://noi.openjudge.cn/ch0406/1455/ 【算法】 1、自己想的:设原数为n,从lowbit(n)开始左移找到第一个0的位置,同时记录该位置之前1的
阅读全文
摘要:【算法】 lowbit()运算取出非负整数n二进制表示下最低位的1及其后的0表示的值: 对n按位取反后加1(即补码操作,-n),最低位1即其后位的表示不变,而之前的每一位均取反了,于是按位与即得到所需的值。 【应用】 1.树状数组 2.配合Hash找出n二进制表示下为1的位
阅读全文
摘要:【题目】 求a乘b对p取模的值,其中a,b,p均小于等于1e18大于等于1 【算法】 类似快速幂的二进制思想,将b看作一个二进制数展开为各个二进制位的值相加取模 【算法】 a * b mod p = a * b - [a*b/p] * p (感觉这种有点不靠谱,最好别用,涉及浮点就开始玄学了)
阅读全文
摘要:【题目链接】 http://poj.org/problem?id=1995 【算法】
阅读全文

浙公网安备 33010602011771号