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; }
}

最新文章

  1. 打造AngularJs2.0开发环境
  2. Wireshark基本介绍和学习TCP三次握手
  3. 使用dom4j操作XML
  4. ASPX版菜刀一句话,留后门专用
  5. iphone dev 入门实例2:Pass Data Between View Controllers using segue
  6. Cocos2D-x搭建新环境注意事项
  7. MyEclipse的快捷键的使用
  8. Apache Avro 与 Thrift 比较
  9. 关于log4.net 错误,求解
  10. 洛谷教主花园dp
  11. Video Target Tracking Based on Online Learning—深度学习在目标跟踪中的应用
  12. MySQL详解--锁,事务
  13. 《生命》第四集:Fish (鱼类)
  14. 退出全屏监听ESC事件,这里没有用keydown来监听,因为全屏时候keydown监听不到
  15. 一个kubeadm.config文件--定义了token,扩展了默认端口,外部ETCD集群,自定义docker仓库,基于ipvs的kubeproxy
  16. Ubuntu16.04安装YouCompleteMe
  17. myeclipse、maven、tomcat、jdk技巧和坑【待完善】
  18. Selenium自动化测试框架
  19. linux学习第四天 (Linux就该这么学)2018年11月16日
  20. [Canvas]Running Horse

热门文章

  1. 5 -- Hibernate的基本用法 --4 5 JNDI数据源的连接属性
  2. ios开发之--textview意见反馈页面(占位label,字数统计,提交按钮的交互设置)
  3. error: pathspec &#39;master&#39; did not match any file(s) known to git.
  4. [SublimeText] 如何创建工程
  5. 《Lua程序设计》第1章 开始 学习笔记
  6. (原)一句mpAudioPolicy-&gt;get_input引发的血案
  7. Clock skewdetected. Your build may be incomplete.
  8. linux下删除大量小文件
  9. SqlServer中循环查询结果集
  10. Win8交互UX——笔交互