F - Xorro the Xorman
UTPC Contest 10-23-20 Div. 2
10进制转2进制,贪心,比较简单的一道题,队友是用dfs做出来的。
周赛当时没做出来,居然是因为变量没有初始化,出现了玄学死循环,浪费了大量时间,赛后几个人一起研究才发现。
立个flag,出一次傻逼问题。我就说一句我是傻逼。
我是傻逼 11月2日 没有初始化
我是傻逼 11月25日 没开1e10没开long long 调试浪费半小时时间。
ac代码:
#include<bits/stdc++.h>
const int N = 100;
typedef long long ll;
using namespace std;
bool a[N];
bool b[N];
int main()
{
ll x,y;
int n1=0;
int n2=0;
cin>>x>>y;
while(x)
{
a[n1++]=x%2;
x/=2;
}
while(y)
{
b[n2++]=y%2;
y/=2;
}
bool flag=0;
for(int i=n2-1;i>=0;i--)
{
if(a[i]==1&&b[i]==1)
flag=1;
if(a[i]==0)
{
if(b[i]==1)
a[i]=1;
if(b[i]==0&&flag==1)
{
a[i]=1;
}
}
}
int k=max(n1,n2);
ll t=1;
ll sum=0;
for(int i=0;i<k;i++)
{
sum+=a[i]*t;
t*=2;
}
cout<<sum<<endl;
}