hdu4583
来源:互联网 发布:lds激光测距 知乎 编辑:程序博客网 时间:2024/06/03 21:10
素数的一个题,看了题解也没有软用
#include <iostream> #include <cstdio> #include <algorithm> #include <cstring> using namespace std;#define LL long longconst int maxn =60;int a[maxn];LL to[maxn];int num[maxn];LL ans;bool gcd(int a,int b){ return b==0?a!=1:gcd(b,a%b);}LL DFS(int n,LL p){ if(n==-1) return 1; LL res=DFS(n-1,p); if(p&(1LL<<n)) return res; if((p|to[n])==p) return res*num[n]; else return res+DFS(n-1,(p|to[n]))*(num[n]-1);}int main(){ int n; while(~scanf("%d",&n)&&n){ for(int i=0;i<n;i++) scanf("%d",a+i); sort(a,a+n); int m=0; num[0]=2; for(int i=1;i<n;i++){ if(a[i]==a[m]) num[m]++; else { a[++m]=a[i]; num[m]=2; } } memset(to,0,sizeof(to)); for(int i=0;i<=m;i++) { for(int j=0;j<i;j++) if(gcd(a[j],a[i])) to[i]|=1LL<<j; } ans=0; printf("%I64d\n",DFS(m,0)); } return 0;}
0 0
- hdu4583
- 谷歌笔试题 --- 环状链表去重
- Android之——激活应用程序的详情界面
- virtuabox centos 虚拟机安装增强功能实现文件夹共享
- 世界各种用人制度之分析
- 杭电ACM 2097:Sky数
- hdu4583
- Android ListView&异步加载的学习(二)——多线程加载图片
- ios 图片缩放失真 (1)
- UE4蓝图简介
- Tomcat服务器
- HDU 5352 MZL's City(最小费用最大流)经典 2015 Multi-University Training Contest 5
- 【leetcode】database Second Highest Salary
- mac中安装activeMQ
- 用代码关闭程序的正确做法!---向窗口发送WM_CLOSE消息