普普通通的题解?
2025-05-08 21:49:08
发布于:浙江
1阅读
0回复
0点赞
肥肠简单
#include<bits/stdc++.h>
#define int long long
#define I using
#define AK namespace
#define IOI std
#define I_will return
#define AK_IOI 0;
I AK IOI;
int ksm(int x,int y)
{
int t = 1;
while(y)
{
if(y&1)
{
t=t*x;
}
x = x*x;
y/=2;
}
return t;
}
int lowbit(int x)
{
return x&-x;
}
int dfs(int n,int m)
{//深搜
if(n==0&&m==0)
{
return 0;
}
if(n==0)
{
return dfs(0,m-lowbit(m))+lowbit(m);
}
if(m==0)
{
return dfs(n-lowbit(n),0)+lowbit(n);
}
return dfs(n-lowbit(n),m-lowbit(m))+lowbit(n)+lowbit(m);
}
int rf(int n,int m)
{//二分
int l = 0,r = 2000000005;
while(l<r)
{
int mid = (l+r)>>1;
if(mid>n+m)
{
r=mid-1;
}else
{
l = mid+1;
}
}
if(l==m+n)
{
return l;
}
else if(r==m+n)
{
return r;
}else
{
return n+m;
}
}
int mj(int n,int m)
{//枚举
for(int i = min(2*n,2*m);i<=max(2*n,2*m);i++)
{
if(i==n+m)
{
return i;
}
}
return 114514;
}
int sl1(int n,int m)
{//数论1
double pjs = (n+m)/2.0;
return pjs*2;
}
int sl2(int n,int m)
{//数论2
int n_m = n*m;
return n_m-(n-1)*m+n_m-(m-1)*n;
}
signed main()
{
int a,b;
cin>>a>>b;
cout<<(dfs(a,b)+rf(a,b)+mj(a,b)+sl1(a,b)+sl2(a,b))/5;
I_will AK_IOI;
}
这里空空如也
有帮助,赞一个