ZOJ 1003
来源:互联网 发布:淘宝客自动采集 编辑:程序博客网 时间:2024/05/17 07:55
显然易见,该问题应该使用DFS解决。
分析:(假定A>B)
如果A要赢,要么A真,要么双假。
如果B要赢,只能B真A假。
故判断结果输出,应判断B能否赢,而不是A能否赢。
其次,气球是唯一的,所以可以从2~100(1不用考虑)正序踩气球。
即dfs(k)->dfs(k+1) k<=100 。
一个气球,要么A踩,要么B踩,要么都不踩,故共3种递归情况。
而有人要踩则必须是其因子,故通过该条件可以提高算法效率。
所以dfs条件如上
代码如下
#include <iostream>#include<string>#include<algorithm>#include<vector>#include<stack>#include<cstring>#include<set>using namespace std;bool a ,b;//both falsevoid dfs(int A, int B, int c) {if (B == 1) {//b trueb = 1;if (A == 1)// A truea = 1;}if ((a && b) || c>100)//if both true or c more than 100return;if (A%c == 0) {// this is A'sdfs(A / c, B, c + 1);}if (B%c == 0) {// this is B'sdfs(A, B / c, c + 1);}dfs(A, B, c + 1);// neither }int main() {int A, B;while (cin >> A >> B) {if (A < B)swap(A, B);a = b = 0;dfs(A, B, 2);if (b && !a)cout << B<<endl;else cout << A << endl;}return 0;}
阅读全文
0 0
- zoj 1003
- zoj-1003
- zoj-1003
- zoj 1003
- zoj 1003
- ZOJ 1003
- ZOJ 1003
- ZOJ 1003
- ZOJ 1003
- zju 1003 zoj 1003
- [ZOJ] 1003 Crashing Balloon
- zoj 1003 Crashing Balloon
- ZOJ 1003 Crashing Balloon
- zoj 1003 Crashing Balloon
- ZOJ 1003 Crashing Balloon
- zoj 1003 Crashing Balloon
- zoj 1003 Crashing Balloon
- zoj 1003 Crashing Balloon
- php页面嵌套html代码,,html中js调用php中的数组
- 文工厂模式之简单工厂
- Android studio 如何让包安层级显示
- SQL知识归纳
- C++之关联式容器
- ZOJ 1003
- C++中string.find()函数与string::npos
- Android逆向之旅---分析某直播App的协议加密原理以及调用加密方法进行协议参数构造
- idea maven 配置spring mvc mybatis
- HDU 1029
- 原创文章对seo优化的好处
- Nginx代理配置
- Java设计模式--备忘录模式【Memento Pattern】
- npm用法以及更换到淘宝镜像的方法