3643: Phi的反函数

Time Limit: 10 Sec  Memory Limit: 64 MB
Submit: 141  Solved: 96
[Submit][Status][Discuss]

Description

Input

Output

Sample Input

4

Sample Output

5

HINT

Source

By Zky

Solution

首先答案和N一定是同阶的,所以,可以很暴力的线筛扫一遍求解。

然后根据欧拉函数的式子,我们实际上是可以爆搜的。

爆搜他的质因子然后去凑答案,加最优性剪枝就可以跑过。

最关键的是依据欧拉函数的定义式找到规律!

Code

#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cmath>
#include<cstring>
using namespace std;
#define LL long long
inline int read()
{
int x=,f=; char ch=getchar();
while (ch<'' || ch>'') {if (ch=='-') f=-; ch=getchar();}
while (ch>='' && ch<='') {x=x*+ch-''; ch=getchar();}
return x*f;
}
#define MAXN 5100000
int X,N;
int prime[MAXN],flag[MAXN],cnt;
void Getprime()
{
flag[]=; cnt=;
for (int i=; i<=N; i++)
{
if (!flag[i]) prime[++cnt]=i;
for (int j=; j<=cnt && prime[j]*i<=N; j++)
{
flag[i*prime[j]]=;
if (prime[j]%i==) break;
}
}
}
LL ans=(1LL<<);
LL sqr(LL x) {return (LL)x*x;}
bool check(int x)
{
// if (flag[x]) return 0;
for (int i=; sqr(prime[i])<=x && i<=cnt; i++) if (x%prime[i]==) return ;
return ;
}
void DFS(int dep,LL sum,LL x,int last)
{
if (sum>=ans) return;
if (x==) {ans=sum; return;}
if (check(x+) && sqr(x)>X) ans=min(ans,sum*(x+));
for (int i=last+; (prime[i]-)<=x && sqr(prime[i]-)<=X; i++)
if (!(x%(prime[i]-)))
{
LL xx=(LL)x/(prime[i]-),summ=(LL)sum*prime[i];
DFS(dep+,summ,xx,i);
while (!(xx%prime[i])) xx=(LL)xx/prime[i],summ=(LL)summ*prime[i],DFS(dep+,summ,xx,i);
}
}
int main()
{
X=read(); N=int(sqrt(X))+;
if (X==) {puts(""); return ;}
Getprime();
DFS(,1LL,(LL)X,);
printf("%lld\n",ans==(1LL<<)? -:ans);
return ;
}

仔细思考一下应该是可以想到的。

【BZOJ-3643】Phi的反函数 数论 + 搜索的更多相关文章

  1. [BZOJ]3643 Phi的反函数

    我承认开这篇文章只是因为好笑…… 估计Zky神看见3737会很郁闷吧. http://www.lydsy.com/JudgeOnline/problem.php?id=3643 本来想直接交3737改 ...

  2. 【BZOJ 3643】Phi的反函数 数搜索

    这道题是典型的数搜索,讲究把数一层一层化小,而且还有最重要的大质数剪枝. #include <cstdio> #include <cmath> typedef long lon ...

  3. 【BZOJ 3642】Phi的反函数

    http://www.lydsy.com/JudgeOnline/problem.php?id=3643 因为\[\varphi(n)=\prod_i p_i^{k_i-1}(p_i-1),n=\pr ...

  4. 【BZOJ】【2219】数论之神

    中国剩余定理+原根+扩展欧几里得+BSGS 题解:http://blog.csdn.net/regina8023/article/details/44863519 新技能get√: LL Get_yu ...

  5. bzoj3643 Phi的反函数

    传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=3643 [题解] n = p1^a1*p2^a2*...*pm^am phi(n) = p1( ...

  6. [BZOJ 1085] [SCOI2005] 骑士精神 [ IDA* 搜索 ]

    题目链接 : BZOJ 1085 题目分析 : 本题中可能的状态会有 (2^24) * 25 种状态,需要使用优秀的搜索方式和一些优化技巧. 我使用的是 IDA* 搜索,从小到大枚举步数,每次 DFS ...

  7. Bzoj 3505: [Cqoi2014]数三角形 数论

    3505: [Cqoi2014]数三角形 Time Limits: 1000 ms  Memory Limits: 524288 KB  Detailed Limits   Description

  8. bzoj 2226: [Spoj 5971] LCMSum 数论

    2226: [Spoj 5971] LCMSum Time Limit: 20 Sec  Memory Limit: 259 MBSubmit: 578  Solved: 259[Submit][St ...

  9. bzoj 1053: [HAOI2007]反素数ant 搜索

    1053: [HAOI2007]反素数ant Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 1497  Solved: 821[Submit][Sta ...

随机推荐

  1. SQL*Plus环境变量设置浅析

    SQL*Plus的使用环境是可以通过login.sql 或 glogin.sql脚本来设置的,可能很多初学者或不习惯使用SQL*Plus的老鸟都不知道.因为在如今UI工具(Toad.PL/SQL De ...

  2. Linux服务器宕机案例一则

    案例环境 操作系统 :Oracle Linux Server release 5.7 64bit 虚拟机 硬件配置 : 物理机型号为DELL R720 资源配置 :RAM 8G Intel(R) Xe ...

  3. “未来人类”的笔记本,谁买过哦

    在jd上看到这款笔记本http://item.jd.com/1166095693.html.拽的很!看看哦,我等IT屌丝别吓着了,看图片欣赏下.

  4. Acionbar logo

    问题: 在使用Actionbar时,默认在左上角是会有一个跟软件发布时的LOGO一样的图标,在大多数情况下按照默认图标进行显示已经很好,既使得软件整体统一,也方便省事.但有些情况下,还是希望不同的界面 ...

  5. BZOJ 2330: [SCOI2011]糖果 [差分约束系统] 【学习笔记】

    2330: [SCOI2011]糖果 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 5395  Solved: 1750[Submit][Status ...

  6. POJ2001Shortest Prefixes[Trie]

    Shortest Prefixes Time Limit: 1000MS   Memory Limit: 30000K Total Submissions: 17683   Accepted: 768 ...

  7. PAT 1038. 统计同成绩学生(20)

    本题要求读入N名学生的成绩,将获得某一给定分数的学生人数输出. 输入格式: 输入在第1行给出不超过105的正整数N,即学生总人数.随后1行给出N名学生的百分制整数成绩,中间以空格分隔.最后1行给出要查 ...

  8. [转]Mac下配置基于SecurID的Cisco IPSec VPN全攻略(有图)

    来自: http://www.eefocus.com/Kevin/blog/11-09/230878_53c71.html RSA的SecurID长的是这个样子滴: Mac里面,可以设置VPN, 方法 ...

  9. Linux 进程间通讯详解一

    进程间的通讯 两台主机间的进程通讯 --socket 一台主机间的进程通讯 --管道(匿名管道,有名管道) --System V进程间通信(IPC)包括System V消息队列,System V信号量 ...

  10. 物联网平台设计心得:DateTimePicker实现选择联动

    所谓的选择联动,就是指,当我DateTimePicker1选择2月4号的时候,我DateTimePicker2只能选择2月4号和2月5号两天,当然你可以自行规定要选择的日期.这在一些图表查询条件里面是 ...