我想了很久了,后来还是把N分解质因数,枚举各种组合,反正也不多吧,按题目条件,然后就过了。

#include <cstdio>
#include <iostream>
#include <cstring>
#include <cctype>
#include <algorithm>
#define LL __int64
using namespace std; LL prime[100010],np;
int fac[100010],nf;
int cnt,nop;
struct Node{
LL f;
int cnt;
}node[100100];
LL ans[100010]; void predo(LL n){
np=0;
bool isprime[100010];
memset(isprime,false,sizeof(isprime));
for(LL i=2;i<=n;i++){
if(!isprime[i]){
isprime[i]=true;
prime[np++]=i;
for(LL j=i*i;j<=n;j+=i)
isprime[j]=true;
}
}
} bool Isprime(LL n){
nf=0;
for(LL i=0;i<np&&prime[i]<=n;i++){
if(n%prime[i]==0){
while(n%prime[i]==0){
fac[nf++]=prime[i];
n/=prime[i];
}
}
}
if(n!=1){
fac[nf++]=n;
}
if(nf<=1) return true;
return false;
} LL GCD(LL a,LL b){
if(b==0) return a;
return GCD(b,a%b);
} void dfs(LL n,int pos,LL gcd){
if(pos==nop+1){
LL x=n^gcd;
if(x>=n) return ;
if(x==0) return ;
if(gcd==GCD(n,x))
ans[cnt++]=x;
return ;
}
for(int i=0;i<=node[pos].cnt;i++){
if(i==0){
dfs(n,pos+1,gcd);
}
else{
gcd*=node[pos].f;
dfs(n,pos+1,gcd);
}
}
} int main(){
int t=0;
LL n;
predo(100010LL);
while(scanf("%I64d",&n)!=EOF){
if(n==1LL||n==2){
printf("Case #%d:\n",++t);
puts("0");
puts("");
continue;
}
if(Isprime(n)){
printf("Case #%d:\n",++t);
puts("1");
printf("%I64d\n",n-1);
}
else{
nop=-1;
for(int i=0;i<nf;i++){
if(i==0||fac[i]!=fac[i-1]){
node[++nop].f=fac[i];
node[nop].cnt=1;
}
else
node[nop].cnt++;
} cnt=0;
dfs(n,0,1LL);
sort(ans,ans+cnt);
printf("Case #%d:\n",++t);
printf("%d\n",cnt);
if(cnt==0){
puts("");
continue;
}
printf("%I64d",ans[0]);
for(int i=1;i<cnt;i++){
printf(" %I64d",ans[i]);
}
printf("\n");
}
}
return 0;
}

  

HDU 5175的更多相关文章

  1. hdu 5175(数论)

    Misaki's Kiss again Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Othe ...

  2. hdu 5175 Misaki's Kiss again

    Misaki's Kiss again  Accepts: 75  Submissions: 593  Time Limit: 2000/1000 MS (Java/Others)  Memory L ...

  3. hdu 5175 Misaki's Kiss again(GCD和异或)

    题意: 给一个数N. 如果GCD(N,M) = N XOR M,则称M是一个kiss   1<=M<=N 问总共有多少个kiss.并且列出所有的值. 思路: 思路一:枚举M.有大量的GCD ...

  4. BestCoder Valentine's Day Round

    昨晚在开赛前5分钟注册的,然后比赛刚开始就掉线我就不想说了(蹭网的下场……),只好用手机来看题和提交,代码用电脑打好再拉进手机的(是在傻傻地用手机打了一半后才想到的办法). 1001,也就是 hdu ...

  5. Valentine's Day Round hdu 5176 The Experience of Love [好题 带权并查集 unsigned long long]

    传送门 The Experience of Love Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/65536 K (Ja ...

  6. HDOJ 2111. Saving HDU 贪心 结构体排序

    Saving HDU Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total ...

  7. 【HDU 3037】Saving Beans Lucas定理模板

    http://acm.hdu.edu.cn/showproblem.php?pid=3037 Lucas定理模板. 现在才写,noip滚粗前兆QAQ #include<cstdio> #i ...

  8. hdu 4859 海岸线 Bestcoder Round 1

    http://acm.hdu.edu.cn/showproblem.php?pid=4859 题目大意: 在一个矩形周围都是海,这个矩形中有陆地,深海和浅海.浅海是可以填成陆地的. 求最多有多少条方格 ...

  9. HDU 4569 Special equations(取模)

    Special equations Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u S ...

随机推荐

  1. [Apple开发者帐户帮助]四、管理密钥(1)创建私钥以访问服务

    私钥允许您访问和验证与某些应用服务(如APN,MusicKit和DeviceCheck)的通信.您将在对该服务的请求中使用JSON Web令牌(JWT)中的私钥. 所需角色:帐户持有人或管理员. 在“ ...

  2. 服务器通信REST、gRPC,Swagger/OpenAPI

    服务间的通信方式是在采用微服务架构时需要做出一个最基本的决策.默认的选项是通过 HTTP 发送 JSON,也就是所谓的 REST API.我们也是从 REST 开始的,但最近我们决定改用 gRPC. ...

  3. JS代码放在哪里比较好!

    在页面上加上<script></script>只有2个地方:head中,body体中 如果外部的JS文件,在head中加,写页面特效js放在body后面. <html&g ...

  4. 题解报告:hdu 1850 Being a Good Boy in Spring Festival(尼姆博弈)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1850 Problem Description 一年在外 父母时刻牵挂春节回家 你能做几天好孩子吗寒假里 ...

  5. 【Codeforces】Codeforces Round #373 (Div. 2) -C

    C. Efim and Strange Grade Efim just received his grade for the last test. He studies in a special sc ...

  6. mvc3结合spring.net-依赖注入

    namespace Tuzi.Models.IService { public interface IPersonService { string say(string words); } names ...

  7. PANDAS 数据分析初学者教程

    Pandas 初学者教程       2018-05-19 六尺巷人 对于数据科学家,无论是数据分析还是数据挖掘来说,Pandas是一个非常重要的Python包.它不仅提供了很多方法,使得数据处理非常 ...

  8. 高通处理器手机 解锁Bootloader 教程

    目前很多手机都需要解锁Bootloader之后才能进行刷机操作   本篇教程教你如何傻瓜式解锁Bootloader 首先需要在设置-关于手机 找到版本号(个别手机可能是内核版本号,甚至其他) 然后 快 ...

  9. Excel常用的小技巧

    1.Excel如何实现单元格内轻松换行:按住ALT+enter就可以了. 2.Excel固定表头:在“视图”>冻结窗口>冻结首行. 3.防止电脑突然断电,导致正在编辑的Excel数据丢失, ...

  10. Yearning + Inception SQL审核平台搭建

    Yearning 安装: 安装Nginxyum install nginx -y 按照顺序安装MySQLmysql-community-common-5.7.22-1.el6.x86_64.rpmmy ...