zoj1003 crashing balloon

转载 2015年11月19日 23:10:29
  1. #include<stdio.h>
    int flag1, flag2;	//分别表示n, m是否已被成功分解
    void dfs(int n, int m, int fac = 100){
    	if(flag1)	//如果n, m均可分解且因子不同
    		return;
    	if(n == 1 && m == 1){	//n, m均分解完
    		flag1 = 1;
    		flag2 = 1;
    		return;
    	}
    	if(m == 1){ //m分解完
    		flag2 = 1;
    	}
    	if (fac < 2)
    		return;
    	if(n % fac == 0)	//精华之处,对同一个因子不同时分解n, m,难点解决
    		dfs(n / fac, m, fac - 1);
    	if(m % fac == 0)
    		dfs(n, m / fac, fac - 1);
    	dfs(n, m, fac - 1);
    }
     
    int main(){
    	int n, m;
    	while(~scanf("%d%d", &n, &m)){
    		if(m > n){ //交换m, n
    			n = m ^ n;
    			m = m ^ n;
    			n = m ^ n;
    		}
    		flag1 = 0;
    		flag2 = 0;
    		dfs(n, m);
    		if(flag1 || !flag2)	//如果n成功分解货m无法成功分解
    			printf("%d\n", n);
    		else
    			printf("%d\n", m);
    	}
    	return 0;
    }

    //内容来自ConwayTian
  2. /*
  3. blog上一大把,copy,但很多copy的并不是那么好。
  4. */
  5. #include<cstdio>  
  6. #include<algorithm>  
  7. using namespace std;  
  8.   
  9. bool f1, f2;  
  10.   
  11. void dfs(int numa, int numb, int k)  
  12. {  
  13. /*
  14. 解决这个问题时也知道使用递归,但怎么用并不明确,缺少练习。
  15. 解决这个问题,如果把两个数据分别处理,处理量就大了,所以如果能将数据在一块处理,也是蛮好的
  16. */
  17.     if(numb == 1)  
  18.     {  
  19.         f2 = true;  
  20.         if(numa == 1) f1 = true;  
  21.         /*在numb分解完成的情况下,查看numa是否可以分解。 
  22.           这样可以保证某些公因子被numb用了,便不能再被numa用*/  
  23.     }  
  24.   
  25. /*
  26. 还有就是对递归实际代码的理解了,总是认为递归进去,也会出来的,总是在想怎样处理进出关系。
  27. 下边的主要是,把k占住了,代码的设计就是让递归一直下去(这正是数据处理的过程,下走的时候
  28. ,若有公因子,则只能a使用),当都
  29. */
  30.     if(k == 1 || (f1 && f2)) return;  /*要么没有分解完,要么都分解完了,才会停止向下
  31. 递归,开始往回走,回走的过程也会处理一些数据但已经不需要了
  32. 1、都分解完了,
  33. 2、b分解完了,a没有,到底了
  34. 3、b就没分解完,根据题目要求,b的申诉就失败了
  35. */
  36.     if(numa % k == 0) dfs(numa / k, numb, k - 1); //因子k,被a用不被b用  
  37.     if(numb % k == 0) dfs(numa, numb / k, k - 1); //因子k,被b用不被a用  
  38.     dfs(numa, numb, k - 1); //因子k,既不被a用也不被b用  
  39. }  
  40.   
  41. int main()  
  42. {  
  43.     int a, b;  
  44.     while(scanf("%d%d",&a,&b) != EOF)  
  45.     {  
  46.         if(a < b) swap(a, b);  
  47.         f1 = f2 = false;  
  48.         dfs(a, b, 100);  
  49.         if(!f1 && f2) printf("%d\n",b);  
  50.         else printf("%d\n",a);  
  51.     }  
  52.     return 0;  
  53. }  


【算法】算法之美—Crashing Balloon

题目概述:Crashing Balloon  On every  June 1st, the Children's Day, there will be a game named "crashing ...
  • hackdevil
  • hackdevil
  • 2013年06月27日 17:38
  • 244

内存气球技术实验(Memory Balloon)

Memory Balloon 实验
  • nirendao
  • nirendao
  • 2017年02月08日 00:31
  • 811

kvm的气泡(balloon)机制 及 在线资源调整

最近想借用kvm虚拟化中的balloon机制来实现linux云主机的在线资源伸缩,由于cloudstack也采用balloon技术来在线调整云主机的资源,因此在可行性上应该没有问题,不过在实际测试中碰...
  • weiyuanke
  • weiyuanke
  • 2014年04月15日 21:40
  • 2000

2016ICPC沈阳站承办总结(PC^2使用指南)

出处   http://www.cnblogs.com/xuwangzihao/p/5998333.html 写在前面 1.排版混乱,看完再下手也不迟,避免掉到坑里。。。 2.本文仅供参考,...
  • wuye
  • wuye
  • 2016年10月30日 22:09
  • 505

踩气球ZOJ1003

描述: 六一儿童节,小朋友们做踩气球游戏,气球的编号是1~100,两位小朋友各踩了一些气球,要求他们报出自己所踩气球的编号的乘积。现在需要你编一个程序来判断他们的胜负,判断的规则是这样的:如果两人...
  • axiqia
  • axiqia
  • 2016年04月08日 14:50
  • 710

浙大ZOJ 1003 Crashing Ballon问题解决及其他人的做法

完成了在ZOJ上的处女题,小兴奋,在此记录一下: 一、工程代码加上算法设计注释 --------------------------------------------------crash_ball...
  • xiaogugood
  • xiaogugood
  • 2013年12月31日 13:55
  • 2043

Crashing Robots(好麻烦啊~)

Crashing Robots Time Limit: 1000MS   Memory Limit: 65536K       Descripti...
  • yhb1216776494
  • yhb1216776494
  • 2013年05月07日 19:43
  • 709

centos6.7环境之kvm虚拟化quem工具配置及使用详解

环境准备 需要勾选CPU的虚拟化支持,支持cpu虚拟化的CPU列表: intel支持虚拟化技术CPU列表: Intel 6 Cores / 12 Threads CPU Number: Cod...
  • reblue520
  • reblue520
  • 2016年05月19日 17:02
  • 10362

ZOJ 3981 Balloon Robot(提前位置取消等待时间)

Balloon Robot Time Limit: 1 Second Memory Limit: 65536 KB The 2017 China Collegiate Programmi...
  • Yasola
  • Yasola
  • 2017年10月30日 12:21
  • 312

Crashing Robots(模拟,有点像搜索)

H - Crashing Robots Time Limit:1000MS     Memory Limit:65536KB     64bit IO Format:%I64d & %I64u ...
  • zsc2014030403015
  • zsc2014030403015
  • 2015年10月02日 11:47
  • 261
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:zoj1003 crashing balloon
举报原因:
原因补充:

(最多只允许输入30个字)