POJ-3748 位操作

来源:互联网 发布:php redis 队列算法 编辑:程序博客网 时间:2024/06/02 10:45

题目链接:http://poj.org/problem?id=3748

解题思路:一开始想到是的模拟,字符串到二进制再到十六进制,然后直接GG。看了TT的代码之后发现了新的黑科技,%x直接传入的就是整数的十六进制形式,最后左移右移一下再用%x输出就行了。

代码如下:

#include <cstdio>#include <cstdlib>#include <cstring>#include <iostream>#include <algorithm>using namespace std;typedef long long ll;typedef pair<int, int> P;const int inf = 0x3f3f3f3f;const int maxn = 2e4 + 15;int r, x, y;void clrbit(int &x, int offset){    x &= ~(1 << offset);    return;}void setbit(int &x, int offset){    x |= (1 << offset);    x |= (1 << offset - 1);    clrbit(x, offset - 2);    return; }int main(){    scanf("%x,%d,%d", &r, &x, &y);    setbit(r, y);    clrbit(r, x);    printf("%x\n", r);    return 0;}
0 0
原创粉丝点击