【bzoj 十连测】[noip2016第二场]Problem A. Divisors(暴力)
2016-11-16 20:36
435 查看
【题解】【暴力】
【每读入一个数,就分解它的因数,用num数组记录。求出k等于1-m的所有答案后剩下的就是k=0的情况】
#include<map> #include<cstdio> #include<cstring> #include<algorithm> using namespace std; map<int,int>mp; int n,m,a[210],maxn,tot; int num[210],sum; inline void find(int x) { for(int i=1;i*i<=x;++i) if(x%i==0) { int t=x/i; if(mp[i]) num[mp[i]]--; mp[i]++,num[mp[i]]++; if(t!=i&&t<=n) { if(mp[t]) num[mp[t]]--; mp[t]++,num[mp[t]]++; } } } int main() { //freopen("int.txt","r",stdin); //freopen("my.txt","w",stdout); int i,j; scanf("%d%d",&n,&m); for(i=1;i<=m;++i) scanf("%d",&a[i]),find(a[i]); for(i=1;i<=m;++i) sum+=num[i]; printf("%d\n",n-sum); for(i=1;i<=m;++i) printf("%d\n",num[i]); return 0; }
相关文章推荐
- 【bzoj 十连测】[noip2016第一场]Problem A: String Master(暴力)
- 【bzoj 十连测】[noip2016 第一场]Problem B. Tourist Attractions(枚举)
- 【bzoj 十连测】[noip2016第一场]Problem C. Walk(dfs)
- 【bzoj 十连测】[noip2016十连测第二场]Problem C. Dash Speed(树链剖分+并查集)
- 【bzoj 十连测】[noip2016十连测第二场]Problem B. Market(dp:01背包)
- [BZOJbegin][NOIP十连测第一场]Walk(bfs+乱搞)
- [BZOJbegin][NOIP十连测第九场]小P的生成树(数学相关+kruskal)
- bzoj 4720: [Noip2016]换教室【期望dp】
- 【期望DP+最短路】BZOJ4720 [NOIP2016]换教室
- [BZOJ]4720 换教室 [NOIP2016] D1T3 期望
- 【思路题】BZOJ4721 [NOIP2016]蚯蚓
- bzoj 4720/Luogu 1850(期望dp)(NOIP 2016)
- [BZOJ4719][Noip2016]天天爱跑步
- [BZOJbegin][NOIP十连测第五场]Walk(数学相关+树形dp)
- [bzoj4720][Noip2016]换教室 签到概率DP
- 【BZOJ】4721: [Noip2016]蚯蚓
- BZOJ4721 [Noip2016]蚯蚓
- Problem L. World Cup(2016China-Final)【暴力】
- BZOJ P4720[Noip2016]换教室____solution
- 【bzoj 入门OJ】[NOIP 热身赛]Problem C: 星球联盟(并查集)