楼主: irgebtdd
跳转到指定楼层
上一主题 下一主题
收起左侧

[Leetcode] [LC周赛赛后发布会]WeeklyContest358

🔗
 楼主| irgebtdd 2023-8-14 01:32:43 | 只看该作者
全局:
南燕北巢 发表于 2023-8-13 10:18
还可以更快
筛质数的时候可以顺手记录一下每个数的smallest prime factor,然后算score一直除spf就行了

伪代码来一个?老实说我这个不慢的
回复

使用道具 举报

🔗
zyrnj 2023-8-14 02:10:15 | 只看该作者
全局:
是的这次第四题比较简单,虽然我也没筛出来质数,但是后面单调栈倒是比较清楚,看到了通过的希望。。。
回复

使用道具 举报

🔗
 楼主| irgebtdd 2023-8-14 02:30:53 | 只看该作者
全局:
zyrnj 发表于 2023-8-13 11:10
是的这次第四题比较简单,虽然我也没筛出来质数,但是后面单调栈倒是比较清楚,看到了通过的希望。。。

啥叫“没筛出来质数”?
回复

使用道具 举报

🔗
ATHOSD 2023-8-14 02:44:12 来自APP | 只看该作者
全局:
numi范围1e5其实可以在线性筛的同时把每个数的质数分数一起筛出来吧,暴力枚举的话质数密度还是蛮大的(大概十个连续的数里面有一个质数),极端数据还是很容易T的

评分

参与人数 1大米 +1 收起 理由
14417335 + 1 给你点个赞!

查看全部评分

回复

使用道具 举报

🔗
ATHOSD 2023-8-14 02:49:39 来自APP | 只看该作者
全局:
筛出来之后从大到小枚举最大质数分数(最大不会超过6),就可以O(n)计算最大质数分数为x的子数组数量了吧,瓶颈复杂度在这里,基本就是O(nlogn)

评分

参与人数 1大米 +1 收起 理由
14417335 + 1 给你点个赞!

查看全部评分

回复

使用道具 举报

🔗
 楼主| irgebtdd 2023-8-14 03:01:23 | 只看该作者
全局:
ATHOSD 发表于 2023-8-13 11:49
筛出来之后从大到小枚举最大质数分数(最大不会超过6),就可以O(n)计算最大质数分数为x的子数组数量了吧 ...

没懂,伪代码有吗?
回复

使用道具 举报

🔗
ATHOSD 2023-8-14 12:07:56 来自APP | 只看该作者
全局:
irgebtdd 发表于 2023-08-13 12:01:23
没懂,伪代码有吗?
S=1e5
p[]存放所有质数
mark[i]表示i是否是质数
f[i]表示i的质数分数
虽然是两层循环,但每个数只会被最小质因子筛到,因此时间复杂度O(S),说的比较简略,可以网上查一下质数线性筛
for(int i=2;i<=S;i++)
{
        if(!mark[i])
        {
                p[++tot]=i;
                f[i]=1;
        }
        for(int j=1;j<=tot;j++)
        {
                if(i*p[j]>S) break;
                mark[i*p[j]]=1;
                if(i%p[j]==0)
                {
                        f[i*p[j]]=f[i];
                        break;
                }
                else
                {
                        f[i*p[j]]=f[i]+1;
                }
        }
}

评分

参与人数 1大米 +2 收起 理由
14417335 + 2 给你点个赞!

查看全部评分

回复

使用道具 举报

🔗
 楼主| irgebtdd 2023-8-14 12:42:35 | 只看该作者
全局:
ATHOSD 发表于 2023-8-13 21:07
S=1e5
p[]存放所有质数
mark表示i是否是质数

tot什么鬼?是初始为0吗?
回复

使用道具 举报

🔗
ATHOSD 2023-8-14 12:44:50 来自APP | 只看该作者
全局:
irgebtdd 发表于 2023-08-13 21:42:35
tot什么鬼?是初始为0吗?
对呀,就是个质数计数器
回复

使用道具 举报

🔗
 楼主| irgebtdd 2023-8-14 12:49:35 | 只看该作者
全局:
ATHOSD 发表于 2023-8-13 11:44
numi范围1e5其实可以在线性筛的同时把每个数的质数分数一起筛出来吧,暴力枚举的话质数密度还是蛮大的(大 ...

我没看懂你的代码,但是我回过头去看这个idea发现是对的。这样就不用每个num再单独分解了。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号
隐私提醒:
  • ☑ 禁止发布广告,拉群,贴个人联系方式:找人请去🔗同学同事飞友,拉群请去🔗拉群结伴,广告请去🔗跳蚤市场,和 🔗租房广告|找室友
  • ☑ 论坛内容在发帖 30 分钟内可以编辑,过后则不能删帖。为防止被骚扰甚至人肉,不要公开留微信等联系方式,如有需求请以论坛私信方式发送。
  • ☑ 干货版块可免费使用 🔗超级匿名:面经(美国面经、中国面经、数科面经、PM面经),抖包袱(美国、中国)和录取汇报、定位选校版
  • ☑ 查阅全站 🔗各种匿名方法

本版积分规则

>
快速回复 返回顶部 返回列表