2011年上半年每周集训之团队讨论赛2解题报告

G:Counting Divisor-by xzc

G:Counting Divisor

忽然想到怎么做,就了a了下,本来在看书休息的,明天继续休息

开讲:

题意:输入n个数,n最大10000,每个数的最大1000000,

然后让你求这n个数中每个数能被其余n-1个数整除的次数

换一种说法是这样,就是判断第i个数的因数中在这n个数中出现的次数,不包括本身

这种说法比较好解这个题

打表么

塔神告诉我的,在此无限YM塔神,偶弱啊,在那几个小时硬是一直在弯路上

原来连素数表都不用求,根本不用什么算法。

刚才想到的,就是在输入的时候,计算这个数据(这边我称为num[i])出现的次数sum[i],并且找出n个数中的最大值max

然后循环n个数据,对每个数据num[i],让这个数据的倍数j(j=num[i]*2,num[i]*3直到num[i]*x<=max)

result[j]都加上num[i]的个数即sum[i],当然,在循环过程中,num[i]如果第二次以上出现,那么可以不用处理了,加个标记数组就OK了

不要忘了所有需要的数组初始化,我是所有题目都当多组数据处理的,只有上次发生了意外,用下EOF给我爆非法内存访问,请问哪位神直到这个原因

~~~~(>_<)~~~~ ,这么水的题,偶又弱了,越来越弱了,每天被阿辉啊,塔神啊,卡神啊,gyk神啊神马的虐,我该咋办哦……


为解题报告打分
暂时不评分

★★
★★★
★★★★
★★★★★
发表您的评论(若贴AC代码或发表禁止言论等违禁行为将被删除并扣除积分)

|返回 |   | 转到页头|
Copyright @ 2008-2024(浙ICP备2022001332号), TZOJ. All Rights Reserved.