「LNOI2022」盒

news/2025/9/25 17:33:46/文章来源:https://www.cnblogs.com/Airland/p/19111509

我要把你开盒挂网上。


我们定义一波:

\(s_i = \sum_{j = 1}^{i} a_j\)

那我们确定 \(b\) 后,答案是好算的,我们用 \(z_i\) 表示 \(b\) 的前缀和,就有:

\[ans_b = \sum_{i = 1}^{n} v_i \times |s_i - z_i| \]

写40分跑路吧。

之后我们考虑每个 \(v_i\) 的贡献,通过挡板发就有:

\[ans = \sum_{i = 1}^{n - 1} v_i \sum_{j = 0}^{S} |j - s_i| \cdot C^{i - 1}_{i + j - 1} \cdot C^{n - i - 1}_{S + n - j - i - 1} \]

前一个组合数相当于有 \(j\) 个小球,分为 \(i\) 个集合,集合可以为空。
前一个组合数相当于有 \(S - j\) 个小球,分为 \(n - i\) 个集合,集合可以为空。

之后我们先只看内部的🦁(即第二个求和之后),考虑拆绝对值,就有:

\[ans_i = 2 \sum_{j = 0}^{s_i} (s_i - j) \cdot C^{i - 1}_{i + j - 1} \cdot C^{n - i - 1}_{S + n - j - i - 1} + \sum_{j = 0}^{S} (j - s_i) \cdot C^{i - 1}_{i + j - 1} \cdot C^{n - i - 1}_{S + n - j - i - 1} \]

这个式子的含义是先考虑 \(s_i > j\) 的部分,之后我们考虑全体的 \(j - s_i\),它在 \(s_i > j\) 时是负的,所以需要二倍。

我们先解决后面的🦁,后面的等于:

\[\sum_{j = 0}^{S} j \cdot C^{i - 1}_{i + j - 1} \cdot C^{n - i - 1}_{s + n - j - i - 1} - s_i \sum_{j = 0}^{S} C^{i - 1}_{i + j - 1} \cdot C^{n - i - 1}_{S + n - j - i - 1} \]

我们利用组合恒等式:

\[j \ C_{i + j - 1}^{i - 1} = i \ C_{i + j - 1}^{j - 1} \]

这个把组合数写开就能证明。

原式就等于:

\[i \sum_{j = 0}^{S} C^{j - 1}_{i + j - 1} \cdot C^{S - j}_{S + n - j - i - 1} - s_i \sum_{j = 0}^{S} C^{j}_{i + j - 1} \cdot C^{S - j}_{S + n - j - i - 1} \]

为避免组合数出现负数,我们把前面的 \(j - 1\) 换成 \(j\),就有

\[i \sum_{j = 0}^{S - 1} C^{j}_{i + j} \cdot C^{S - j - 1}_{S + n - j - i - 2} - s_i \sum_{j = 0}^{S} C^{j}_{i + j - 1} \cdot C^{S - j}_{S + n - j - i - 1} \]

之后就该上玄学了,我不会

我们先算从 \((0, 0)\) 走到 \((n, m)\) 的方案数,显然是 \(C_{n + m}^{n}\),那我们再考虑经过 \((i, j) \to (i + 1, j)\) 的方案数,就有以下恒等式:

\[C_{n + m}^{n} = \sum_{j = 1}^{m} C_{i + j}^{j} \cdot C_{n + m - i - j - 1}^{m - j} \]

把上边那个🦁用下面的形式表示,原式就等于:

\[iC_{S + n - 1}^{n} - s_iC_{S + n - 1}^{S} \]

这个是好维护的。

然后我们在看之前的前面那个🦁,即:

\[\sum_{j = 0}^{s_i} (s_i - j) \cdot C^{i - 1}_{i + j - 1} \cdot C^{n - i - 1}_{S + n - j - i - 1} \]

我们利用同样的手法化简到:

\[s_i \sum_{j = 0}^{s_i} C^{j}_{i + j - 1} \cdot C^{S - j}_{S + n - j - i - 1} - i \sum_{j = 0}^{s_i - 1} C^{j}_{i + j} \cdot C^{S - j - 1}_{S + n - j - i - 2} \]

之后我们再上一次同样的玄学。

我们先算从 \((0, 0)\) 走到 \((n, m)\),其中在第 \(p\) 行到第 \(p + 1\) 行时,不超过第 \(q\) 列的方案数,记作 \(f(n, m, p, q)\),就有:

\[\sum_{i = 0}^{q} C_{p + i}^{i} \cdot C_{n + m - p - i - 1}^{m - i} \]

之后我们换个角度理解,相当于在 第 \(q\) 列到 第 \(q + 1\) 列时至少在第 \(p + 1\) 行,就有:

\[\sum_{i = p + 1}^{n} C_{q + i}^{i} \cdot C_{n + m - q - i - 1}^{n - i} \]

上面两个式子为恒等式

那么原式就相当于:

\[s_i \ f(n - 1, S, i - 1 , s_i) - i * f(n, S - 1, i, s_i - 1); \]

然后用个类似莫队的东西就做完了,代码如下:

