HDU-2562 奇偶位互换】的更多相关文章

Problem Description 给定一个长度为偶数位的0,1字符串,请编程实现串的奇偶位互换. Input 输入包含多组测试数据: 输入的第一行是一个整数C,表示有C测试数据: 接下来是C组测试数据,每组数据输入均为0,1字符串,保证串长为偶数位(串长<=50). Output 请为每组测试数据输出奇偶位互换后的结果: 每组输出占一行. Sample Input 2 0110 1100 Sample Output 1001 1100 水题一个~~~~ 就是交换相邻奇偶的值 而且这个值只有…
  奇偶位互换 Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 7867    Accepted Submission(s): 5916 Problem Description 给定一个长度为偶数位的0,1字符串,请编程实现串的奇偶位互换.   Input 输入包含多组测试数据:输入的第一行是一个整数C,表示有C测试数据:接下来是C组测试…
http://acm.hdu.edu.cn/showproblem.php?pid=2562 奇偶位互换 Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 3824    Accepted Submission(s): 2913 Problem Description 给定一个长度为偶数位的0,1字符串,请编程实现串的奇偶位互换.   I…
题目: 假设一个8为整数是(10101100)b那么奇偶互换之后就是(01011100)b.假设机器是32位的 注意: 8位中最低位开始数,最低位是第0位,是偶数为,次低位时第1位,是偶数位. 做法: ((a>>1)&0x5555555) | ((a<<1)&0xaaaaaaaa) 解释 a>>1,所有的bit都右移一位,相当于奇数位的bit到了偶数位,然后和0x5555555做与操作,相当于只留下了偶数位,也就是原来的奇数位. 例如 11111010…
5.6 Write a program to swap odd and even bits in an integer with as few instructions as possible (e.g., bit 0 and bit 1 are swapped, bit 2 and bit 3 are swapped, and soon). 这道题让我们交换奇偶位,那么我们首先还是要考虑用位操作Bit Manipulation来做,我们知道由于奇偶位是相邻的,奇数位平移一位就是偶数位,反过来偶…
奇偶位交换 牛客网 程序员面试金典 C++ Python 题目描述 请编写程序交换一个数的二进制的奇数位和偶数位.(使用越少的指令越好) 给定一个int x,请返回交换后的数int. 测试样例: 10 返回:5 C++ class Exchange { public: //run:2ms memory:480k int exchangeOddEven(int x) { return ((x & 0xaaaaaaaa) >> 1 | (x & 0x55555555) <&l…
1.分别取出所有奇数bit位和偶数bit位 0x55555555(对应二进制奇数bit位为1,偶数bit位全为0)&num 0xaaaaaaaa(对应二进制即偶数bit位为1,奇数bit位全为0)&num 2.将奇数bit位的所有数字<< 1,偶数bit位的数字>> 1,然后做或(|)或者加操作,即有宏定义如下: #define EXCHANGE(num) (((0x55555555 & num) << 1) + ((0xaaaaaaaa &am…
题意: 给出n个地雷所在位置,正好能够组成正方形的地雷就可以拿走..为了简化题目,只考虑平行于横轴的正方形.. 问最多可以拿走多少个正方形.. 思路: 先找出可以组成正方形的地雷组合cnt个.. 然后st = 1<<cnt.. 用位运算来考虑取哪一个组合可以拿走最多的地雷且满足题目条件.. Tips: 题目比较烦恼的地方是解决: ①. 所选集合里面的地雷会不会重复拿.. ②. 所选集合里面在同一个地方取走的地雷会不会比该地方题目给出的地雷数多.. 同一个地点可能有多个地雷,如果用去重就不好算多…
[本文链接] http://www.cnblogs.com/hellogiser/p/swap-odd-even-bits.html [分析] 假定一个数字是8位数,设为ABCDEFGH ABCDEFGH &10101010 后右移一位得到0A0C0E0G ABCDEFGH&01010101后左移一位得到B0D0F0H0 将上述两个结果0A0C0E0G和B0D0F0H0做或运算得到BADCFEHG [代码]  C++ Code  12345678910111213141516   /*  …
题意:给你n+1个数(0->n),让你为这n+1个数在0->n中分别找一个数与其异或,求最后的最大值 思路:假设一个数5 (二进制1 0 1),则找的另一个数在5的0位上最好是1 , 1位上最好为0,使其异或后为1. #include <cstdio> #include <cstring> #define mod 10000007 typedef long long ll; int n; int a[100005],num[100005]; int main() { w…
听说位运算挺好玩的,那这节总结一下ACM中可能用到的位运算技巧. XOR运算极为重要!!(过[LC136](只出现一次的数字 - 力扣(LeetCode)):数组中每个数字都出现两次,只有一个出现一次,找到出现一次的数字) 1. 如果我们对 0 和二进制位做 XOR 运算,得到的仍然是这个二进制位a⊕0=a2. 如果我们对相同的二进制位做 XOR 运算,返回的结果是 0a⊕a=03. XOR 满足交换律和结合律a⊕b⊕a=(a⊕a)⊕b=0⊕b=b <<一次相当于*2,>>一次相当…
题意:2种操作,转动或者奇偶位互换. 不论怎么交换,1的后两位一定是3,3的后两位一定是5.因此只要记录1,2的位置. //#pragma comment(linker,"/STACK:1024000000,1024000000") #include<iostream> #include<cstdio> #include<string> #include<cstring> #include<vector> #include&l…
纸质算法题 1. 输入数据:1.3.2.4.8... 输出数据:3.1.4.2.8... 找出规律,写出一个程序求解,并附上时间复杂度和空间复杂度 我的答案: 规律一:奇偶位互换 假设输入数据长度为50 public static void main(String[] args) { Scanner input = new Scanner(System.in); int[] arr = new int[50]; for (int i = 0; i < arr.length; i++) { arr…
以下题目标题就是此题题目链接,题目内容为了节省篇幅就不粘上去了.整套题的链接:https://acm.bnu.edu.cn/v3/contest_show.php?cid=8679#info 密码:7116 A. 进制转换 题意很明显,就不过多说明了. 此题需要注意的是n为32位整数,即int型,最好特判一下n为0的情况:还有如果n为负数,要提前输出一个负号.最后输出的时候逆着输出来,可以手动模拟一下二进制的转化过程. #include <map> #include <set> #…
#include <iostream> using namespace std; //二进制位逆序. int Grial(int x) { int n = 32; int count = 0; while (n--) { count|= ((x&0x1) << n); x = ((unsigned)x >> 1); } return count; } int main() { cout << Grial(1) << endl; retur…
1.算术运算符(+  -  /  *  %) 2.移位运算符 移运算符:操作数必须是整形,>>,逻辑左移左边移入的位用0填充,算数左移左边移入的的位用符号位补齐.(无符号数为逻辑左移,对于有符号数取决于编辑器) <<,值左边的几位被丢弃,右边的多出来的几个空位用0补齐. 例:返回参数中1的个数 int SumOfOne(int num) { int count = 0; for (int i = 0; i < 32; i++) { if (num &1) count+…
本篇文章主要讲述几种反转比特位的方法: 将一个32位数:abcd efgh 转置为hgfe dcba 1.常规方法 unsigned int v; // 目标待转置数 unsigned int r = v; //r保存反转后的结果,开始获取v的最低有效位 ; // 剩余需要移位的比特位 ; v; v >>= ) { r <<= ; r |= v & ; s--; } r <<= s; // 当v的最高位为0的时候进行移位 原理:   通过循环对v进行逻辑右移,每…
学习redis 字典结构,hash找槽位 求槽位的索引值时,用到了 hash值 & sizemask操作, 其后的scan操作涉及扫描顺序逻辑,对同模的槽位 按一定规则扫描! 其中涉及位运算 & 和 %操作之间的关系!故整理学习资料如下: 原文引自:http://blog.sina.com.cn/s/blog_7b7cad23010163vy.html 由于位运算直接对内存数据进行操作,不需要转成十进制,因此处理速度非常快. 按位与(Bitwise AND),运算符号为& a&am…
学习redis 字典结构,hash找槽位 求槽位的索引值时,用到了 hash值 & sizemask操作, 其后的scan操作涉及扫描顺序逻辑,对同模的槽位 按一定规则扫描! 其中涉及位运算 & 和 %操作之间的关系!故整理学习资料如下: 原文引自:http://blog.sina.com.cn/s/blog_7b7cad23010163vy.html 由于位运算直接对内存数据进行操作,不需要转成十进制,因此处理速度非常快. 按位与(Bitwise AND),运算符号为& a&am…
文章作者:ktyanny 由于位运算直接对内存数据进行操作,不需要转成十进制,因此处理速度非常快. 按位与(Bitwise AND),运算符号为& a&b 的操作的结果:a.b中对应位同时为1,则对应结果位也为1. 例如: 1001000110100001111000 &             00000000   ---------------------------------------------                                    00…
/* 题目1 使用Eclipse编写控制台应用程, 使用while循环在控制台打印10行10列的如下图形 □ □ □ □ □ □ □ □ □ □ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ □ □ □ □ □ □ □ □ □ □ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ □ □ □ □ □ □ □ □ □ □ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ □ □ □ □ □ □ □ □ □ □ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ □ □ □ □ □ □ □ □ □ □ ■ ■ ■ ■ ■ ■ ■ ■ ■…
最近在做一款移动端棋牌游戏,为了进一步提高用户体验.拉近玩家的距离,我们决定在游戏中加入好友功能,而对于体验好友功能的玩家来说,要是玩牌的时候可以看看附近都有谁在玩牌,跟他们交流交流玩牌心得什么的无疑是个不错的想法.而要实现查看附近的人就需要提提LBS(Location Based Service),他的意思就是基于位置的服务,就是通过移动终端获取到许多用户或者物体的经纬度坐标,通过这些位置信息所提供的服务. 好了,扯了这么多,我们来看看如何实现查看附近人的功能的: 首先要具备下面这些环境: p…
这题是目的是把黑球和白球分开连续放,事实上只要把其中一种颜色分好在一边就可以,可以绕一个球转即是第n个球可以放在n-2或者n+2上,因为这是个环,所以只需要把黑球或者白球连续放好就可以,当一共有奇数个球时,如:7个  x 1 0 1 0 1 0(x为任意颜色球)——x一开始是为奇位,然后开始把x向右移动.0 1 x 1 0 1 0——0 1 0 1 x 1 0——0 1 0 1 0 1 x——0 x 0 1 0 1 1(注意这是环)   到这里x到了偶数位..所以就是说当总球数为奇时奇偶位是可以…
http://acm.hdu.edu.cn/showproblem.php?pid=5373 YY题,模拟下计算过程就好了,计算中并不要保存实际数(这个数会非常大),只要保存到目前为止的数字位上的和 与 奇偶位上的差即可 #pragma comment(linker, "/STACK:1677721600") #include <map> #include <set> #include <stack> #include <queue> #…
C. Problem for Nazar time limit per test 1 second memory limit per test 256 megabytes input standard input output standard output Nazar, a student of the scientific lyceum of the Kingdom of Kremland, is known for his outstanding mathematical abilitie…
A. Perfect Permutation time limit per test: 2 seconds memory limit per test: 256 megabytes input: standard input output: standard output A permutation is a sequence of integers p1, p2, ..., pn, consisting of n distinct positive integers, each of them…
题目链接: Codeforces 669D Little Artem and Dance 题目描述: 给一个从1到n的连续序列,有两种操作: 1:序列整体向后移动x个位置, 2:序列中相邻的奇偶位置互换. 问:q次操作后,输出改变后的序列? 解题思路: 刚开始只看了第一组样例,发现相邻的奇偶位一直在一起,于是乎就开始writing code,写完后发现并不是正解!!!!就去推了一下第三个样例,总是这组实例通过,那组实例卡死,,,,,,,最后终于成功的Mengbility.今天突然想起来,其实整体…
江西ccpc省赛-waves-(DP做法) 题链:http://acm.hdu.edu.cn/showproblem.php?pid=6570 题意:给你长度为N,1≤N≤100000的一个数组,其中元素在[1,c]1≤c≤100 之内,求一个最长的子序列满足奇数位数字都相同,偶数位数字也都相同,但是奇偶位之间不同,问你子序列的长度. 解法1:c的范围较小,由这几个性质可知,序列中只包含两个数字,可以在c的范围内枚举这两个数字.先保存一下每个数字出现的位置. AcCode: #include <…
第18章---高度难题 1,-------另类加法.实现加法. 另类加法 参与人数:327时间限制:3秒空间限制:32768K 算法知识视频讲解 题目描述 请编写一个函数,将两个数字相加.不得使用+或其他算数运算符. 给定两个int A和B.请返回A+B的值 测试样例: 1,2 返回:3 答案和思路:xor是相加不进位.and得到每一个地方的进位.所以,用and<<1之后去与xor异或.不断递归. import java.util.*; public class UnusualAdd { pu…
文/闫鑫原创转载请注明出处http://blog.csdn.net/yxstars/article/details/38087245 飞利浦的MIFARE卡 由于它的高安全性在市场上得到广泛应用,比如我们乘车用的公交卡,学校和企业食堂的饭卡等等.它每个扇区有独立的密匙(6个字节的密码),在通信过程中首 先要验证密匙才能读写数据.它的关键技术在于密匙的验证采用三重加密的DES算法,(即:读写器与卡之间传送的密匙是通过随机数加密的),不象早期的 EMID卡和atmel的T557卡都是明码传输,所以在…