ZOJ/ZJU 1003
2011-09-20 20:33
267 查看
题意:给出两个数,如果在1-100之间能找到若干个数的乘积是a,还能找到若干个数的乘积是b,而且没有交集。那max(a,b)输出,如果都找不到输出max(a,b)。如果小的能找到大的找不到输出min(a,b)。
解法:搜索。其实这个题我之前一直不会,然后搜了下题解,发现简单的搜索就能过。只要能找到一种组成a,b的情况那么就是大的赢。否则看是不是能找到一种组成小数的情况,那就是小的赢。结果就是判断小的赢还是不赢。如果能想到这也就简单了吧。
解法:搜索。其实这个题我之前一直不会,然后搜了下题解,发现简单的搜索就能过。只要能找到一种组成a,b的情况那么就是大的赢。否则看是不是能找到一种组成小数的情况,那就是小的赢。结果就是判断小的赢还是不赢。如果能想到这也就简单了吧。
#include <iostream> #include <cstring> #include <algorithm> #include <map> #include <set> #include <cmath> #include <vector> #include <string.h> #include <cstdio> using namespace std; int win; void solve(int a, int b, int s) { if ( win == 1 ) return; if ( a == 1 && b == 1 ) { win = 1; return; } if ( s == 101 ) { if ( a == 1 && b > 1 ) win = 0; return; } if ( a % s == 0 ) solve(a / s, b, s + 1); if ( b % s == 0 ) solve(a, b / s, s + 1); solve(a, b, s + 1); } int main() { int n, m; while (scanf("%d%d", &n, &m) != EOF) { win = -1; solve(min(n, m), max(n, m), 2); if ( win != 0 ) { printf("%d\n", max(n, m)); } else { printf("%d\n", min(n, m)); } } return 0; }
相关文章推荐
- ZOJ Problem Set - 1003 Crashing Balloon
- zju 1002 zoj 1002
- ZOJ_1003
- ZOJ 1003 Crashing Balloon(DFS)
- ZOJ 1003 Crashing Balloon
- zju/zoj 1276 Optimal Array Multiplication Sequence(dp)
- zju 1003 zoj 1003
- 记录ZOJ(http://acm.zju.edu.cn/onlinejudge/)上的Python之旅
- POJ1003 UVALive2294 HDU1056 ZOJ1045 Hangover【数学计算+水题】
- zoj 1003 Crashing Balloon
- ZOJ&nbsp;1003&nbsp;Crashing&nbsp;Balloon
- zoj 1003 大牛求助
- zju 1004 zoj 1004
- ZOJ 1003
- 浙大ZOJ 1003 Crashing Ballon问题解决及其他人的做法
- [ACM_ZOJ_1003]Crashing Balloon
- ZJU1003 Crashing Balloon - 踩气球
- 浙江大学ZOJ 1003题 详解
- ZOJ 1003 Crashing Balloon 搜索
- zoj-1003