lightoj1042
来源:互联网 发布:java单例模式面试题 编辑:程序博客网 时间:2024/06/07 00:05
位运算模拟
代码如下:
#include <bits/stdc++.h>using namespace std;int main (){ int t, cnt = 1; scanf("%d", &t); while(t--) { int n; scanf("%d", &n); int i = 0; int a = 0; while(!((1<<i)&n) || (1<<(i+1))&n)//算一下需要向高位移动一位的位置i { if((1<<i)&n) a++;//i的右边有多少个1 i++; } n ^= (1<<i)^(1<<(i+1));//将i位置的1向高位移动一位 int j = 0; while(j < i)//i右边的a个1尽可能靠右边放(这样值最小) { if(a) n |= (1<<j), a--;//如果a个1没有放完,继续放 else if(n&(1<<j)) n ^= (1<<j);//a个1放完了,其他i右边的位置归零 j++; } printf("Case %d: %d\n", cnt++, n); } return 0;}
阅读全文
0 0
- lightoj1042
- LightOJ1042 - Secret Origins (位运算)
- 刷题——hdu 6168 Numbers
- SpringMVC+Mybatis+POI 导出Excel
- Java MyBatis 插入数据库返回主键 总返回行数
- shell
- 我们到底该不该使用 force index()索引?
- lightoj1042
- 第七章 Customizing Concurrency Classes(自定义并发类)【下】
- c++-堆与栈
- 完美的背景图全屏css代码 – background-size:cover?
- flume如何实现高可用和高性能?
- 计算几何【套模板,推荐模板】 Separating Pebbles UVALive
- EA&UML日拱一卒-活动图::Structural Feature Actions
- POJ
- 以太网,IP,TCP, UDP