这个题非常的不容易 ,第一遍交爆零了

首先根据最大公约数和最小公倍数可知:

这个数x一定包含a1的所有质因数

这个数x一定不包含a0/a1的所有质因数

这个数一定包含b1/b0的所有质因数

这个数可能包含b0的任意个因数

那么显然不同的方案数就是从最后一个“可能”中来,没有方案的情况就是从前三个“一定”中来、

所以可以a1、a0、b1、b0一起分解质因数,然后进行繁琐的判断

码:

#include<iostream>
#include<cstdio>
using namespace std;
#define ll long long
ll n,b0,a0,b1,a1,i,ans;int main(){scanf("%lld",&n);while(n--){   ans=0;scanf("%lld%lld%lld%lld",&a1,&a0,&b0,&b1);if(b1%a0>0){printf("0\n");continue;}for(i=2;i*i<=b1;i++){if(b1%i)continue;int lin1=0,lin2=0,lin3=0,lin4=0;while(!(b1%i)){lin1++;b1/=i;             }while(!(b0%i)){lin2++;b0/=i;}while(!(a0%i)){lin3++;a0/=i;                }while(!(a1%i)){lin4++;a1/=i;                }if(lin4-lin3)//必须有a0个 {//ans*=lin3;//检验看看fubufuif(lin1-lin2)//必须有b1个 {if(lin1==lin3)continue;//放过   else //矛盾 {ans=-1;break;}}else continue;   //相等则可以选用,但必须有a0个,对方案数无贡献,,所以过  }else  //必须至少有a0个{if(lin1-lin2)//必须有b1个 {if(lin1>=lin3)continue;//放过    else //矛盾 {ans=-1;break;}}else  //有lin1或lin2个供选择 {if(ans==0)ans=lin1-lin3;else ans=ans+ans*(lin1-lin3)+lin1-lin3;}                       }}//此刻b1剩下的是最大的单个质因数if(b1!=1){   if(!(a0%b1)&&a0>1)//如果a0有 {if(!(a0/b1%b1)&&a0/b1>1)//如果a0有多个  那你就完了ans=-1;}  //如果a0没有,就无所谓了    若a0没有,则a1可能有    a1有就 else{if(b0%b1) //如果b0没有,而a1有  那就出事了{if(!(a1%b1)&&a1>1)ans=-1; }else {if(!(a1%b1)&&a1>1);else{if(ans==0)ans=1;  // else ans=ans+ans+1;  }}} }if(ans>=0)   printf("%d\n",ans+1);else printf("0\n");   }   }

ps:这个题刚进新校的时候考过,当时折腾了4h没搞出来

没有用任何新知识,但现在终于能搞出来了

主要还是对gcd 和lcm  、质数、质因数的理解和逻辑思维、、

提高对某些知识点的理解还是很重要的、、、、

2017.4.22 hankson的趣味题 思考记录相关推荐

  1. 2017.10.17 CF#441 F题 思考记录

    .果然没有题解做题感觉是不一样的. 这个F题可能是最像往常B题的题了(往常B题就是dp,还一般都不难) 首先这个是|,所以|的数越多,它一定是不降的 那么合法的一定是一个数到一个数往后的数所构成的所有 ...

  2. Hankson的趣味题 解题记录

    https://www.zybuluo.com/rebirth1120/note/1517197 PS:由于博客园的编辑器不支持 Markdown,所以我的文章现在基本都在作业部落的编辑器上写,以后估 ...

  3. 2017.3.22 小z的袜子 思考记录

    第一次写莫队,,所以简单学习了一下比较方便的写法:: 第一步当然是分块. 然后左端点按块排序,左端点在一个块的按右端点排序.. 之所以用块,,是为了防止左端点相近时右端点来回跳... 所以全当暴力处理 ...

  4. 约数——Hankson的趣味题

    Hankson的趣味题 Hanks博士是BT(Bio-Tech,生物技术)领域的知名专家,他的儿子名叫Hankson. 现在,刚刚放学回家的Hankson正在思考一个有趣的问题. 今天在课堂上,老师讲 ...

  5. java蓝桥杯练习 Hankson的趣味题

    java蓝桥杯练习 Hankson的趣味题 资源限制 时间限制:1.0s 内存限制:64.0MB 问题描述 Hanks 博士是BT (Bio-Tech,生物技术) 领域的知名专家,他的儿子名叫Hank ...

  6. Hankson的趣味题

    Hankson的趣味题 时间限制: 1 Sec  内存限制: 128 MB [提交][状态][讨论版] 题目描述 已知正整数a0,a1,b0,b1.设某未知正整数x 满足: 1. x 和a0 的最大公 ...

  7. 洛谷1072 Hankson 的趣味题

    https://www.luogu.org/problem/show?pid=1072 Hankson 的趣味题 正解:素数筛+因数分解+乘法原理.简单地来说就是我不会! 但是考虑: 1.从b1入手, ...

  8. [NOIp 2009]Hankson的趣味题

    Description Hanks 博士是 BT (Bio-Tech,生物技术) 领域的知名专家,他的儿子名叫 Hankson.现在,刚刚放学回家的 Hankson 正在思考一个有趣的问题. 今天在课 ...

  9. d778: NOIP2009 2.Hankson的趣味题

    内容 : Hanks 博士是 BT (Bio-Tech,生物技术)  领域的知名专家,他的儿子名叫 Hankson.现在,刚刚放学回家的 Hankson 正在思考一个有趣的问题.       今天在课 ...

最新文章

  1. Map集合练习之对字符串中字母出现的次数求和
  2. 玩转java(Android)注解
  3. python多线程爬虫实例-Python多线程在爬虫中的应用
  4. Java连载2-Java特性
  5. 打造万能的Python开发环境
  6. [置顶]tcpflow 抓包
  7. 命令行运行python找不到sqlite_ubuntu python3.6 找不到_sqlite3
  8. 如何编写自己的C语言头文件
  9. 计算长方体、四棱锥的表面积和体积
  10. java毕设答辩准备
  11. SAP MD04详解
  12. 耳机麦克风正常,但是部分PC应用不能语音的问题!
  13. 王俊杰:苏宁AI在智慧零售上的应用
  14. 抖音短视频企业号如何运营
  15. 安装pointgray灰度相机,mindvison,pointgray偏振相机的ubuntu驱动
  16. 一个有经验的网络工程师的所谈
  17. 这里有颗草莓味儿的腾讯翻译君,用AI打破音乐国界
  18. 杰里之AC695N/AC696N 蓝牙耳机PCB LAYOUT 说明【篇】
  19. 标志位的作用c语言,标志位作用及操作(转)
  20. 惠普HP MFP 163W 电脑无法通过WIFI打印

热门文章

  1. * poj 3159 Candies 最短路 dijkstra堆优化
  2. Navicat连接mysql8.0.1版本出现1251--Client does not support authentication protocol requested by server的解决
  3. SQL分组求每组最大值问题的解决方法收集
  4. 系统协调服务器,协调网络系统 Collaboration network system
  5. 小孔成像实验探究的软件_小孔成像法观察日食
  6. c++ 结构体中不同类型的初始值_Golang语言基础教程:结构体
  7. python不同时间周期k线_请问期货不同时间级别的k线呈现相反形态怎么判断买卖点?...
  8. 万分之二用百分之怎么表示_农村建房时,“砖砌的化粪池”怎么做?听完内行人的分析,明白了...
  9. 扑捉和捕捉的区别照相_扑捉和捕捉的区别照相
  10. python打开文件报错无效序列_解决Python 写文件报错TypeError的问题