HDU 5175
我想了很久了,后来还是把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的更多相关文章
- hdu 5175(数论)
Misaki's Kiss again Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Othe ...
- hdu 5175 Misaki's Kiss again
Misaki's Kiss again Accepts: 75 Submissions: 593 Time Limit: 2000/1000 MS (Java/Others) Memory L ...
- hdu 5175 Misaki's Kiss again(GCD和异或)
题意: 给一个数N. 如果GCD(N,M) = N XOR M,则称M是一个kiss 1<=M<=N 问总共有多少个kiss.并且列出所有的值. 思路: 思路一:枚举M.有大量的GCD ...
- BestCoder Valentine's Day Round
昨晚在开赛前5分钟注册的,然后比赛刚开始就掉线我就不想说了(蹭网的下场……),只好用手机来看题和提交,代码用电脑打好再拉进手机的(是在傻傻地用手机打了一半后才想到的办法). 1001,也就是 hdu ...
- 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 ...
- HDOJ 2111. Saving HDU 贪心 结构体排序
Saving HDU Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total ...
- 【HDU 3037】Saving Beans Lucas定理模板
http://acm.hdu.edu.cn/showproblem.php?pid=3037 Lucas定理模板. 现在才写,noip滚粗前兆QAQ #include<cstdio> #i ...
- hdu 4859 海岸线 Bestcoder Round 1
http://acm.hdu.edu.cn/showproblem.php?pid=4859 题目大意: 在一个矩形周围都是海,这个矩形中有陆地,深海和浅海.浅海是可以填成陆地的. 求最多有多少条方格 ...
- HDU 4569 Special equations(取模)
Special equations Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u S ...
随机推荐
- E20170821-mk
Dimension n. 尺寸; [复] 面积,范围; [物] 量纲; [数] 次元,度,维;
- 洛谷P1894 [USACO4.2]完美的牛栏The Perfect Stall(二分图)
P1894 [USACO4.2]完美的牛栏The Perfect Stall 题目描述 农夫约翰上个星期刚刚建好了他的新牛棚,他使用了最新的挤奶技术.不幸的是,由于工程问题,每个牛栏都不一样.第一个星 ...
- hdu2089不要62(数位dp)
不要62 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submis ...
- bootstrap 网格布局
一:基本的网格布局 <div class="container"> <div class="row"> <div class=&q ...
- vue中的config配置
在webpack.base.conf文件中配置别名以及扩展名 resolve: { extensions: ['.js', '.vue', '.json', '.styl'], alias: { 'v ...
- Java_Web之宠物管理系统
使用JSP+servLet实现宠物管理系统,oraC1e11g作为后台数据厍,实现查看宠物和增加宠物的功能由你实现,如图: 其中宠物包栝:狗.猫.鸟.鼠 具体要求及推荐实现步骤 第一步:创建数据库代码 ...
- (转)PostGIS+QGIS+GeoServer+OpenLayers实现数据的存储、服务的发布以及地图的显示
http://blog.csdn.net/gisshixisheng/article/details/41575833 标题比较长,主要呢是实现以下几点: 1.将shp数据导入到PostGIS中: 2 ...
- 浅谈Web缓存-缓存的实现过程详解
在前端开发中,性能一直都是被大家所重视的一点,然而判断一个网站的性能最直观的就是看网页打开的速度.其中提高网页反应速度的一个方式就是使用缓存.一个优秀的缓存策略可以缩短网页请求资源的距离,减少延迟,并 ...
- uni-app强大的前端框架,h5,原生app(两大系统),微信小程序
最近发现一款强大的前端框架,它叫uni-app 这是一款通用的框架可以打包app,h5,微信小程序, 说说要弄这个工具需要会那些技能吧, 要熟悉vue,微信小程序.这样这个框架用的就是很快上手了 模块 ...
- python sqlalthemy 总结
orm 数据状态的预知识 瞬时状态:刚创建的对象还没有被Session持久化.缓存中不存在这个对象的数据并且数据库中没有这个对象对应的数据为瞬时状态这个时候是没有OID. 持久状态:对象经过Sessi ...