HDU4542 小明系列故事——未知剩余系
大赞的数论题;
大致思路:
对于TYPE=1的情况,认为 X 中有 X-K个约数,求最小的X,X-K>0 那么化为B+K的约数为B,
我们知道(B+K)的约数<=2*SQRT(B+K);这个应该知道,
再化简一下:B*B<=4(B+K),可以直接枚举B,有人担心会TLE,我们再证明一下:
化简得 :B*B-4*B+4<=4*K+4;然后K<=47777,所以可以枚举了。。
对于TYPE=0的情况, 我们可以预先求出有X个数的最小数,因为根据求约数个数的方程N=a[1]^x1+a[2]^x2.....;
num=(1+x1)*(1+x2)*。。。。;
这里我们可以DFS搜索出来。具体看看代码应该能明白
#include<cstdio>
#include<algorithm>
#include<cmath>
#include<string.h>
typedef long long ll;
using namespace std;
#define maxn 200000
const long long inf=(1ll<<62)+1;
int prime[maxn];
ll a[maxn*10];
int b[maxn*2],t; void pri()
{
for (int i=2;i*i<maxn;i++)
if (!b[i])
for (int j=i*2;j<maxn;j+=i)
b[j]=1;
for (int i=2;i<maxn;i++)
if (!b[i]) prime[++t]=i;
} int get(ll x){
int ans=1;
ll tmp=x;
for (int i=1;prime[i]<=tmp/prime[i];i++)
{
ll t=1;
while (tmp%prime[i]==0)
{
t++;
tmp/=prime[i];
}
if (t>1) ans*=t;
}
if (tmp!=1) ans*=2;
return ans;
} void dfs(int i,ll x,int n)//DFS部分
{
if (n>47777) return;
if (x<inf&&(a[n]==0||a[n]>x)) a[n]=x;//类似DP的思想
for (int j=1;j<=62;j++)
{
if (inf/prime[i]<x) break;//防止溢出,
x*=prime[i];
if (x>=inf) break;
dfs(i+1,x,n*(j+1));
}
} void solve1(int x)
{
if (a[x]!=0) printf("%I64d\n",a[x]);
else printf("INF\n");
}
void solve(ll x)
{
ll num=1;
while (num*num<=(num+x)*4)
{
if (num==get(num+x)) {printf("%I64d\n",num+x);return; }
num++;
}
printf("Illegal\n");
} int main()
{
int T;
scanf("%d",&T);
pri();
dfs(1,1,1);
for (int o=1;o<=T;o++)
{
printf("Case %d: ",o);
int type,k;
scanf("%d%d",&type,&k);
if (type) solve(k);
else solve1(k);
}
return 0;
}
HDU4542 小明系列故事——未知剩余系的更多相关文章
- hdu 4542 小明系列故事——未知剩余系
小明系列故事——未知剩余系 题意:操作0表示某数有n个约数,操作1为某数有n个非约数:n <= 47777,若是存在小于2^62的数符合,则输出该数,否则若是不存在输出Illegal,若是大于2 ...
- hdu 4542 小明系列故事——未知剩余系 反素数 + 打表
小明系列故事——未知剩余系 Time Limit: 500/200 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others) Prob ...
- hdu 4542 "小明系列故事——未知剩余系" (反素数+DFS剪枝)
传送门 参考资料: [1]:https://blog.csdn.net/acdreamers/article/details/25049767 题意: 输入两个数 type , k: ①type = ...
- HDU 4542 小明系列故事——未知剩余系 (数论|反素数)
分析 kuangbin的blog已经讲的很好了,我做一点补充 1.当做x*y>z的比较时,如果x \(\ast\) y过大,可以写成x>z/y 2.分解质因数时选择用f[][0]保存质数, ...
- HDU 4511 小明系列故事——女友的考验 (AC自动机+DP)
小明系列故事——女友的考验 Time Limit: 500/200 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others)Total ...
- HDUOJ-----4506小明系列故事——师兄帮帮忙
小明系列故事——师兄帮帮忙 Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others)Tot ...
- HDUOJ----4501小明系列故事——买年货(三维背包)
小明系列故事——买年货 Time Limit: 5000/2000 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others)Total ...
- HDU 4511 小明系列故事——女友的考验 (AC自动机 + DP)
小明系列故事——女友的考验 Time Limit: 500/200 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others)Total ...
- HDU 4528 BFS 小明系列故事——捉迷藏
原题直通车:HDU 4528 小明系列故事——捉迷藏 分析: 标记时加两种状态就行. 代码: #include<iostream> #include<cstring> #inc ...
随机推荐
- Windos中无法删除桌面IE图标的解决方法
解决方法其实并不难,打开注册表,转到如下图的位置,详细地址在图片最下面: 需要注意的是,你需要在NameSpace中逐个查看各个项目的数据值,显示为数据值为Internet Explorer的项目即为 ...
- System.Transaction (TransactionScope) 与 可提升 (Promotable) 交易
这是我的备份,原文请看 http://www.dotblogs.com.tw/mis2000lab/archive/2014/11/12/transactionscope_promotable_tr ...
- Jquery制作可以绑定的表格
//总页数 当前页 可见页 参数 翻页执行后处理的函数 function PageTable(totalPages, currentPage, tableobj, url, where, column ...
- Python科学计算利器——Anaconda
(搬运自我在SegmentFault的博客) 最近在用Python做中文自然语言处理.使用的IDE是PyCharm.PyCharm确实是Python开发之首选,但用于科学计算方面,还略有欠缺.为此我尝 ...
- 多线程异步加载图片async_pictures
异步加载图片 目标:在表格中异步加载网络图片 目的: 模拟 SDWebImage 基本功能实现 理解 SDWebImage 的底层实现机制 SDWebImage 是非常著名的网络图片处理框架,目前国内 ...
- 为了android sdk下载,必须修改hosts
#Download 下载 203.208.46.146 dl.google.com 203.208.46.146 dl-ssl.google.com #Groups 203.208.46.146 gr ...
- viewPager+Handler+Timer简单实现广告轮播效果
基本思想是在Avtivity中放一个ViewPager,然后通过监听去实现联动效果,代码理由详细的解释,我就不说了. MainActivity.java package com.example.adm ...
- mac os x 系统安装 genymotion android 模拟器
如果你有 apk 文件 想 运行一下看看 ,但是又没有 android 设备 ,那么 genymotion 将会是一个 很好的解决方案. 1.安装 下载链接: https://cloud.geny ...
- 48.Warning: (vsim-3534) [FOFIR] - Failed to open file "sp_rom_8x256_sr.mif" for reading.
当在仿真ROM IP核文件时,会出现这种警告,而这种警告的结果是ROM不能输出数据,原因是mif文件要放在modelsim工程文件目录下.类似的,有时候会报错,Failed to open file& ...
- 给Eclipse提速的7个技巧(转)
本文由 ImportNew - 孙 波翔 翻译自 nicolasbize.欢迎加入翻译小组.转载请参见文章末尾的要求. 大约一个月前,我发表了一篇博客,其中介绍了对Eclipse的爱与恨. 有些人问我 ...