首页 > 其他分享 >The sol to Bismuth / Linear Sieve

The sol to Bismuth / Linear Sieve

时间:2024-11-17 14:57:16浏览次数:1  
标签:lceil Bismuth frac int sol 筛到 Sieve rceil

The sol to Bismuth / Linear Sieve

https://www.luogu.com.cn/problem/P11169

思路

因为懒惰,所以直接转载了当时参考的这篇博客

https://www.luogu.com.cn/article/ys9ualoj

首先观察样例发现第一个样例一定是 \(\lceil \frac{n}{2} \rceil\)。

手推一下加入数字的过程:

当处理到数字二时,此时 \(cntp = 1, counter = 1\),并将 \(isnotprime_{4}\) 赋值为 \(1\)。

当处理到数字三时,此时 \(cntp = 2, counter = 2\),并将 \(isnotprime_{6}\) 赋值为 \(1\)。

......

首先大于所有大于 \(1\) 的奇数而言更新其他数字是否被筛到时,则必然枚举到 \(2\) 就停止了。

接着对于所有大于 \(0\) 的偶数而言更新其他数字是否被筛到时,由于本身是偶数,所以其筛出的数也必然是偶数。

由于两种筛法都没有办法筛出奇数,而 \(n\) 以内大于 \(1\) 的奇数有 \(\lceil \frac{n - 2}{2} \rceil\) 个,接着 \(2\) 一开始没有被筛到,所以 \(cntp\) 一定为 \(\lceil \frac{n - 2}{2} \rceil + 1 = \lceil \frac{n}{2} \rceil\)。

接着考虑计算 \(counter\) 的值,对于每个未被筛到的元素单独考虑贡献,假设 \(x\) 为筛倍数时筛到当前考虑的元素中某个 \(i\),当前考虑元素为 \(y\),\(l\) 为未被筛到的元素中小于等于 \(y\) 的 \(\operatorname{lcm}\)。

首先必然有 \(x \times y \le n\),那么现在 \(x\) 的范围在 \([1, \lfloor \frac{n}{2} \rfloor]\) 之内,那么 \(x\) 整除 \(l\),由于 \(l\) 增长速度较快,所以需要考虑的元素数量较少,那么只需要考虑这些 \(l \le n\) 中未被筛到的元素。

Code

#include<bits/stdc++.h>
using namespace std;
#define int long long
int gcd(int a,int b){
    return __gcd(a,b);
}
int lcm(int a,int b){
    return a/gcd(a,b)*b;
}
signed main(){
    freopen("Bismuth.in","r",stdin);
    freopen("Bismuth.out","w",stdout);
    int n;
    cin>>n;
    if(n==1){
        cout<<"0 0"<<endl;return 0;
    }
    cout<<((n+1)>>1)<<" ";
    int l=2;
    int ans=n/2/2;
    for(int i=2;i<n/2;i++){
        int nw=2*i-1;
        l=lcm(l,nw);
        if(l>n) break;
        ans+=(n/nw)/l;
    }
    cout<<ans<<endl;
    return 0;
}

水完了。

标签:lceil,Bismuth,frac,int,sol,筛到,Sieve,rceil
From: https://www.cnblogs.com/yingxilin/p/18550563

相关文章

  • Nuxt.js 应用中的 vite:configResolved 事件钩子
    title:Nuxt.js应用中的vite:configResolved事件钩子date:2024/11/17updated:2024/11/17author:cmdragonexcerpt:在Nuxt3中,vite:configResolved钩子允许开发者在Vite配置被解析后访问已解析的配置项。这使得在构建过程中能够根据最终的配置进行动态调整和扩展......
  • Solidity学习笔记-1
    01.HelloWorld开发工具Remix//SPDX-License-Identifier:MIT//软件许可,不写编译会出现警告//版本,“0.8.21”-->不能小于这个版本,"^"-->不能大于0.9.0pragmasolidity^0.8.21;//创建合约contractHelloWorld{stringpublichelloworld="HelloWorld!";}......
  • COMP9021 Solving crosswords
    Assignment2COMP9021,Trimester3,20241Generalmatters1.1AimThepurposeoftheassignmentisto:developyourproblemsolvingskills;designandimplementthesolutionstoproblemsintheformofmediumsizedPythonprograms;practicethedesignand......
  • CSS(7):定位position:相对定位(relative)、绝对定位(absolute)、固定定位(fixed)和静态定位(st
    一.定位:将盒子定在某一个位置,其规则为:定位=定位模式+边偏移 。二:定位模式1.static静态定位:元素无设置的时候就是static        “position:static;”2.relative相对定位:相对于当前位置进行移动,通过设置偏移属性(top、right、bottom、left)来使其在水平和垂直......
  • Solon MVC 的 @Mapping 用法说明
    在SolonMvc里,@Mapping注解一般是配合@Controller和@Remoting,作请求路径映射用的。且,只支持加在public函数或类上。1、注解属性属性说明备注value路径与path互为别名path路径与value互为别名method请求方式限定(def=all)可用@Post、@Get......
  • 解析 React Scheduler 原理,Solid 竟也在使用!
    对于ReactScheduler,它通过将任务切片并异步执行,避免了阻塞浏览器的主线程。很多人其实都看到过类似的文章了,甚至说去手写调度器,都写的很不错,所以本文将从一个新的角度探讨ReactScheduler,揭示它是如何利用几个简单的API实现这一壮举的。ReactScheduler解析首先,让......
  • Solution - Codeforces 2031F Penchick and Even Medians
    飞快秒掉了,没报名痛失首杀,痛苦。简略题解:考虑先随机二元下标\((x_0,y_0)\)满足删去\((x_0,y_0)\)后查询的中位数还是\(\frac{n}{2},\frac{n}{2}+1\),那么这就说明\(p_{x_0},p_{y_0}\)一定在中位数的两边。那么还剩下的\(n-2\)个下标两两配对成\(\frac{n-2}{......
  • Android Framework AMS(15)ContentProvider分析-2(getContentResolver及ContentResolver
    该系列文章总纲链接:专题总纲目录AndroidFramework总纲本章关键点总结&说明:说明:本章节主要解读ContentProvider组件的基本知识。关注思维导图中左上侧部分即可。有了前面activity组件分析、service组件分析、广播组件分析、ContentProvider组件的基本流程分析、基于此......
  • Solution - Codeforces 1725K Kingdom of Criticism
    首先考虑转化一下操作\(3\)。令\(m=\lfloor\frac{l+r}{2}\rfloor\),操作\(3\)就相当于是在\([l,m]\)内的数变为\(l-1\),在\((m,r]\)内的数变为\(r+1\)。于是现在对于操作\(3\)其实就是将一个区间内的数都转为同一个值。其实对于这类将大量信息整合为一体的......
  • Unable to load io.netty.resolver.dns.macos.MacOSDnsServerAddressStreamProvider,
     macm1启动项目,报错,“Unabletoloadio.netty.resolver.dns.macos.MacOSDnsServerAddressStreamProvider,fallbacktosystemdefaults.ThismayresultinincorrectDNSresolutionsonMacOS.”,出现这个问题是因为使用了spring-cloud-starter-gateway依赖,这需要额外安装......