HDU-5969:http://acm.hdu.edu.cn/showproblem.php?pid=5969

一开始也是分了类,觉得要两种情况,l 与 r 位数相同与不同的情况,仔细想一下,可以一起处理,从最高位(左侧符号位)开始,遇到不同后面全部补1即可。

刚写好交信心满满,一交就Wrong answer,写了一个暴力求 的对数器,确定算法是对的,也知道了问题在哪。

  • 第一,数据相同时,没有结果,要处理。
  • 第二,碰到不同后,将 r 后面的全部置1:
     r = r | (t << s);

    一开始 写的是 r = r | (1 << s); 我用了1,1默认是int,左移超过31,就超范围了。

#include <iostream>

using namespace std;
typedef long long ll; int main() {
ll l, r,t=;
int N;
cin >> N;
while (N--) {
while (cin >> l >> r) {
int s = ;
if (l == r) {
cout << l << endl;
continue;
}
if (l > r)swap(l, r);
while (((l >> s) & ) == ((r >> s) & )) {
s--;
}
while (s--) {
r = r | (t << s);
}
cout << r << endl;
}
}
return ;
}

心得:贪心法,找普遍规律,处理特殊数据,不要老想知道为什么这样解,用暴力法检验算法的正确性,算法的证明是数学家的事。

最新文章

  1. 简单实用的Log4net帮助类
  2. PHP 图片处理工具类(添加水印与生成缩略图)
  3. Hadoop学习18--yarn配置篇-基本配置节点
  4. ORA-16179: incremental changes to &quot;log_archive_dest_1&quot; not allowed with SPFILE
  5. Makefile文件简单整理
  6. Java Socket 基础例子
  7. 代码修改mysql字符
  8. 强大的字符串格式化函数 - format
  9. java 反射,注解,泛型,内省(高级知识点)
  10. Android中进程生命周期的优先级
  11. float
  12. 使用chrome开发者工具中的network面板测量网站网络性能
  13. 编译部署mysql5.7.13
  14. SQL 查看表字段及说明
  15. Fiddler查看接口响应时间
  16. BootStrap学习(4)_分页&amp;标签&amp;缩略图&amp;警告&amp;进度条
  17. 使用Android拨打电话功能
  18. COBOL和C#比较
  19. java中获取系统变量
  20. 后台登陆功能的实现 SESSION

热门文章

  1. Debian - 安装随记
  2. 02-Http请求与响应全解
  3. 为什么要学习 UML?
  4. Python Djan 路由对应的名称
  5. python学习之老男孩python全栈第九期_day023知识点总结——类和对象命名空间、组合
  6. 关于iFrame特性总计和iFrame跨域解决办法
  7. JSON和JSONP 实例
  8. Zookeeper + Guava loading cache 实现分布式缓存
  9. drupal7 STMP邮件模块配置
  10. Javascript 中正则表达式验证网址