分析

kuangbin的blog已经讲的很好了,我做一点补充

1.当做x*y>z的比较时,如果x \(\ast\) y过大,可以写成x>z/y

2.分解质因数时选择用f[][0]保存质数,方便查错

3.写程序时分段写,防止变量名写错查很久

一道不错的题(对我来说)

#include <bits/stdc++.h>
using namespace std; #define ll long long
#define F(i,a,b) for(int i=a;i<=b;++i)
#define R(i,a,b) for(int i=a;i<b;++i)
#define mem(a,b) memset(a,b,sizeof(a)) const ll INF = 1LL<<62;
const int maxn = 1000;
int prime[maxn+10];
int p[maxn+10]; void get_prime()
{
F(i,2,maxn)
{
if(!p[i]) prime[++prime[0]]=i;
for(int j=1;j<=prime[0]&&prime[j]*i<=maxn;++j)
{
p[i*prime[j]]=1;
if(i%prime[j]==0) break;
}
}
} ll a[50050];
void dfs(ll num,int k,int sum,int limit)
{
if(sum>47777) return ;
if(a[sum]==0||a[sum]>num) a[sum]=num;
for(int i=1;i<=limit;++i)
{
if(num>INF/prime[k]) break;
num*=prime[k];
if(num>INF) break;
dfs(num,k+1,sum*(i+1),i);
}
} void init()
{
mem(a,0);dfs(1,1,1,62);
} int f[100][2]; ll calc(ll num)
{
mem(f,0);
int cnt=0;
for(int i=1;prime[i]<=num/prime[i];++i) if(num%prime[i]==0)
{
f[++cnt][0]=prime[i];
while(num%prime[i]==0) { f[cnt][1]++;num/=prime[i]; }
}
if(num!=1) f[++cnt][0]=num,f[cnt][1]=1;
ll ans=1;
F(i,1,cnt) ans*=(ll)(f[i][1]+1);
return ans;
} void solve(int k)
{
for(ll x=2;x*x<=4*(x+k);++x)
{
if(x==calc(x+k)) { printf("%I64d\n",x+k );return; }
}
puts("Illegal");
} int main()
{
int t,type,k;
get_prime();
init();
scanf("%d",&t);
F(qq,1,t)
{
scanf("%d %d",&type,&k);
printf("Case %d: ",qq );
if(type==0)
{
if(a[k]==0) puts("INF");
else printf("%I64d\n",a[k] );
}
else
{
solve(k);
}
}
return 0;
}

HDU 4542 小明系列故事——未知剩余系 (数论|反素数)的更多相关文章

  1. hdu 4542 "小明系列故事——未知剩余系" (反素数+DFS剪枝)

    传送门 参考资料: [1]:https://blog.csdn.net/acdreamers/article/details/25049767 题意: 输入两个数 type , k: ①type = ...

  2. hdu 4542 小明系列故事——未知剩余系

    小明系列故事——未知剩余系 题意:操作0表示某数有n个约数,操作1为某数有n个非约数:n <= 47777,若是存在小于2^62的数符合,则输出该数,否则若是不存在输出Illegal,若是大于2 ...

  3. hdu 4542 小明系列故事——未知剩余系 反素数 + 打表

    小明系列故事——未知剩余系 Time Limit: 500/200 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others) Prob ...

  4. HDU4542 小明系列故事——未知剩余系

    大赞的数论题: 大致思路: 对于TYPE=1的情况,认为 X 中有 X-K个约数,求最小的X,X-K>0 那么化为B+K的约数为B, 我们知道(B+K)的约数<=2*SQRT(B+K);这 ...

  5. hdu 4506 小明系列故事——师兄帮帮忙【幂取模乱搞】

    链接: http://acm.hdu.edu.cn/showproblem.php?pid=4506 http://acm.hust.edu.cn/vjudge/contest/view.action ...

  6. HDU 4511 小明系列故事——女友的考验 (AC自动机+DP)

    小明系列故事——女友的考验 Time Limit: 500/200 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others)Total ...

  7. HDU 4511 小明系列故事——女友的考验 (AC自动机 + DP)

    小明系列故事——女友的考验 Time Limit: 500/200 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others)Total ...

  8. HDU 4828 小明系列故事——捉迷藏

    漂亮妹子点击就送:http://acm.hdu.edu.cn/showproblem.php?pid=4528 Time Limit: 500/200 MS (Java/Others)    Memo ...

  9. HDU - 4511 小明系列故事――女友的考验(AC自己主动机+DP)

    Description 最终放寒假了,小明要和女朋友一起去看电影.这天,女朋友想给小明一个考验,在小明正准备出发的时候.女朋友告诉他.她在电影院等他,小明过来的路线必须满足给定的规则:  1.如果小明 ...

随机推荐

  1. call lua function from c and called back to c

    Just a simple example: --The  c file: #include <stdio.h> #include "lua.h" #include & ...

  2. SolidEdge如何打开或关闭自动标注尺寸

    工具-聪慧-自动标注尺寸                    

  3. 利用反射技术实现POJO的数据库操作

    记得第一次写项目的时候,傻傻的数据库一张表,代码里就写一个DAO类,几张表就写几个DAO类,大量的反复代码,自己粘着都嫌烦,后来接触了Hibernate,不得不说对我们这样的小白用处还是非常大的.那么 ...

  4. Windows-速度优化的几个方面

    One. Win+R - > cmd- > msconfig 禁用不需要的启动项! Two. 关闭一些视觉选项 Three. 设置应用启动快捷键

  5. 使用虚拟机VM运行Linux版OpenERP

    Table of Contents 下载.安装vmware player --免费 从百度云下载 镜像文件 建立vm 运行vm 访问openerp 更新代码至最新         下载.安装vmwar ...

  6. Here is the reason why Fengguang turns from ipmitool to freeipmi

    http://ipmitool.sourceforge.net/ Last updated Thu Apr 26 09:08:52 PDT 2007 Revision 1.21 · Home· Dow ...

  7. Linux安装Axis C构建WebService服务

    在安装Axis C++之前有两个组件是必须安装的,分别是Apache HTTP Server以及用于处理XML的程序Xerces:为了编译Axis以及Apache HTTPD,你的Linux机器还应该 ...

  8. Appium,IOS 模拟器,Java工程搭建

    首先进入sample code Test App 有TestApp.xcodeproj文件的工程目录下 下编译出TestApp.app文件 1.新建 java 工程 2.import需要的包 新建cl ...

  9. BingMap地图怎样显示中文

    这是bingMap的js引用 <script type="text/javascript" src="v=7.0&mkt=zh-cn'></sc ...

  10. Continuous integration: The answer to life, the universe, and everything?

    Continuous integration is not always the right answer. Here's why. https://techbeacon.com/continuous ...