ACM_二进制
Ch_zaqdt
这个作者很懒,什么都没留下…
展开
-
__builtin_函数
__builtin_ctz(x); // 求x的二进制数末尾0的个数__builtin_ctz(0100) == 2;__builtin_clz(x); // 求x的二进制数前导0的个数(ps:一共有32位)__builtin_clz(0100) == 29;__builtin_popcount(x); // 求x的二进制数...原创 2018-09-03 21:03:41 · 854 阅读 · 0 评论 -
位运算
首先我们要知道什么是二进制: 二进制是计算技术中广泛采用的一种数制。二进制数据是用0和1两个数码来表示的数。它的基数为2,进位规则是“逢二进一”,借位规则是“借一当二”,由18世纪德国数理哲学大师莱布尼兹发现。当前的计算机系统使用的基本上是二进制系统,数据在计算机中主要是以补码的形式存储的。计算机中的二进制则是一个非常微小的开关,用“开”来表示1,“关”来表示0。 ...原创 2018-08-18 18:25:47 · 369 阅读 · 0 评论 -
洛谷 P1582 倒水(思维+二进制)
题目链接:https://www.luogu.org/problemnew/show/P1582 因为需要两两合并,所以瓶子里的水的值只能有2^n,所以可以联想到二进制,然后我们可以推几个数,发现最后所得的瓶子数就等于n的二进制数的1的个数,所以我们可以一个一个加n的值,然后判断是不是小于k的就行了(有的人说会T,我是100AC了),然而这种方法略显暴力了点,所以我们可以再想...原创 2018-09-03 22:34:42 · 259 阅读 · 0 评论 -
ACM/ICPC 2018亚洲区预选赛北京赛站网络赛 B. Tomb Raider(二进制枚举)
题目链接:http://hihocoder.com/problemset/problem/1829 题意是在n个环形的(首尾相连)字符串中找最长公共子序列。 在比赛的时候因为数据范围不大,想着去一个一个的暴力把每个串以每个字符为首字符的串都存起来然后去求他们的lcs,然后发现求n个字符串的lcs是没法往下传递的,所以就不会了... 这道题...原创 2018-09-24 15:42:40 · 400 阅读 · 0 评论 -
第十五届浙江大学宁波理工学院程序设计大赛 D. Campaign(二进制枚举)
题目链接:https://ac.nowcoder.com/acm/contest/303/D 一共就7个堡垒,问最多可以保留多少个堡垒,所以直接就是二进制枚举就好了,在枚举的过程中要对上下界进行判断。AC代码:#include <bits/stdc++.h>#define maxn 15#define ll long longusing names...原创 2018-12-09 20:59:15 · 216 阅读 · 0 评论 -
Hello 2019 B. Petr and a Combination Lock(二进制枚举或dfs)
题目链接:http://codeforces.com/contest/1097/problem/B 题意是给了n个数,然后使这些数任意加减,能否最终变成0 因为数据量不大,可以用dfs去暴力,也可以用二进制枚举2^15的复杂度也可以写...AC代码(二进制枚举):#include <bits/stdc++.h>using namespa...原创 2019-01-05 16:03:11 · 291 阅读 · 0 评论