2023.3.18 闲话

不老不死

永生的诅咒已经将我包围

想要去挣脱却无力去面对

只有在这个孤单冷清人间

去忏悔去渴求永眠

我吞下骨胳味浓郁的药水

我以为这是我苦痛的终结

我期待能永生活在这世界

却不想却不知却变成天遣

我经历无尽的崛起与更迭

也越境无穷的巅峰与疯癫

繁华和富贵留不住在身边

陪着我去度过又一个千年

我无法抽身在那漩涡中不停的沦陷

我要死断绝灵魂也一起奉献

就算牺牲一切温柔与纯洁

我永生于世踏遍每一个山岳

却又无法踏进内心的梦魇

我要死断绝忘却恐惧和愚昧

却又不安躁动心怀着疲倦

这一场自作自受的孽已经不能改变

究竟我化作了神明的代言

还是已化作在苟延的恶鬼

我身在天堂我却不能去飞

也不能跌落进地狱的深渊

回忆里那些曾爱过我的人

如今已都变成腐烂的相片

怀念的岁月坍塌在一瞬间

只留下名叫做美丽的灰烟

忧伤和悲切在漫长人生不停的轮回

我要死断绝灵魂也一起奉献

算牺牲一切温柔与纯洁

我永生于世踏遍每一个山岳

却又无法踏进内心的梦魇

我要死断绝忘却恐惧和愚昧

却又不安躁动心怀着疲倦

这一场自作自受的孽永远不停歇

我要死断绝冲破命运的制约

让生命的缺陷被抹消遮掩

但我终不能再永受这般岁月

我愿笑着终结迎接着毁灭

我要死断绝忘却恐惧和愚昧

却又不安躁动心怀着疲倦

这一场自作自受的孽

在身边无尽无限重演

这永生久永世哀怨

谁能为我破解

Keven_He 早就给我的歌词总是忘了放,Keven_He 提醒才想起来 .

最近洛谷的情况不是很稳定,洛谷迟早被爆炸的 DarkBZOJ 逸散出的黑暗之力侵染爆炸 . 关于「黑暗之力」的事情,SoyTony 好像就很会用光明之力,有点伏笔的意味 .

有一些非常难以理解的内容 —— cnblogs 中的 MathJax,它的 Math Renderer 有 CHTML / HTML-CSS 和 SVG,不过 SVG 不能显示带色号的 \color,例:apjifengc . 但是 APJ 却不去修复这个问题,可能用的是 HTML-CSS 吧,又或者是我的环境问题 .

GLR Div. 2 过了前两题,T3 属于是不会的类型写的套数据,T4 只暴力了前面摆的太严重没空拼上 \(k=1\) 的部分分了 . 好强啊 .

joke3579 闲话能日更,真是好强啊 . 目前还能日更的闲话还有几个???OI 界顶流了 . BOBO 刚才说「毅力」是 OI 中最重要的.jpg

闪存 100 星星了 .


我终于会线性筛任意积性函数 \(f\) 了,好难啊 .

积性函数点值仅依赖于素数幂处的点值,那么我们认为现在可以快速计算素数幂处取值,接下来筛别的点值 .

线性筛的过程其实就是有两个整数 \(i,p\)\(p\) 是素数,然后转移 \(f_{ip}\gets f_i,f_p\)\(p\)\(ip\) 的最小素因子 .

那么就想一下怎么转移,其实就是简单讨论一下 .

  • \(i\) 中没有因子 \(p\),那么有 \(i\perp p\) 就是按积性函数转移 \(f(ip)=f(i)f(p)\) .
  • \(i\) 中有因子 \(p\),那么就是先除掉原来有的因子 \(p\) 然后给 \(p\) 贡献上,那么记录一个 \(\operatorname{low}(x)\) 表示 \(x\) 的最小素因子算上次数,那么就有 \(f(ip)=f\left(\dfrac i{\operatorname{low}(i)}\right)f(\operatorname{low}(i)\cdot p)\) . \(\operatorname{low}\) 是可以平凡记录的 .

有一个特殊情况是 \(\operatorname{low}(i)=i\) 时就意味着 \(ip\) 是素数幂,不需要筛 .

例:

GLR-R4 Div.2 T4 弱化版

有常数 \(k\),积性函数 \(f(p^c)=p^{\gcd(c,k)}\),其中 \(p\) 是素数 . 在线性时间复杂度内筛 \(f\) 的一行点值 .

根据以上分析,可以得到代码如下:

Code
int gcd(int a, int b){return b ? gcd(b, a % b) : a;}
bool notprime[N];
int k, f[N], low[N];
vector<int> prime;
inline int qpow(int a, int n)
{
	int ans = 1;
	while (n)
	{
		if (n & 1) ans *= a;
		a *= a; n >>= 1;
	}
	return ans;
}
inline void linear_sieve(int n)
{
	notprime[1] = true; low[1] = f[1] = 1;
	for (int i=2; i<=n; i++)
	{
		if (!notprime[i]){prime.emplace_back(i); low[i] = f[i] = i;}
		for (int x : prime)
		{
			if (1ll * i * x > n) break;
			notprime[i * x] = true;
			if (!(i % x))
			{
				low[i * x] = low[i] * x;
				if (low[i] == i) f[i * x] = qpow(x, gcd(int(log(i) / log(x) + 1.5), k));
				else f[i * x] = f[i / low[i]] * f[low[i] * x];
				break;
			}
			low[i * x] = x; f[i * x] = f[i] * f[x];
		}
	}
}
posted @ 2023-03-18 19:29  Jijidawang  阅读(87)  评论(3编辑  收藏  举报
😅​