UOJ62 怎样跑的更快

在Linux机器上部署UOJ评测系统 前言 部署要求 开始部署 Ubuntu软件源更新 docker服务部署 获取UOJ最新社区版 安装UOJ 继续安装 UOJ相关操作 部署GUI管理系统 更多内容 前言学校里想要部署一套OJ,然后就选了UOJ。但是由于服务器还要一段时间(永远)才能到,所以就先拿了一台电脑作为试验机进行内网部署测试。非常感谢以下人: vfleaking 无私开放了UOJ的源码 阮行止 维护社区版本UOJ源 阅读详情

bi=∑j=1n(i,j)c−d∗idjdzjb_i=\sum_{j=1}^n(i,j)^{c-d}*i^dj^dz_jbi​=j=1∑n​(i,j)c−d∗idjdzj​
biid=∑j=1nzjjd(i,j)c−d\frac{b_i}{i^d}=\sum_{j=1}^nz_jj^d(i,j)^{c-d}idbi​​=j=1∑n​zj​jd(i,j)c−d记(i,j)=x,Bi=biid,Zi=ziid,fi(d)=∑(i,j)=dZj,Fi(d)=∑d∣(i,j)Zj(i,j)=x,B_i=\frac{b_i}{i^d},Z_i=z_ii^d,f_i(d)=\sum_{(i,j)=d}Z_j,F_i(d)=\sum_{d|(i,j)}Z_j(i,j)=x,Bi​=idbi​​,Zi​=zi​id,fi​(d)=∑(i,j)=d​Zj​,Fi​(d)=∑d∣(i,j)​Zj​
biid=∑x∣inf(x)xc−d\frac{b_i}{i^d}=\sum_{x|i}^nf(x)x^{c-d}idbi​​=x∣i∑n​f(x)xc−dbiid=∑x∣inxc−d∑kF(kx)μ(k)\frac{b_i}{i^d}=\sum_{x|i}^nx^{c-d}\sum_{k}F(kx)\mu(k)idbi​​=x∣i∑n​xc−dk∑​F(kx)μ(k)biid=∑kx∣inxc−dF(kx)μ(k)\frac{b_i}{i^d}=\sum_{kx|i}^nx^{c-d}F(kx)\mu(k)idbi​​=kx∣i∑n​xc−dF(kx)μ(k)B(i)=∑T∣inF(T)∑x∣Tμ(T/x)xc−dB(i)=\sum_{T|i}^nF(T)\sum_{x|T}\mu(T/x)x^{c-d}B(i)=T∣i∑n​F(T)x∣T∑​μ(T/x)xc−d令g(T)=μ∗idc−d(T)令g(T)=\mu*id^{c-d}(T)令g(T)=μ∗idc−d(T)得到B(i)=∑T∣iF(T)g(T)B(i)=\sum_{T|i}F(T)g(T)B(i)=T∣i∑​F(T)g(T)那么F(T)g(T)=∑ij=Tμ(j)B(i)F(T)g(T)=\sum_{ij=T}\mu(j)B(i)F(T)g(T)=ij=T∑​μ(j)B(i)让后一路反推回去得到zzz就行了

