ZJU-1003 Crashing Balloon dfs,
http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=3
题意(难以描述):A,B两个人从1~100选数乘起来比谁的大(不能选重复的或者对方选的)。数小的人如果发现数大的人在撒谎,则他可以获胜。(当然都没撒谎大数赢,都撒谎了也是大数赢233)而他判断大数撒谎的方法就是找到自己选的一个数,是构成大数所必须的。/*给你两个数,由1~100选取不重复的数乘起来得到的。如果小的那个数包含了某个大数必须包含的因子,则*/
题解:从1到100枚举构成AB的方法,然后按这个逻辑判断:(A>B)
if能构成B {
if能构成A:cout<<A;
else cout<<B;
}
else cout<<B;
练搜索题时看到的一段超简单代码。
判断超简单:
将三个cout用两个flag来简化:具体实现如下。
搜索超简单:
从100 到 1 不断除 A或除 B 能除进 就按除掉的数继续dfs;
dfs结构很漂亮:结尾用dfs代替了循环,开头判断即使结束递归。
ac代码
#include<cstdio>
#include<algorithm>
#include<iostream>
using namespace std;
int fa, fb;
void dfs(int a, int b, int k) {
if (b == ) {
fb = ;
if (a == )
fa = ;
}
if (k == || (fa&&fb))return;
if (a%k == )dfs(a / k, b, k - );
if (b%k == )dfs(a, b/k, k - );
dfs(a, b, k - );
} int main() {
int a, b;
while (cin >> a >> b) {
if (a < b)swap(a, b);
fa = fb = ;
dfs(a, b, );
if (fa == && fb == ) cout << b << endl;
else cout << a << endl; }
}
ZJU-1003 Crashing Balloon dfs,的更多相关文章
- [ZJU 1003] Crashing Balloon
ZOJ Problem Set - 1003 Crashing Balloon Time Limit: 2 Seconds Memory Limit: 65536 KB On every J ...
- [ZOJ 1003] Crashing Balloon (dfs搜索)
题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=3 题目大意:给你a,b两个数,问当b由约数1到100组成时,a能否由其 ...
- 1003 Crashing Balloon
考察DFS的应用,判断两个数的因子. #include <stdio.h> int f1,f2; void DFS(int m,int n,int k){ ){ f2=; ) f1=; } ...
- ZOJ 1003 Crashing Balloon
#include<cstdio> #include<cstring> #include<cmath> #include<algorithm> using ...
- 【ZOJ1003】Crashing Balloon(DFS)
Crashing Balloon Time Limit: 2 Seconds Memory Limit: 65536 KB On every June 1st, the Children's ...
- ZOJ1003 Crashing Balloon
Crashing Balloon Time Limit: 2 Seconds Memory Limit: 65536 KB On every June 1st, the Children's ...
- 【Acm】算法之美—Crashing Balloon
题目概述:Crashing Balloon On every June 1st, the Children's Day, there will be a game named "crash ...
- 小鼠迷宫问题【sdut1157】【dfs,bfs综合题目】
小鼠迷宫问题 Time Limit: 1500ms Memory limit: 65536K 有疑问?点这里^_^ 题目描述 小鼠a与小鼠b身处一个m×n的迷宫中,如图所示.每一个方格表示迷宫中 ...
- 递归,回溯,DFS,BFS的理解和模板【摘】
递归:就是出现这种情况的代码: (或者说是用到了栈) 解答树角度:在dfs遍历一棵解答树 优点:结构简洁缺点:效率低,可能栈溢出 递归的一般结构: void f() { if(符合边界条件) { // ...
随机推荐
- 随笔 -- NIO -- 相关 -- 系统概述
.打开Selector .打开ServerSocketChannel .获取与此Channel关联的ServerSocket并绑定地址 .设置Channel为非阻塞 .将Channel注册到Selec ...
- ios开发之--UIViewContentMode详解
在开发当中有时会有这样的需求,将从服务器端下载下来的图片添加到imageView 当中展示,但是下载下来的图片尺寸大小不固定,宽高也有可能不成比例 如果直接设置imageView的image属性而不设 ...
- Selenium 选项卡管理
什么是选项卡: from selenium import webdriver browser = webdriver.Chrome() browser.get("http://www.bai ...
- psutil的使用
psutil是Python中广泛使用的开源项目,其提供了非常多的便利函数来获取操作系统的信息. 此外,还提供了许多命令行工具提供的功能,如ps,top,kill.free,iostat,iotop,p ...
- oracle 排序字段自增长
<insert id="insertGoodsDescription" parameterClass="goodsDescription" > &l ...
- Studio更新
其实最主要的是下面三个步骤: 1.更新As工程为3.0 2.必须升级gradle到4.0以上 3.buildToolsVersion升级到26.0.0 4.在gradle.properties中配置版 ...
- 《C++标准程序库》笔记之四
本篇博客笔记顺序大体按照<C++标准程序库(第1版)>各章节顺序编排. ---------------------------------------------------------- ...
- 【Java并发编程二】同步容器和并发容器
一.同步容器 在Java中,同步容器包括两个部分,一个是vector和HashTable,查看vector.HashTable的实现代码,可以看到这些容器实现线程安全的方式就是将它们的状态封装起来,并 ...
- ubuntu下升级特定软件与查看软件版本信息
ubuntu 升级软件: sudo apt-get update 更新源 sudo apt-get upgrade 更新已安装的包 sudo apt-get dist-upgrade 升级系统 ubu ...
- C语言内存使用的常见问题及解决之道
一 前言 本文所讨论的“内存”主要指(静态)数据区.堆区和栈区空间(详细的布局和描述参考<Linux虚拟地址空间布局>一文).数据区内存在程序编译时分配,该内存的生存期为程序的整个运行期 ...