Aladdin and the Flying Carpet LightOJ 1341 唯一分解定理
题意:给出a,b,问有多少种长方形满足面积为a,最短边>=b?
首先简单讲一下唯一分解定理。
唯一分解定理:任何一个自然数N,都可以满足:,pi是质数。
且N的正因子个数为(1+a1)*(1+a2)*(1+a3)*.......*(1+an)。
看了网络上很多人写的题解,普遍的做法是先找出N的所有正因子n,(n/2)就是在不考虑最短边>=b时所有存在的长方形,现在考虑最短边>=b,只需要减去所有能整除a且小于b的因子即可。
具体写法:
1.先预处理素数
2.用唯一分解定理求出N的所有因子
3.减去使得最短边<b的因子对
AC code:
- #include<bits/stdc++.h>
- using namespace std;
- typedef long long ll;
- bool u[];
- ll su[];
- ll a,b,tmp,num,sum;
- void olas()
- {
- num=;
- memset(u,true,sizeof(u));
- for(ll i=; i<=; i++)
- {
- if(u[i]) su[num++]=i;
- for(ll j=; j<num; j++)
- {
- if(i*su[j]>) break;
- u[i*su[j]]=false;
- if(i%su[j]==) break;
- }
- }
- }
- void cal()
- {
- sum=;
- for(ll i=; i<num&&su[i]<=sqrt(tmp); i++)
- {
- ll cc=;
- while(tmp%su[i]==)
- {
- cc++;
- tmp/=su[i];
- }
- sum*=(+cc);
- }
- if(tmp>) sum*=;
- }
- int main()
- {
- //freopen("input.txt","r",stdin);
- olas();
- ll T,kase=;
- scanf("%lld",&T);
- while(T--)
- {
- scanf("%lld%lld",&a,&b);
- if(a<b*b) printf("Case %lld: 0\n",kase++);
- else
- {
- tmp=a;
- cal();
- sum/=;
- for(ll i=; i<b; i++)
- {
- if(a%i==) sum--;
- }
- printf("Case %lld: %lld\n",kase++,sum);
- }
- }
- return ;
- }
存疑:
虽然说按照以上写法可以AC,考虑到有T可以取到4000,b可以取到1000000,假设有测试数据如下:
T = 4000
case 1:a=10^12 ,b=10^6
case 2:a=10^12 ,b=10^6-1
case 3:a=10^12 ,b=10^6-2
.......
case 4000:a=10^12,b=10^6-3999
这样一来由于每次都遍历了1->b,真实时间复杂度>O(4000*10^6)在3000ms内必然TLE。
但是本题不存在这样的测试数据。。。。。。。所以可以直接水过。。
Aladdin and the Flying Carpet LightOJ 1341 唯一分解定理的更多相关文章
- Aladdin and the Flying Carpet (LightOJ - 1341)【简单数论】【算术基本定理】【分解质因数】
Aladdin and the Flying Carpet (LightOJ - 1341)[简单数论][算术基本定理][分解质因数](未完成) 标签:入门讲座题解 数论 题目描述 It's said ...
- 1341 - Aladdin and the Flying Carpet ---light oj (唯一分解定理+素数筛选)
http://lightoj.com/volume_showproblem.php?problem=1341 题目大意: 给你矩形的面积(矩形的边长都是正整数),让你求最小的边大于等于b的矩形的个数. ...
- [LightOJ 1341] Aladdin and the Flying Carpet (算数基本定理(唯一分解定理))
题目链接: https://vjudge.net/problem/LightOJ-1341 题目描述: 问有几种边长为整数的矩形面积等于a,且矩形的短边不小于b 算数基本定理的知识点:https:// ...
- Aladdin and the Flying Carpet LightOJ - 1341 (素数打表 + 算术基本定理)
题意: 就是求a的因数中大于b的有几对 解析: 先把素数打表 运用算术基本定理 求出a的所有因数的个数 然后减去小于b的因数的个数 代码如下: #include <iostream> #i ...
- LightOJ 1341 唯一分解定理
Aladdin and the Flying Carpet Time Limit:3000MS Memory Limit:32768KB 64bit IO Format:%lld &a ...
- LightOJ - 1341唯一分解定理
唯一分解定理 先分解面积,然后除2,再减去面积%长度==0的情况,注意毯子不能是正方形 #include<map> #include<set> #include<cmat ...
- LightOJ 1341 - Aladdin and the Flying Carpet (唯一分解定理 + 素数筛选)
http://lightoj.com/volume_showproblem.php?problem=1341 Aladdin and the Flying Carpet Time Limit:3000 ...
- LightOJ1341 Aladdin and the Flying Carpet —— 唯一分解定理
题目链接:https://vjudge.net/problem/LightOJ-1341 1341 - Aladdin and the Flying Carpet PDF (English) S ...
- Aladdin and the Flying Carpet
Aladdin and the Flying Carpet https://cn.vjudge.net/contest/288520#problem/C It's said that Aladdin ...
随机推荐
- Mysql 报错:#1067 - Invalid default value for 'update_time
由于 字段UPDATE_TIME 的字段类型是 timestamp ,默认值是:'0000-00-00 00:00:00' 即:`UPDATE_TIME` timestamp NOT NULL DEF ...
- 解决:500 Internal Privoxy Error
500 Internal Privoxy Error Privoxy encountered an error while processing your request: Could not loa ...
- 【spring】全局异常 globalexception 处理
全局异常 globalexception 处理 一般在做api开发时我们希望将所有业务层抛到controller异常都集中处理一下.比如对异常差异化报警.转发不同页面.封装不同http状态码.集中 ...
- Mysql、Oracle、SQLServer等数据库参考文档免费分享下载
场景 MySQL 是最流行的关系型数据库管理系统,在 WEB 应用方面 MySQL 是最好的 RDBMS(Relational Database Management System:关系数据库管理系统 ...
- 命令 docker rm | docker rmi | docker prune 的差异
区别: docker rm : 删除一个或多个 容器 docker rmi : 删除一个或多个 镜像 docker prune : 用来删除不再使用的 docker 对象 一.docker rm 命令 ...
- 关于css中的定位
关于前端的几种定位方式 近期自己感觉自己对于前端定位的知识还是不是太理解,所以自己就在这里做一个总结 1.元素的定位属性主要包括定位模式和边偏移两部分. 边偏移属性 描述 top bott ...
- 第九届极客大挑战——小帅的广告(二阶sql注入)
也是经过一通扫描和测试,没发现其他有用信息,感觉这是个sql注入.其实对于二阶sql注入我以前没实践过,也没看过资料,只是知道这个名字,但不知道为何看到这道题就让我回想起了这个名词,所以查了一下二阶s ...
- CPDF_Document
auto pDoc = std::unique_ptr<CPDF_Document>(); pDoc->CreateNewDoc(); auto pDict = CPDF_Dicti ...
- Linux命令——trap
简介 trap是shell内置命令,它对硬件信号和其他事件做出响应.trap定义并激活信号处理过程,信号处理过程是当shell接收信号或其他特殊条件时要运行的处理过程. 语法 trap [-lp] [ ...
- VirtualBox + vagrant 使用虚拟机
1.VirtualBox下载地址 https://www.virtualbox.org/wiki/Downloads 2.vagrant下载地址 https://www.vagrantup.com/d ...