#include<stdio.h>
#include<string.h>
#include<algorithm>
#define N 100010
#define M 998244353
#define LL long long
using namespace std;
inline LL pow(LL x,LL k,int& s){
	while(k<0) k+=M-1;
	for(s=1;k;x=x*x%M,k>>=1) k&1?s=s*x%M:0;
}
int mu[N],c,d,n,q,inv[N];
int f[N],g[N],b[N],B[N],z[N],Z[N],F[N],xd[N],xcd[N],G[N];
int main(){
	scanf("%d%d%d%d",&n,&c,&d,&q);
	mu[1]=1;
	for(int i=1;i<=n;++i){
		pow(i,d,xd[i]);
		pow(i,c-d,xcd[i]);
		pow(xd[i],M-2,inv[i]);
		for(int j=i+i;j<=n;j+=i) mu[j]-=mu[i];
	}
	for(int i=1;i<=n;++i) if(mu[i])
		for(int j=1,k=i;k<=n;++j,k+=i)
			g[k]=(g[k]+mu[i]*xcd[j])%M;
	while(q--){
		for(int i=1;i<=n;++i){
			scanf("%d",b+i);
			B[i]=(LL)b[i]*inv[i]%M;
		}
		memset(G,0,n+1<<2);
		for(int i=1;i<=n;++i) if(mu[i])
			for(int j=1,k=i;k<=n;++j,k+=i)
				G[k]=(G[k]+mu[i]*B[j])%M;
		for(int i=1;i<=n;++i)
			if(!g[i]&&G[i]){
				puts("-1");
				goto end;
			} else{
				pow(g[i],M-2,F[i]); 
				F[i]=(LL)F[i]*G[i]%M;
			}
		memset(Z,0,n+1<<2);
		for(int i=1;i<=n;++i) if(mu[i])
			for(int j=1,k=i;k<=n;++j,k+=i)
				Z[j]=(Z[j]+mu[i]*F[k]%M)%M;
		for(int i=1;i<=n;++i){
			z[i]=(LL)Z[i]*inv[i]%M;
			printf("%d ",(z[i]+M)%M);
		}
		puts(""); end:;
	}
}
		
南京大学服务器上搭建UOJ系统的保姆级步骤 从申请南京大学服务器开始,然后搭建docker系统,之后创建UOJ系统用于发布课堂作业,用于帮助助教进行UOJ系统搭建,帮助助教更好的完成老师布置的任务 立即下载

相关推荐

Python经常遇到导入xlwings就出错,如何解决

Python经常在导入xlwings时遇到错误。有人建议尝试重装或升级xlwings,但这些操作后仍然无法解决导入错误问题。

felix_8的博客 1739

uoj#62 怎样跑的更快 (莫比乌斯反演)

题目链接:http://uoj.ac/problem/62 推式子呀推式子 发现我对莫比乌斯反演一无所知qaq 预处理出要用的数组,然后反演反演反演就好啦 #include<cstdio> #include<cstring> #include<iostream> #include<algorithm> #include&...

weixin_30689307的博客 170

高德地图JSAPI中旋转Marker点标签图片时候,且不旋转lable内容方法。

高德地图JSAPI中旋转Marker点标签图片时候,且不旋转lable内容方法

weixin_42960380的博客 2499

UOJ超级详细部署文档

UOJ

weixin_63621347的博客 3417

雷电模拟器9.0最新过检测实战:从修改Build.prop到Xposed模块配置全流程

本文提供了一套针对雷电模拟器9.0的深度伪装实战方案,旨在绕过应用检测。内容涵盖从理解检测机制、获取Root权限、修改Build.prop等静态伪装,到利用Xposed/LSPosed框架进行运行时Hook的动态伪装全流程,帮助用户构建无痕的“真机”环境以稳定运行应用。

z4a5b6的博客 860

Jetson Nano官方镜像下载&烧录

在NVIDIA Jetson Nano开发者套件上安装NVIDIA官方Ubuntu镜像

weixin_44222088的博客 8843

推荐开源项目:UOJ - 轻量级在线编程与评测系统

推荐开源项目:UOJ - 轻量级在线编程与评测系统 uojUniversal Online Judge项目地址:https://gitcode.com/gh_mirrors/uo/uoj 项目简介 是一个轻量级、易于部署和维护的在线编程与评测系统,它允许用户在线编写、提交并运行代码,然后根据预设的测试用例进行自动评分。该项目是基于 PHP 和 MySQL 开发的,旨在为教育机构、编程爱好者或小型...

gitblog_00041的博客 1533

Upwork入门指南:如何创建吸引人的个人资料

