码迷,mamicode.com
首页 > 其他好文 > 详细

hdu_5969_最大的位或(贪心)

时间:2016-11-05 20:47:27      阅读:211      评论:0      收藏:0      [点我收藏+]

标签:art   display   lap   贪心   its   print   题解   close   --   

题目链接:hdu_5969_最大的位或

题意:

中文,还是自己看

题解:

xjb贪心一下就行了

技术分享
 1 #include<bits/stdc++.h>
 2 #define F(i,a,b) for(int i=a;i<=b;i++)
 3 using namespace std;
 4 typedef  unsigned long long ll;
 5 
 6 int t;
 7 ll a,b;
 8 int dita[70],ditb[70],eda,edb;
 9 int main()
10 {
11     scanf("%d",&t);
12     while(t--)
13     {
14         scanf("%lld%lld",&a,&b);
15         F(i,1,69)dita[i]=ditb[i]=0;
16         eda=edb=0;
17         while(a)dita[++eda]=a&1,a>>=1;
18         while(b)ditb[++edb]=b&1,b>>=1;
19         int fgr=0,fgl=0;
20         ll ans=0;
21         for(int i=64;i>=1;i--)
22         {
23             int now;
24             if(dita[i]||ditb[i]||fgl)now=1;else now=0;
25             if(now>dita[i])fgl=1;
26             if(now)ans|=1ll<<(i-1);
27         }
28         printf("%lld\n",ans);
29     }
30     return 0;
31 }
View Code

 

hdu_5969_最大的位或(贪心)

标签:art   display   lap   贪心   its   print   题解   close   --   

原文地址:http://www.cnblogs.com/bin-gege/p/6033735.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!