题目链接:http://lightoj.com/volume_showproblem.php?problem=1341

题意:给你地毯面积和最小可能边的长度,让你求有几种组合的可能。

题解:这题就厉害了。第一次了解了算术基本定理。

这里运用的是应用1。你想,你把所有的正因数个数找到了,减半,不就是组合对数了么QWQ。最后再减去小于最小的边的可能性。Perfect。数学真奇妙。

素数的板子是最开始贴的自己的那个。QWQ

  1. #include<iostream>
  2. #include<cmath>
  3. #include<cstdio>
  4. using namespace std;
  5. #define ll long long
  6. const int N = 1e6 + ;
  7.  
  8. bool prime[N];
  9. int p[N],tot;
  10.  
  11. void init(){
  12. for(int i = ; i < N ; i++){
  13. prime[i] = true;
  14. }
  15. for(int i = ; i < N; i++){
  16. if(prime[i])
  17. p[tot++] = i;
  18. for(int j = ; j < tot && i * p[j] < N; j++){
  19. prime[ i*p[j] ] = false;
  20. if( i % p[j] == )
  21. break;
  22. }
  23. }
  24. }
  25.  
  26. int main(){
  27. init();
  28. int T;
  29. cin>>T;
  30. int t = ,ans = ;
  31. ll area , minline;
  32. while(T--){
  33. cin>>area>>minline;
  34. ans = ;
  35. if(minline >= sqrt(area)){
  36. printf("Case %d: %d\n",t,);
  37. t++;
  38. continue;
  39. }
  40. else{
  41. ll tmp = area;
  42.  
  43. //筛ai
  44. for(int i = ; i < tot && p[i] * p[i] <= area ; i++){
  45. int cnt = ;
  46. while( area % p[i] == ){
  47. area /= p[i];
  48. cnt++;
  49. }
  50. ans *= (cnt + ); //所有正因数的个数
  51. }
  52.  
  53. if( area != ){
  54. ans <<= ; //减半
  55. }
  56. ans >>= ;
  57. for(int i = ; i < minline; i++){
  58. if( tmp % i == )
  59. ans--; //晒出小于minline的因子
  60. }
  61. printf("Case %d: %d\n",t,ans);
  62. t++;
  63. }
  64.  
  65. }
  66.  
  67. return ;
  68. }

LightOJ 1341 - Aladdin and the Flying Carpet的更多相关文章

  1. LightOJ 1341 - Aladdin and the Flying Carpet (唯一分解定理 + 素数筛选)

    http://lightoj.com/volume_showproblem.php?problem=1341 Aladdin and the Flying Carpet Time Limit:3000 ...

  2. LightOJ - 1341 Aladdin and the Flying Carpet 唯一分解定理LightOJ 1220Mysterious Bacteria

    题意: ttt 组数据,第一个给定飞毯的面积为 sss,第二个是毯子的最短的边的长度大于等于这个数,毯子是矩形但不是正方形. 思路: 求出 sss 的所有因子,因为不可能是矩形,所以可以除以 222, ...

  3. LightOJ 1341 Aladdin and the Flying Carpet(唯一分解定理)

    http://lightoj.com/volume_showproblem.php?problem=1341 题意:给你矩形的面积(矩形的边长都是正整数),让你求最小的边大于等于b的矩形的个数. 思路 ...

  4. LightOJ 1341 - Aladdin and the Flying Carpet 基本因子分解

    http://www.lightoj.com/volume_showproblem.php?problem=1341 题意:给你长方形的面积a,边最小为b,问有几种情况. 思路:对a进行素因子分解,再 ...

  5. LightOJ 1341 Aladdin and the Flying Carpet【整数分解】

    题目链接: http://lightoj.com/login_main.php?url=volume_showproblem.php?problem=1341 题意: 给定一个数,将其拆分成两个数的乘 ...

  6. [LightOJ 1341] Aladdin and the Flying Carpet (算数基本定理(唯一分解定理))

    题目链接: https://vjudge.net/problem/LightOJ-1341 题目描述: 问有几种边长为整数的矩形面积等于a,且矩形的短边不小于b 算数基本定理的知识点:https:// ...

  7. LightOJ 1341 Aladdin and the Flying Carpet 数学

    题意:给个矩形的面积a,和矩形的最小边长b,问有多少种矩形的方案(不能是正方形) 分析:a可以写成x,y,因为不能是正方形,所以设x<y,那么x<sqrt(a),y>sqrt(a) ...

  8. LightOJ 1341 Aladdin and the Flying Carpet 算数基本定理

    题目大意:给出面积n,和最短边m,求能形成的矩形的个数(不能为正方形). 题目思路:根据算数基本定理有: 1.每个数n都能被分解为:n=p1^a1*p2^a2*^p3^a3……pn^an(p为素数); ...

  9. LightOJ 1341 Aladdin and the Flying Carpet(整数拆分定理)

    分析:题目并不难理解,就是一些细节上的优化需要我们注意,我在没有优化前跑了2000多MS,优化了一些细节后就是400多MS了,之前还TLE了好几次. 方法:将整数拆分为质因子以后,表达为这样的形式,e ...

随机推荐

  1. 浏览器HTTP协议请求头信息

    通常HTTP消息包括客户机向服务器的请求消息和服务器向客户机的响应消息.客户端向服务器发送一个请求,请求头包含请求的方法.URI.协议版本.以及包含请求修饰符.客户信息和内容的类似于MIME的消息结构 ...

  2. 提取json对象中的数据,转化为数组

    var xx1 = ["乐谱中的调号为( )调", "写出a自然小调音阶.", "以G为冠音,构写增四.减五音程.", "调式分析 ...

  3. 1022 Digital Library (30 分)

    1022 Digital Library (30 分)   A Digital Library contains millions of books, stored according to thei ...

  4. NIO 源码分析(02-1) BIO 源码分析

    目录 一.BIO 最简使用姿势 二.ServerSocket 源码分析 2.1 相关类图 2.2 主要属性 2.3 构造函数 2.4 bind 方法 2.5 accept 方法 2.6 总结 NIO ...

  5. Educational Codeforces Round 56 D - Beautiful Graph

    ​题目大意: 在给定的一个图中(可能不连通) 给每个点赋值1.2.3 使得一条边上的两个端点点权相加为奇数 求方案数 一条满足条件的路径上的点权必为一奇一偶交替 偶数只有2 奇数有1.3 若位于1.3 ...

  6. c# mvc 简洁大气官网---源码

    结构

  7. 微信小程序之评分页面

    首先给大家看看做好的效果图: 一.接下来我们说一下评分这个功能: 实际上就是一个简单的js,首先我们遍历出小星星,此时默认给的五星好评,在给他们一个点击事件,当点击时,我们获取到当前点击的是第几颗:代 ...

  8. axios获取本地文件配置步骤

    首先修改一下config文件夹下面的index.js文件里面的配置,如下: 然后 ,通过axios 请求配置的接口 <script> import axios from 'axios' e ...

  9. mysql 删除同样记录只保留一条

    delete from fa_order_account ) as a) ) as b)

  10. 2017-3-7html基础

    一:<html><!--html文档的开始--> <head><!--头标签,html文档的开头,来描述html文档的信息,head之间的内容不会在浏览器中显 ...