本文详细介绍了如何在Upwork上创建并优化个人资料,帮助自由职业者吸引更多客户。内容包括: 注册与验证:从注册账号到邮箱验证的完整步骤。 个人资料填写:如何撰写吸引人的标题、简介,选择技能标签,以及设置专业头像和费率。 作品集与优化:上传高质量作品集,提升搜索排名和客户信任度。 常见问题解答:解决新手常见问题,如无工作经验或审核不通过。 通过本文的指导,你将学会打造一个专业且高效的个人资料,为在Upwork上获得更多机会奠定基础。

qq_61813593的博客 3510

【简单】Linux 搭建 UOJ

  正如标题一样,搭建个UOJ是非常简单的,SO EASY !和其它的OJ相比,UOJ最大的优点就可能是安装方便啦,一个docker就可以搞定了。而像搭建HUSTOJ(华中科技大学)则是需要 Apache Php Mysql等什么的,对于新手来说比较复杂,而且步骤多,就容易出错。要是百度的话那就要好好总结啦,网上各种各样的方法且不同版本不同时期的原因,就不能直接来照搬咯。   而...

weixin_30561425的博客 1982

第四届“网鼎杯”网络安全大赛 - 青龙组

第四届“网鼎杯”网络安全大赛 - 青龙组

lpppp小公主的博客 1313

Mac 下 OpenClaw 安装全记录:从零到一的保姆级图文教程

本文主要介绍了Mac 下 OpenClaw 安装全记录:从零到一的保姆级图文教程,希望能对学习使用OpenClaw 的同学们有所帮助。 文章目录 1. 背景 2. 安装教程 2.1 安装OpenClaw 2.2 配置模型 2.3 对话 3. 后续使用步骤 4. 关闭程序

weixin_43178406的博客 11万+

UOJ #62 怎样跑得更快

UOJ #62 怎样跑得更快 题目传送门 题意 大力水手问禅师:“大师,我觉得我光有力气是不够的。比如我吃菠菜可以让力气更大,但是却没有提升跑步的速度。请问怎样才能跑得更快?我试过吃白菜,没有效果。” 禅师浅笑,答:“方法很简单,不过若想我教你,你先看看这道\(UOJ\) \(Round\)的\(C\)题。” 令 \(p=998244353\)(\(7×17×223+17×17×223+1\),一...

weixin_34405925的博客 113

TPAMI 2025 | 从缺失碎片到杰作:基于上下文自适应扩散的图像修复

图像修复是一项具有挑战性的任务,尤其是要确保生成的内容与图像的现有部分无缝融合。尽管最近的扩散模型展现出了潜力,但它们在保持已知区域和未知(缺失)区域之间的连贯性方面常常遇到困难。这个问题源于扩散过程中缺乏明确的空间和语义对齐,导致生成的内容无法与原始图像平滑融合。此外,扩散模型通常依赖全局学习分布,而非局部特征,这使得生成的图像部分与现有图像部分之间存在不一致。在这项工作中,作者提出了ConFill,这是一个新颖的框架,引入了上下文自适应差异(CAD)模型,以确保在整个扩散过程中,已知区域和未知区域的中间

小白学视觉 239

uoj62 怎样跑得更快

题意:给你c,d,每次询问的bi,p=998244353,求x数组(解方程)。 标程: 1 #include<cstdio> 2 using namespace std; 3 typedef long long ll; 4 const int mod=998244353,pmod=mod-1; 5 const int N=100005; ...

b121382291的博客 171

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

UOJ#62. 【UR #5】怎样跑得更快 数论 莫比乌斯反演

原文链接https://www.cnblogs.com/zhouzhendong/p/UOJ62.html 题解 太久没更博客了,该拯救我的博客了。 $$\sum_{1\leq j \leq n} \gcd(i,j) ^{c-d} i^dj^dx_j = b_i\\A_i = i^d x_i, B_i = \frac{b_i}{i^d}, f(x) = x^{c-d}\\f(x) = \su...

weixin_30767835的博客 190

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

[UOJ62]怎样跑得更快

