题目学习——一开始我是拒绝的
来源:互联网 发布:小米盒子网络连接不上 编辑:程序博客网 时间:2024/06/15 13:22
#include <iostream>#include <cstdio>#include <cstring>using namespace std;#define mst( a ) memset( (a) ,0,sizeof( (a) ) )//#define localconst int manx=100001;int not_prime[manx][17],num[manx];void divider(){ mst(not_prime); for(int i=2;i<manx;++i){ if(!not_prime[i][0]){ for(int j=i;j<manx;j+=i) not_prime[j][++not_prime[j][0]]=i; } } return;}void transf(int n){ int bits=(1<<not_prime[n][0])-1; for(int i=1;i<=bits;++i){ int t=1; for(int j=1;j<=not_prime[n][0];++j){ if(i&(1<<(j-1))) t*=not_prime[n][j]; } ++num[t]; } return;}int calc(int n){ int ans=0; int bits=(1<<not_prime[n][0])-1; for(int i=1;i<=bits;++i){ int t=1,cnt=0; for(int j=1;j<=not_prime[n][0];++j){ if(i&(1<<(j-1))){ t*=not_prime[n][j]; ++cnt; } } if(cnt&1)ans+=num[t]; else ans-=num[t]; } return ans;}void Solve(){ int n,t; scanf("%d%d",&n,&t); mst(num); for(int i=0,j;i<n;++i){ scanf("%d",&j); transf(j); } for(int i=0,j;i<t;++i){ scanf("%d",&j); printf("%d\n",n-calc(j)); } return;}int main(){#ifdef local freopen("input.txt","r",stdin);#endif divider(); Solve(); return 0;}
阅读全文
0 0
- 题目学习——一开始我是拒绝的
- 软了个考——其实一开始总结编译原理我是拒绝的
- 公司拿钱要3P|其实,一开始我是拒绝的...
- 学习术——“我是说给自己听的”
- 从下周一开始学习网页前端设计方面的知识
- 看我是如何严辞拒绝同学借钱的
- 我是来学习的
- 我是来学习的
- 我是如何学习的?
- 工作的一开始
- 一开始学习会有些困难!
- 【springMVC】从一开始——杂乱手记二
- csdn~我是来学习的。
- 我是如何学习存储的
- 我是怎么学习VC的
- 我是如何学习嵌入式的
- 我是如何学习Linux的
- 我是如何学习编程的
- 【第七章】 类
- python里使用正则的findall函数
- Codeforces Round #439 (Div. 2) 题解(869A,869B,869C,869E)
- 【图像处理】MATLAB:空间滤波
- leetcode 265. Paint House II
- 题目学习——一开始我是拒绝的
- Java实现读取pdf文件内容(how to read pdf in java)
- leetcode---binary-tree-postorder-traversal---树后续遍历
- C#工程的模块化实现
- 《Java基础与案例开发详解》(五)
- SQL注入之进阶篇
- 一分钟让你明白货币贬值现象
- 端口扫描
- 函数传值