interlinkage: https://www.luogu.org/problemnew/show/P4562 description: solution: 注意到$l=1$的时候,$t(p)$就是$1$出现的位置,答案就是$1$出现的位置之和; 这启发我们找一些关键的数字,这些数字在$[l,r]$内不存在约数; 结论是$t(p)$为最后一个关键数的位置; 不妨反证法,假设当所有的关键数都被用掉时还有数字没有筛掉.设最后一个关键数的位置为$pos$,既然还没有全部筛完,那么在$[pos+1,…
interlinkage: https://www.luogu.org/problemnew/show/P4563 description: solution: 注意到对于范围$[l,r]$,$r$这个亭子一定要设置保镖 设$f_{l,r}$为活动范围为$[l,r]$所需的最小保镖数 枚举右端点$r$,然后从右向左遍历左端点$l$.设$p$为在$[l,r]$中$r$处能看到的最左的点 这样的话我们就必须在$p$或者$p-1$处放置保镖 于是$f_{l,r}=min(f_{l,p-1},f_{l,…
题面 From ZRQ,很好的计数题 我们可以发现这$len=r-l+1$个数中有一些是必须被查到的,即它们不是一些数的倍数,它们的数目$imp$可以通过一次埃氏筛求出. 在一个排列中可怜查到某个位置时就不用检查了,那这个位置上一定是这个排列中第$imp$和必须被查的数,我们不妨从$imp$到$len$枚举这个这个位置$i$.那么这个位置上的数有$imp$种可能,答案乘上$imp$:前面这$i$个数中要塞上$i-imp$个不必须的数,答案乘上$C_{len-imp}^{i-imp}$:最后是这个…
Recently, the bear started studying data structures and faced the following problem. You are given a sequence of integers x1, x2, ..., xn of length n and m queries, each of them is characterized by two integers li, ri. Let's introduce f(p) to represe…
直接用埃氏筛也可以做,但是这题写起来有点恶臭.. 更加简单的写法是直接枚举gcd=k,然后里面再枚举一次i*k,即找到k两个最小的倍数,看起来复杂度很高,但其实也是埃氏筛的复杂度 因为每次枚举gcd,相当于筛法中的枚举筛数,不同的是这题对于每个i在筛的过程中,不会筛到低,而是会中途退出循环,那么当其倍数i*k继续去筛的时候,仅仅是原来应该筛的数筛掉而已 ][]; int main() { int n; scanf("%d",&n); memset(value,,sizeof(v…
题目描述 原题来自:Codeforces Round #400 B. Sherlock 有了一个新女友(这太不像他了!).情人节到了,他想送给女友一些珠宝当做礼物. 他买了 nnn 件珠宝.第 iii 件的价值是 i+1i+1i+1.那就是说,珠宝的价值分别为 2,3,4,⋯,n+12,3,4,\cdots ,n+12,3,4,⋯,n+1. Watson 挑战 Sherlock,让他给这些珠宝染色,使得一件珠宝的价格是另一件的质因子时,两件珠宝的颜色不同.并且,Watson 要求他最小化颜色的使…
我们一般写的埃氏筛消耗的时间都是欧拉筛的三倍,但是欧拉筛并不好想(对于我这种蒟蒻) 虽然 -- 我 -- 也可以背过模板,但是写个不会的欧拉筛不如写个简单易懂的埃氏筛 于是就有了优化 这个优化还是比较厉害的,能把埃氏筛的消耗的时间提的跟欧拉筛差不多 以下内容需要先学会埃氏筛 学会的埃氏筛就明白它的原理了吧 #include<bits/stdc++.h> using namespace std; int n, m ,Is_p[10000001]; int main() { cin >>…
从2e5-1依次枚举每个数作为主显卡,然后分段求比它大的数的个数,这里的复杂度是调和级数ln2e5,即埃氏筛的复杂度.. #include<bits/stdc++.h> using namespace std; #define ll long long #define N 200005 int cnt[N],n; #define lson l,m,rt<<1 #define rson m+1,r,rt<<1|1 ll num[N<<]; void updat…
min_25 筛介绍 我们考虑这样一个问题. \[ans=\sum_{i = 1}^nf(i)\\ \] 其中 \(1 \le n \le 10^{10}\) 其中 \(f(i)\) 是一个奇怪的函数.并不像 \(μ(i),φ(i),iφ(i)\)那样具有那么好的性质.但是满足以下条件: 若 \(p\)为质数,则 \(f(p)\)是一个关于 \(p\)的多项式,比如 \(μ(p)=−1,φ(p)=p−1\). 若 \(p\)为质数,\(e\)为正整数,则 \(f(pe)\)可以很快求出.(通常是…
题目描述 小P同学在养殖一种非常凶狠的鱼,而且与其他鱼类不同,这种鱼越大越温顺,反而小鱼最凶残.当两条鱼相遇时, 小鱼会不断撕咬大鱼,每一口都咬下与它自身等重的肉(小鱼保持体重不变),直到大鱼的体重小于这条小鱼(若 两条鱼体重相同,一条鱼会将另一条撕咬殆尽). 现在池塘中有n条鱼,小P想知道哪一对鱼相遇后,被咬的鱼剩余体重最大. 输入格式 单组测试数据.第一行包含一个整数n,表示鱼的数量.(1 ≤ n ≤ 2e6) 第二行有n个用空格分开的整数ai 表示第i条鱼的体重(1 ≤ ai ≤ 1e6)…