NC15055. 萌新AA与棋盘
描述
输入描述
一行两个整数 N,M
输出描述
一行一个整数,即需要的棋子数
示例1
输入:
7 15
输出:
21
示例2
输入:
3 1
输出:
1
说明:
不一定变成4个部分,存在中心位置即可C++14(g++5.4) 解法, 执行用时: 2ms, 内存消耗: 376K, 提交时间: 2020-10-06 10:20:53
#include<cstdio> long f(long n,long m) { if(n%2==0||m%2==0)return 0; return f(n/2,m/2)*4+1; }main() { long n,m; scanf("%ld%ld",&n,&m); printf("%ld",f(n,m)); }
C++11(clang++ 3.9) 解法, 执行用时: 5ms, 内存消耗: 508K, 提交时间: 2020-02-20 19:14:03
#include<iostream> #include<algorithm> using namespace std; int n,m,p; int main() { cin>>m>>n; ++m,++n; p=min(m&-m,n&-n); cout<<(p*p-1)/3<<'\n'; }
Python3(3.5.2) 解法, 执行用时: 31ms, 内存消耗: 3544K, 提交时间: 2020-02-08 19:41:33
n, m = map(int, input().split()) ans = 0 k = 1 while n & 1 and m & 1: ans += k k <<= 2 n >>= 1 m >>= 1 print(ans)