sgu 126 Boxes 数学推导(打表找规律??...)
2013-11-20 16:10
393 查看
这题太可怕了-,。。推了一下午没推出来,看了下题解,发现只要找到(a+b) /gcd(a,b) == 2^k 中k的大小就行...另外特判下n,m为0的情况....比赛的时候真遇上这种题果然还是暴力打一堆表找规律的节奏么.........证明之类的网上有,就不在这贴了...
#include <iostream>
#include <cstdio>
#include <algorithm>
#include <memory.h>
#include <cstring>
#include <map>
using namespace std;
typedef long long ll;
int n,m,p,q;
int gcd(int a,int b)
{
if (b==0) return a;
return gcd(b,a%b);
}
int check(int k)
{
for (int i=0; i<31; i++)
if (k==(1<<i)) return i;
return -1;
}
int main()
{
cin>>n>>m;
p=(n+m)/gcd(n,m);
if (n && m==0) cout<<0<<endl;
else cout<<check(p)<<endl;
}
#include <iostream>
#include <cstdio>
#include <algorithm>
#include <memory.h>
#include <cstring>
#include <map>
using namespace std;
typedef long long ll;
int n,m,p,q;
int gcd(int a,int b)
{
if (b==0) return a;
return gcd(b,a%b);
}
int check(int k)
{
for (int i=0; i<31; i++)
if (k==(1<<i)) return i;
return -1;
}
int main()
{
cin>>n>>m;
p=(n+m)/gcd(n,m);
if (n && m==0) cout<<0<<endl;
else cout<<check(p)<<endl;
}
相关文章推荐
- SGU 126. Boxes 找规律 数学 二进制
- 找规律 SGU 126 Boxes
- Boxes - SGU 126(找规律)
- HDU-5810-Balls and Boxes-数学推导(找规律)
- sgu 169 数学推导,找规律
- SGU 126. Boxes --- 模拟
- 【HDU 5810多校】Balls and Boxes(打表/数学)
- SGU 105 数学找规律
- 数学 | 推理 | 思维 | 打表 | 找规律 | 贪心 | 暴力
- HDU:2050 折线分割平面(规律,数学,推导)
- SGU 105 数学题or找规律
- SGU 105 数学找规律
- SGU126 Boxes
- SGU126 Boxes
- Spreading the Wealth UVA - 11300 找规律+数学推导
- sgu126:Boxes
- SGU126-Boxes
- SGU 126 Boxes(数论)
- HDU 4577X-Boxes(数学规律题目 循环节)
- SGU 126 Boxes