以下用等号代替同余 这个式子是$\sum\limits_{j=1}^n(i,j)^{c-d}i^dj^dx_j=b_i$ 令$g(n)=\sum\limits_{e|n}\mu\left(\frac ne\right)e^{c-d}$,那么原式变为$\sum\limits_{e|i}g(e)\sum\limits_{\substack{e|j\\1\leq j\leq n}}j^dx_j=\f...

weixin_34257076的博客 107

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

UOJ 【UR #5】怎样跑得更快

【UOJ#62】怎样跑得更快 题面 这个题让人有高斯消元的冲动,但肯定是不行的。 这个题算是莫比乌斯反演的一个非常巧妙的应用(不看题解不会做)。 套路1: 因为\(b(i)\)能表达成一系列\(x(i)\)的和,所以我们尝试通过反演将\(x(i)\)表达成一系列\(b(i)\)的和的形式,那么就可以解出来了。 然后一个简单的化简:\(gcd(i,j)^c\cdot lcm(i,j)^d=i^d\c...

weixin_34334744的博客 271

【UOJ #62】【UR #5】怎样跑得更快(莫比乌斯反演)

传送门 以下用C,DC,DC,D表示文内的c,dc,dc,d 显然可以替换lcmlcmlcm后枚举gcdgcdgcd得到 biiD≡∑d∣idC−D∑d∣j[gcd(id,jd)=1]xjjD\frac{b_i}{i^D}\equiv\sum_{d|i}d^{C-D}\sum_{d|j}[gcd(\frac i d,\frac j d)=1]x_jj^DiDbi​​≡d∣i∑​dC−Dd∣j∑​[...

Stargazer的博客 223

【UR #5】怎样跑得更快

题面 链接:UOJ#62 题目描述 大力水手问禅师:“大师,我觉得我光有力气是不够的。比如我吃菠菜可以让力气更大,但是却没有提升跑步的速度。请问怎样才能跑得更快?我试过吃白菜,没有效果。” 禅师浅笑,答:“方法很简单,不过若想我教你,你先看看这道UOJ Round的C题。” 令 \(p=998244353\)(\(7×17×223+1\),一个质数)。 给你整数\(n,c,d\)。现在有...

banchangyue3928的博客 212

UOJ #62. 【UR #5】怎样跑得更快

题目分析 显然不可能高斯消元。 考虑反演。 \(b_i=\sum\limits_{j=1}^n\gcd(i,j)^C\cdot \text{lcm}(i,j)^D\cdot x_j\) \(b_i=\sum\limits_{j=1}^n\gcd(i,j)^C\cdot \frac{i^D\cdot j^D}{\gcd(i,j)^D}\cdot x_j\) \(b_i=\sum\limits_{j=...

weixin_30361641的博客 144

【题解】【UR #5】怎样跑得更快 反演技巧

【UR #5】怎样跑得更快 题解见vfk的反演讲义 思路非常经典: 当我们要求值时,把与相同变量有关的部分令成同一函数,经过多次反演最后求解 代码中的细节: 无解的判断:非0数除0 这种推式子的题调的时候必须检查代码和式子和相互对应关系,输出调试和gdb都是没有用的。只能静心一句句的读代码 而我写题的时候不够专注,所以clear()函数忘了调用。推式子有个地方数组名大小写混了,调了很久 遇到这种“...

执子之手,与子偕老 311

「算法笔记」莫比乌斯反演进阶

文章目录YY 的 GCD题目大意思路分析代码实现NOI 2016 循环之美题目大意思路分析代码实现UOJ 62 怎样跑的更快 YY 的 GCD 题目大意 求下列式子的值: ∑i=1n∑j=1m[gcd⁡{i,j}∈P]&amp;amp;nbsp;(P&amp;amp;nbsp;为素数集合)\sum_{i = 1}^{n} \sum_{j = 1}^{m} [\gcd\{i, j\} \in P]\ (P\ \text{为素数集合...

Galaxy Coder 的博客 710
上一篇: LOJ 6495~6497「雅礼集训 2018 Day1」
下一篇: 一些反演求和过程?
扩展的灰
博客等级 码龄12年 60粉丝 342原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值