ACM-位运算
「已注销」
这个作者很懒,什么都没留下…
展开
-
EOJ 2019 加密1 && EOJ 2020 加密2
题目简介加密1: 对一个整数 (32 位无符号整数) 进行规则如下的加密: 低 16 位和高 16 位互换 此时的低 16 位按位取反 此时的高 16 位与低 16 位进行异或运算,结果存储到高 16 位 写出一个程序对指定的整数进行加密。加密2: 对一个整数 (32 位无符号整数) 进行规则如下的加密: 低 16 位和高 16 位互换 此原创 2017-12-07 14:30:44 · 382 阅读 · 0 评论 -
EOJ 1886 有一个数很特别
题目简介给定 N 个自然数,其中有一个数出现奇数次,其他的都出现偶数次,试找出这个出现奇数次的数。说明用到异或运算两个性质:同一个数异或两次即为其自身交换律#include <cstdio>using namespace std;int main() { int n, tmp, a; while (~scanf("%d", &n)) { a = 0;原创 2017-12-04 21:45:19 · 219 阅读 · 0 评论 -
EOJ 3303 1的个数最多的整数
题目简介给定整数 a 和 b,输出区间 [a,b] 中对应二进制表示含 1 的个数最多的整数。 如果存在多个解,则输出符合条件的最小的整数。 0≤a≤b≤2^63−1说明数据量很大,注意开unsigned long long。 思路就是在a的基础上不断把低位0变为1(利用巧妙的位运算实现),但不能超出b。这样同时保证了1的个数最多且数值最小。#include <stdio.h>typedef原创 2017-12-16 18:11:13 · 539 阅读 · 0 评论 -
位运算用法整理
简介整理了一些和位运算相关的内容,主要分为以下几个部分:集合的整数表示位运算的常见技巧和常用公式gcc中__builtin系列函数及C++中bitset类的简介集合的整数表示//以下内容摘自挑战程序设计竞赛:在程序中表示集合的方法有很多种,当元素数比较少时,像这样用二进制码来表示比较方便.集合{0,1,...,n−1}{0,1,...,n−1}\{0,1,....原创 2018-03-11 22:31:12 · 820 阅读 · 0 评论 -
EOJ 3272 核反应控制
http://acm.ecnu.edu.cn/problem/3272/ 最近学校OJ需要挂VPN才能进…… 有集合 A={a1,a2,…,an},如果存在 i,j,k(i≠j,i≠k,j≠k) 使得 ai+aj=ak,则输出 NO;否则输出 YES。数据没加强前很简单,暴力枚举加一点小优化就可以过。加强之后的标准做法FFT,暂时还不太会。有学长写了一种类似分块的办法: 用...原创 2018-03-04 20:43:40 · 239 阅读 · 0 评论