本文主要是介绍hdu5050_2014ACM上海__Divided Land,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
本文出自:点击打开链接
原题见hdu5050
代码:
#include <iostream>
#include <stdio.h>
#include <string.h>
#include <vector>
#include <map>
#include <algorithm>
#include <queue>
#include <cmath>
#include <bitset>
using namespace std;#define INF 0x3f3f3f3f
#define ll long long int
#define ui unsigned long
#define ull unsigned long long
#define MEM(a) memset(a, 0, sizeof(a))
#define MEMM(a) memset(b, -1, sizeof(b))
#define DBG(x, n) cout << (x) << " " << (n) << endl;#define SL(a) strlen(a)
#define RS(s) scanf("%s", (s))
#define PI(r) printf("%d\n", (r))
#define RI(a) scanf("%d", &(a))
#define RII(a, b) scanf("%d%d", &(a), &(b))
#define RIII(a, b, c) scanf("%d%d%d", &(a), &(b), &(c))#ifdef ONLINE_JUDGE
#define FOI(file) 0
#define FOW(file) 0
#else
#define FOI(file) freopen(file,"r",stdin);
#define FOW(file) freopen(file,"w",stdout);
#endif#define N 1001
bitset <1001> w;
bitset <1001> h;
bitset <1001> d;void bitsetSubtract(bitset<N> &x, const bitset<N> &y) {bool borrow = false;for (int i = 0; i < N; i++) {if (borrow) {if (x[i]) {x[i] = y[i];borrow = y[i];} else {x[i] = !y[i];borrow = true;}} else {if (x[i]) {x[i] = !y[i];borrow = false;} else {x[i] = y[i];borrow = y[i];}}}
}bitset<N> gcd(bitset<N> u, bitset<N> v) {bitset<N> one (string("1"));bitset<N> zero (string("0"));int shift;if (u == 0) return v;if (v == 0) return u;for (shift = 0; ((u | v) & one) == zero; ++shift) {u >>= 1;v >>= 1;}while ((u & one) == zero) u >>= 1;do {while ((v & one) == zero) v >>= 1;string t1 = u.to_string<char, char_traits<char>, allocator<char> >();string t2 = v.to_string<char, char_traits<char>, allocator<char> >();if (t1 > t2) {bitset<N> t = v;v = u;u = t;}bitsetSubtract(v,u);} while (v != 0);return u << shift;
}int main()
{//FOI("input");//FOW("output");//write your programme hereint t;scanf("%d", &t);int i;int j;for(i = 1; i <= t; i++){cin >> w >> h;d = gcd(w, h);printf("Case #%d: ", i);// cout << d << endl;j = 1000;while(d[j] != 1)j--;while(j != -1){cout << d[j];j --;}cout << endl;}return 0;
}
这篇关于hdu5050_2014ACM上海__Divided Land的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!