题解 P7623 [AHOI2021初中组] 收衣服
我还在小学的时候以现在初中名义我大五十牛逼参加了这次,然后身败名裂死磕这道题不会,现在觉得自己好傻啊 233333
显然这是要统计每个区间的贡献,所以我们可以打出来这个暴力,统计每个区间的次数,对于 \(n = 5\) 的情况可得
[1,1] 24 [1,2] 24 [1,3] 24 [1,4] 24 [1,5] 24
[2,2] 30 [2,3] 30 [2,4] 30 [2,5] 30
[3,3] 40 [3,4] 40 [3,5] 40
[4,4] 60 [4,5] 60
\([l, r]\) 代表区间,后面的代表贡献次数。
然后下面的操作比较人类智慧,我当时也是突发奇想才想到的规律。
首先我们发现每一行的次数都是一样的,我们把它写成一个数列 \(24,30,40,60,120\)。然后我们就丢到 OIES 上找但是找不到我们不难发现 \(24 = 4! = 4 \times 3 \times 2\times 1\)。
下一个数字是 \(30\),我们写成类似形式。
\(30 = 3\times 10 = 5\times 3 \times 2 = 5\times 3 \times 2\times 1\)。
再下一个是 \(40\),类似形式 \(40 = 5 \times 4\times 2 \times 1\)。同理 \(60 = 5\times 4\times 3 \times 1, 120 = 5\times 4\times 3\times 2\)。
列一张表
n = 5
24=4*3*2*1
30=5*3*2*1
40=5*4*2*1
60=5*4*3*1
发现了什么?对于第一行,是 \((n - 1)!\)。第二行是 \(\dfrac{(n - 1)!}{n - 1}\times n\),第三行是 \(\dfrac{(n - 1)!}{n - 2}\times n\)。
总而言之,第 \(k\) 行,次数是 \(\dfrac{(n - 1)!}{n - k + 1}\times n = \dfrac{n!}{n - k +1}\)。
然后就是非常简单的东西了,统计每行的和,然后按照上面的次数乘一下就行了。
//SIXIANG
#include <iostream>
#define MAXN 500
#define LL long long
#define QWQ cout << "QWQ" << endl;
using namespace std;
const LL Mod = 998244353;
LL w[MAXN + 10][MAXN + 10], frac[MAXN + 10], sum[MAXN + 10];
LL qmul(LL n, LL m) {
LL res = 0;
while(m) {
if(m & 1) res = (res + n) % Mod;
n = (n + n) % Mod, m >>= 1;
}
return res;
}
LL qpow(LL n, LL m) {
LL res = 1;
while(m) {
if(m & 1) res = qmul(res, n) % Mod;
n = qmul(n, n) % Mod, m >>= 1;
}
return res;
}
int main() {
int n; cin >> n;
frac[0] = 1;
for(int p = 1; p <= n; p++)
frac[p] = (frac[p - 1] * p) % Mod;
for(int p = 1; p < n; p++)
for(int i = p; i <= n; i++)
cin >> w[p][i], sum[p] = (sum[p] + w[p][i]) % Mod;
LL ans = 0;
for(int p = 1; p < n; p++)
ans = (ans + qmul(sum[p], qmul(frac[n], qpow((n - p + 1), Mod - 2)))) % Mod;
cout << ans << endl;
}
题解 P7623 [AHOI2021初中组] 收衣服的更多相关文章
- test20230111考试总结 -2023寒图论专题
前言 赛时得分情况: A B C D E F G H I \(\texttt{Total}\) \(\texttt{Rank}\) \(100\) \(100\) \(10\) \(58\) \(54 ...
- html5 canvas雨点打到窗玻璃动画
html5 canvas雨点打到窗玻璃动画 HTML5下雨效果 效果预览:http://hovertree.com/texiao/html5/4.htm 以下是代码: <!doctype htm ...
- 用Editplus开发Java
☆ 准备工作 ①,已安装好jdk,同时配置系统变量(3个,JAVA_HOME,PATH,CLASSPATH) ②,电脑已安装Editplus,并做好设置. ☆ Editplus配置java开发环境 对 ...
- Linux-理解ARP、网关、路由
假设你叫小不点(本地主机),住在一个大院子(本地局域网)里,有很多邻居(网络邻居),门口传达室有个看大门的李大爷,李大爷就是你的网关.当你想跟院子里的某个伙伴玩,只要你在院子里大喊一声他的名字(pin ...
- IP地址,子网掩码,默认网关,路由,形象生动阐述
自己的Linux虚拟机已经分配了固定的IP地址(使用无线路由,用的是192.168.1.XX网段),公司的无线网络分配的IP地址是(10.51.174.XX网段) 所以当自己的电脑拿到公司,还想使用桥 ...
- 一篇故事讲述了计算机网络里的基本概念:网关,DHCP,IP寻址,ARP欺骗,路由,DDOS等...
计算机主机网关的作用是什么? 假设你的名字叫小不点,你住在一个大院子里,你的邻居有很多小伙伴,在门口传达室还有个看大门的李大爷,李大爷就是你的网关.当你想跟院子里的某个小伙伴玩,只要你在院子里大喊一声 ...
- 观察者模式 Observer 发布订阅模式 源 监听 行为型 设计模式(二十三)
观察者模式 Observer 意图 定义对象一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖他的对象都得到通知并自动更新. 别名:依赖(Dependents),发布订阅(Publish-Su ...
- Python-JS (JS介绍~JS的基础数据类型)
目录一.JS语言介绍: 1.JS概念 2.JS组成 二.JS的三种存在位置(引入方式): 1.行间式: 2.内联式: 3.外联式: 三.JS出现的具体位置: 四.JS语法规范 五.JS中变量的定义 E ...
- day50
JS基础 一.JS语言介绍 1.概念 浏览器脚本语言 可以编写运行在浏览器上的代码程序 属于解释性.弱语言类型编程语言 2.组成 ES语法:ECMAScript.主要版本ES5和ES6 DOM:文档对 ...
- [经典]网关,DNS,DHCP三者关系详解
什么叫网关的精解 Sample Text转自(协议分析论坛)计算机主机网关的作用是什么?假设你的名字叫小不点,你住在一个大院子里,你的邻居有很多小伙伴,在门口传达室还有个看大门的李大爷,李大爷就是你的 ...
随机推荐
- day31 1 tomcat介绍与创建web项目 & 2 继承HttpServlet类、配置webxml全局配置文件 & 3 servlet生命周期 & 4 请求对象HttpServletRequest与响应对象HttpServletResponse
Servlet Java Servlet是运行在Web服务器或应用服务器上的程序,作为客户端(Web浏览器或其他HTTP客户端)和服务端(HTTP服务器上的数据库或应用程序)之间的中间层. 使用Ser ...
- 【PostgreSQL】pgsql编写函数实现批量删除数字结尾的备份表
执行前: 最终代码: CREATE OR REPLACE FUNCTION "ap"."iter_drop_table_bak"() RETURNS " ...
- java抽象类的定义和使用
1. 抽象类的规则 ● 抽象类不可以被实例化,也就是不能被new,会出现编译错误.抽象类如果想实例化可以通过非抽象子类的方式去实现. ● 抽象类中不一定有抽象方法,但有抽象方法的类一定是抽象类.而且抽 ...
- 三道MISC的writeup
(1)背时 描述:腐烂了,变异了,太背时了...... 附件为一个压缩包 解题思路: 1.打开压缩包,发现有一个描述:v(51wA:I7uABi#Bx(T 2.将v(51wA:I7uABi#Bx(T进 ...
- Django框架:1、手撸web框架、Django框架简介、安装与使用和小白必会三板斧
Django框架 目录 Django框架 一.Django推导流程 1.纯手撸web框架 2.基于wsgire模块 3.代码封装优化 4.动静态网页 5.jinja2模块 6.前端.后端.数据库三者联 ...
- Selenium4+Python3系列(十二) - 测试框架的设计与开发
前言 自己从未没想过能使用python来做自动化测试框架的设计.开发. 可能有人会好奇说,六哥,你怎么也用python写测试框架了? 领导说: python你也没有实际工作经验,可能就是自己自学的. ...
- Qt开发Active控件:如何使用ActiveQt Server开发大型软件的主框架(2)
Qt开发Active控件:如何使用ActiveQt Server开发大型软件的主框架 注:本文更多地是带着如何去思考答案,而不是纯粹的放一个答案上来,如果你需要直接看到完整的答案,请直接看实例和最后的 ...
- python-docx操作word文档详解
案例 官网地址: https://python-docx.readthedocs.io/en/latest/ pip install python-docx from docx import Docu ...
- 一文了解 Dubbo 的代码架构
整体设计 图例说明: 图中左边淡蓝背景的为服务消费方使用的接口,右边淡绿色背景的为服务提供方使用的接口,位于中轴线上的为双方都用到的接口. 图中从下至上分为十层,各层均为单向依赖,右边的黑色箭头代表层 ...
- 重学c#系列——linq(3) [二十九]
前言 继续介绍一些复杂的linq. 正文 groupjoin 这个函数: 有department public class Deployment { public string Id { get; s ...