点击查看代码
// Problem: #P3739. 「LNOI2022」盒
// Contest: Hydro
// URL: http://172.20.0.170/d/jzyz/p/P3739
// Memory Limit: 512 MB
// Time Limit: 3000 ms
// Author: Air2011
// 
// 
// Powered by CP Editor (https://cpeditor.org)#include<bits/stdc++.h>
using namespace std;
#define int long long
#define Air
namespace io{inline int read(){int x;cin>>x;return x;}inline void write(int x){cout<<x;}}	
using namespace io;
int n;
const int N = 3e6 + 10, MOD = 998244353;
int a[N], w[N];
int sum[N];
int fac[N];
int inv[N];
int C(int n, int m){if(n < m) return 0;return fac[n] * inv[m] % MOD * inv[n - m] % MOD;
}
int quick_pow(int a, int b){if(!b) return 1;if(b % 2){return a * quick_pow(a, b - 1) % MOD;}else{int temp = quick_pow(a, b / 2);return temp * temp % MOD;}
}
struct Func{int n, m, p ,q;int ans;void pre(int x, int y){n = x;m = y;p = 0;q = 0;ans = C(x + y - 1, y);}int calc(int P, int Q){while(q < Q){q ++;ans += C(p + q, p) * C(n + m - p - q - 1, m - q) % MOD;ans %= MOD;}while(p < P){p ++;ans -= C(p + q, q) * C(n + m - p - q - 1, n - p) % MOD;;ans %= MOD;}return ans;}
}f, g;//拆绝对值void work(){n = read();for(int i = 1; i <= n; i++){a[i] = read();sum[i] = sum[i - 1] + a[i];}for(int i = 1; i < n; i++){w[i] = read();}f.pre(n - 1, sum[n]);g.pre(n, sum[n] - 1);int ans = 0;for(int i = 1; i < n; i++){int cha = 0;cha += i * C(n + sum[n] - 1, n) % MOD; cha %= MOD;cha -= sum[i] * C(n + sum[n] - 1, sum[n]) % MOD; cha = (cha % MOD + MOD) % MOD;if(sum[i] != 0) cha += 2 * sum[i] * f.calc(i - 1, sum[i]) % MOD; cha %= MOD;if(sum[i] != 0) cha -= 2 * i * g.calc(i, sum[i] - 1) % MOD; cha = (cha % MOD + MOD) % MOD;ans += cha * w[i] % MOD; ans %= MOD;}cout << ans << '\n';
}
signed main() {
#ifndef Airfreopen(".in","r",stdin);freopen(".out","w",stdout);
#endifios::sync_with_stdio(false);cin.tie(0);cout.tie(0);fac[0] = inv[0] = 1;for(int i = 1; i < N; i++){fac[i] = fac[i - 1] * i % MOD;}inv[N - 1] = quick_pow(fac[N - 1], MOD - 2);for(int i = N - 2; i >= 1; i--){inv[i] = inv[i + 1] * (i + 1) % MOD;}int TCS = read();while(TCS --){work();}	return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/917310.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【文摘随笔】从业开发工作五年后,再读短篇《孔乙己》——年少不懂孔乙己,长大已成孔乙己

再读《孔乙己》对我而言有太多理由,*鲁迅*、*周树人* 作为网络 meme 已经过去了 7 年,但我的起点是人们越发的使用“脱不掉的长衫”和“孔乙己”来讽刺一个角色、一种现象。 中学时全文背诵的课文竟是一点没有印象,…

为什么我选择了 PSM 敏捷认证?

PSM考试优惠码:4DBC2DE748最近身边不少朋友问我: “敏捷证书这么多,你为什么选了 PSM(Professional Scrum Master)?” 今天就来聊聊我自己的感受,或许对你也有参考价值~ 💡 PSM 解决了我职业发展的几个痛点 …

宫廷计有哪些网站开发的页面跳转的方法

简介&#xff1a; Loki是受Prometheus启发的水平可扩展、高可用、多租户日志聚合系统。用户既可以将Loki告警直接接入SLS开放告警&#xff0c;也可以先将Loki接入Grafana或Alert Manager&#xff0c;再借助Grafana或Alert Manager实现Loki间接接入SLS开放告警。 直接接入 您可…

app开发与网站开发的区别建设工程自学网站

jenkins复制作业您可能知道&#xff0c;Jenkins是高度可配置的CI服务器。 我们可以设置不同的自定义构建过程。 我将分享一些我用来设置詹金斯工作层次的方法。 这是用例&#xff1a; 我们有一个主要的入口工作被调用以启动整个构建过程。 这项工作可以有一个到多个子工作。 …

Hive SQL - INSERT

Hive SQL - INSERT INSERT INTO TABLE zzh_test VALUES (1, 1,1. AAA), (2, 2.2, BBB);INSERT OVERWRITE TABLE zzh_test SELECT * FROM zzh_test; INSERT INTO zzh_test VALUES (1, 1,1. AAA), (2, 2.2, BBB);INSERT …

石家庄房和城乡建设部网站网站建设属于设备吗

打算刷一遍nssweb题&#xff08;任重道远&#xff09; 前面很简单 都是签到题 这里主要记录一下没想到的题目 [GDOUCTF 2023]hate eat snake 这里 是对js的处理 有弹窗 说明可能存在 alert 我们去看看js 这里进行了判断 如果 getScore>-0x1e9* 我们结合上面 我觉得是6…

建站点wordpress 全局字段

文章目录 一、序二、机械硬盘和固态硬盘的物理结构与工作原理2.1 机械硬盘2.11 基本结构2.12 工作原理 2.2 固态硬盘2.21 基本结构2.22 工作原理 三、机械硬盘和固态硬盘的垃圾回收机制3.1 机械硬盘GC3.2 固态硬盘GC3.3 TRIM指令开启和关闭 四、做好数据备份 一、序 周末电脑突…

网站开发如何设置视频教程设计美观网站有哪些

编者按 伏羲&#xff08;Fuxi&#xff09;是十年前最初创立飞天平台时的三大服务之一&#xff08;分布式存储 Pangu&#xff0c;分布式计算 MaxCompute&#xff0c;分布式调度 Fuxi&#xff09;&#xff0c;当时的设计初衷是为了解决大规模分布式资源的调度问题&#xff08;本…

大庆建设银行网站首页网站怎么容易被百度收录

数据持久化到Flash 文章目录 数据持久化到Flash1、Preferences库介绍2、软件准备3、硬件准备4、代码实现4.1 初始化NVS Flash4.2 读写Key/Value对4.3 保存/读取网络凭据4.4 复位后记住最后的 GPIO 状态在本文中,我们将介绍如何使用 Preferences库将数据存储到 ESP32 的Flash中…

编写msyql8.0.21 数据库批量备份脚本

编写msyql8.0.21 数据库批量备份脚本一:编写mysql数据库备份my.cnf文件二、编写数据库导出脚本czywxt_nacos.bat@echo off chcp 65001 > nul title MySQL Backup for czywxt_nacos setlocal disabledelayedexpansi…

完整教程:基础算法---【差分】

完整教程:基础算法---【差分】pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco&quo…

Android 源码中如何生成一个platform JKS 文件?

首先我们需要在源代码环境中将 build/target/product/security/ 文件夹 copy 到本地。 下边的操作需要在 ubuntu 或者 mac 下。重要安全提醒:platform 密钥是系统级私钥,拥有它就能签出系统权限应用。不要把它放到公…

后端面试八股(go 方向)

go 后端面试准备 一、Go语言相关 1、Go里有哪些数据结构是并发安全的?int类型是并发安全的吗?sync 包中的类型sync.Mutex 和 sync.RWMutex:互斥锁,通过加锁机制保证临界区安全 sync.WaitGroup:用于等待一组 gorou…

ArcGIS 不重叠且无缝的拓扑检查和修改

ArcGIS 不重叠且无缝的拓扑检查和修改创建拓扑: 新建数据库→新建dataset→导入要素 dataset右键新建topo 设置容差和规则 拓扑容差: 0.001 默认标准 0.00001 清查标准 注意:容差为分辨率两倍 拓扑规则: 1.不能重…

C++设计模式之创建型模式:工厂方法模式(Factory Method) - 教程

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

【铸网-2025】线下赛 web 详细题解

<?php show_source(index.php); class MGkk8 {public $a;public $b;public function rpl2(){echo(MGrp12;);$b = $this->b;if ($this->a == "RPG") {echo(ifyes;);($b->a)($b->b."&quo…

2025/9/25

A 用时:1h 预期:100pts 实际:100pts 发现有两种做法,可以直接模拟,递推,复杂度分别为 \(O(n^2)\),\(O(n^2\log n)\),而递推可以用 bitset 压一下。 考虑根号分治复杂度为 \(O(B \times n+\frac{n^2\times log …

唐山市政建设总公司网站重庆装修设计公司排名

181/2461/8938产品概述 R&S SMU200A信号发生器旨在满足现代通信系统研发及其生产中遇到的所有要求。R&S SMU200A矢量信号发生器不仅将多达两个独立的信号发生器组合在一个只有四个高度单位的机柜中&#xff0c;还提供无与伦比的RF和基带特性。 Rohde & Schwarz S…

为什么要建设档案网站个人网页设计思路流程内容

142873-41-4脂质过氧化抑制剂1 英文名称&#xff1a;Lipid peroxidation inhibitor 1 中文名称&#xff1a;脂质过氧化抑制剂 化学名称&#xff1a;2,4,6,7-四甲基-2-[(4-苯基哌啶-1-基)甲基]-3H-1-苯并呋喃-5-胺 CAS&#xff1a;142873-41-4 外观&#xff1a;固体粉末 分…

网站建设 云南如何布局网站

标题链接【RM2021 四川站第二期直播】步兵设计及弹道测试https://bbs.robomaster.com/forum.php?modviewthread&tid11504&extrapage%3D1%26filter%3Dtypeid%26orderby%3Ddateline【RM2021 黑龙江站第4期直播】步兵机械设计入门2https://bbs.robomaster.com/forum.php?…