当前位置: 首页 > news >正文

【组合计数】CF1866 H

Problem - H - Codeforces

题意

思路

不知道这种trick叫什么,昨天VP刚遇到过

设 f[x] 为恰好有一个最大值为 x 的方案数,我们要求这个,那就设 g[x] 为 至少有一个最大值为 x 的方案数,那么答案就是 f[x] = g[x] - g[x - 1]

这里也一样,不过要稍微变一下

Code:

#include <bits/stdc++.h>#define int long longconstexpr int N = 1e6 + 10;
constexpr int mod = 998244353;
constexpr int Inf = 0x3f3f3f3f;int n, k;
int Fac[N];
int inv[N];
int g[N];int qpow(int a, int b) {int res = 1;while(b) {if (b & 1) res = (res * a) % mod;a = (a * a) % mod;b >>= 1;}return res;
}
void Fac_init() {Fac[0] = 1;for (int i = 1; i < N; i ++) {Fac[i] = (Fac[i - 1] * i) % mod;}inv[N - 1] = qpow(Fac[N - 1], mod - 2);for (int i = N - 2; i >= 0; i --) {inv[i] = (inv[i + 1] * (i + 1)) % mod;}
}
void solve() {std::cin >> n >> k;for (int i = std::max(0ll, n - k); i <= n; i ++) {g[i] = Fac[n - i + 1] * qpow(n - i + 1, k - (n - i)) % mod;}int ans = 0;for (int i = n; i >= std::max(0ll, n - k); i --) {int res = g[i] - g[i + 1];res *= Fac[n];res %= mod;res *= inv[i];res %= mod;ans += res;ans %= mod;}std::cout << ((ans % mod) + mod) % mod << "\n";
}
signed main() {std::ios::sync_with_stdio(false);std::cin.tie(nullptr);int t = 1;Fac_init();while (t--) {solve();}return 0;
}

 

相关文章:

【组合计数】CF1866 H

Problem - H - Codeforces 题意 思路 不知道这种trick叫什么&#xff0c;昨天VP刚遇到过 设 f[x] 为恰好有一个最大值为 x 的方案数&#xff0c;我们要求这个&#xff0c;那就设 g[x] 为 至少有一个最大值为 x 的方案数&#xff0c;那么答案就是 f[x] g[x] - g[x - 1] 这里…...

JavaSpringbootmysql农产品销售管理系统47627-计算机毕业设计项目选题推荐(附源码)

摘 要 随着互联网趋势的到来&#xff0c;各行各业都在考虑利用互联网将自己推广出去&#xff0c;最好方式就是建立自己的互联网系统&#xff0c;并对其进行维护和管理。在现实运用中&#xff0c;应用软件的工作规则和开发步骤&#xff0c;采用Java技术建设农产品销售管理系统。…...

一文5000字从0到1使用Jmeter实现轻量级的接口自动化测试(图文并茂)

接口测试虽然作为版本的一环&#xff0c;但是也是有一套完整的体系&#xff0c;有接口的功能测试、性能测试、安全测试&#xff1b;同时&#xff0c;由于接口的特性&#xff0c;接口的自动化低成本高收益的&#xff0c;使用一些开源工具或一些轻量级的方法&#xff0c;在测试用…...

蓝桥杯每日一题0223.10.23

第几天 - 蓝桥云课 (lanqiao.cn) 题目描述 题目分析 简单枚举&#xff08;用k来记录经过的天数&#xff09; #include<bits/stdc.h> using namespace std; bool is_ren(int n) {if(n % 400 0 || (n % 4 0 && n % 100 ! 0))return true;return false; } int …...

php危险函数及rce漏洞

php代码执行语句 eval() eval()语句 eval() 会将符合PHP 语法规范字符串当作php 代码执行。 <meta charset"UTF-8"> <pre><?php$dd$_REQUEST[dd];eval($dd);?>可以执行php代码 也可以套一层system执行系统操作指令 assert()函数 assert() …...

4. 寻找两个正序数组的中位数

1. 题目 见 寻找两个正序数组的中位数 2. 解题思路 首先一看到题目说是正序数组&#xff0c;且时间复杂度要求在对数级别&#xff0c;所以自然想到了双指针中的二分法。 首先来看一下&#xff0c;假设输入是这两个数组&#xff0c;那么将其逻辑合并成一个大数组的话&#x…...

Stable Diffusion AI绘图

提示词&#xff1a; masterpiece, best quality, 1girl, (anime), (manga), (2D), half body, perfect eyes, both eyes are the same, Global illumination, soft light, dream light, digital painting, extremely detailed CGI anime, hd, 2k, 4k background 反向提示词&…...

MR混合现实情景实训教学系统在旅游管理专业中的应用

在旅游管理专业中&#xff0c;MR混合现实情景实训教学系统的主要应用包括但不限于以下几个方面&#xff1a; 1. 实地考察的替代&#xff1a;对于一些无法实地考察的景点或设施&#xff0c;学生可以通过MR系统进行虚拟参观&#xff0c;从而了解其实际情况。这不仅可以减少时间和…...

CentOS 使用线程库Pthread 库

1、Pthread 库说明 pthread 库是Linux系统默认线程库。 在Linux 系统环境中&#xff0c;编辑C/C程序使用pthread 库&#xff0c;需要添加对应的头文件&#xff0c;并链接pthread库。 #include<pthread.h> 2、Pthread 库核心方法 pthread_create 函数定义&#xff1…...

#力扣:LCP 01. 猜数字@FDDLC

LCP 01. 猜数字 - 力扣&#xff08;LeetCode&#xff09; 一、Java class Solution {public int game(int[] guess, int[] answer) {int cnt0;for(int i0;i<3;i){if(guess[i]answer[i])cnt;}return cnt;} }...

kafka丢数据的原因

目录 背景kafkaClient代码消息丢失的可能原因broker is downRD_KAFKA_MSG_SIZE_TOO_LARGE分区问题Kafka Broker的处理能力无法跟上&#xff0c;可能会出现以下情况 Some基础知识补充 背景 采用的client是librdkafka&#xff0c;在producerClient Send的数据时候发现会有数据丢…...

音视频编解码技术学习笔记

音视频编解码技术是音视频处理领域的重要部分&#xff0c;涉及到对原始音视频数据的压缩、编码和解码。以下是音视频编解码技术的一些要点和难点&#xff1a; 要点&#xff1a; 压缩技术 音视频编解码的核心是对原始音视频数据进行压缩&#xff0c;以减小文件大小和传输带宽…...

[C#基础训练]FoodRobot食品管理部分代码-1

代码参考: using System;namespace FoodRobotDemo { public class FoodRobot{private int[] foodCountArr;private string[] foodNameArr;public FoodRobot(){foodCountArr new int[3];foodNameArr new string[3] {"航天","航空","宇航" };}…...

YModem协议总结

《YModem协议总结》 目录 第1章 YModem协议简介 4 1.1 基本介绍 4 1.2 YModem基本介绍 4 第2章 YModem传输协议 5 2.1 起始帧的数据格式 5 2.2 数据帧的数据格式 5 2.3 结束帧数据结构 6 2.4 文件传输过程 6 2.5 CRC的计算 7 附录A 附录 8 A.1 附录 8 第1章 YModem协议简…...

ElasticSearch(ES)8.1及Kibana在docker环境下如何安装

ES基本信息介绍 Elasticsearch&#xff08;简称ES&#xff09;是一个开源的分布式搜索和分析引擎&#xff0c;最初由Elastic公司创建。它属于Elastic Stack&#xff08;ELK Stack&#xff09;的核心组件之一&#xff0c;用于实时地存储、检索和分析大量数据。 以下是Elastics…...

常用Win32 API的简单介绍

目录 前言&#xff1a; 控制控制台程序窗口的指令&#xff1a; system函数&#xff1a; COORD函数&#xff1a; GetStdHandle函数&#xff1a; GetConsoleCursorInfo函数&#xff1a; CONSOLE_CURSOR_INFO函数&#xff1a; SetConsoleCursorInfo函数&#xff1a; SetC…...

VM及WindowsServer安装

目录 一.操作系统的简介及常用的操作系统 二.windows的安装 安装VMWare虚拟机 注意点一 ​编辑 注意点二 三.安装配置Windows Server 2012 R2 四、虚拟机的环境配置及连接 1. 主机连接虚拟机 2. 虚拟机环境配置及共享 3. 环境配置 一.操作系统的简介及常用的操作系…...

操作系统【OS】调度算法对比图

FCFS SJF 高响应比 时间片轮转 多级反馈队列 可抢占&#xff1f; √ √ √ 队列内算法不一定 不可抢占&#xff1f; √ √ √ 队列内算法不一定 特点&优点 公平实现简单有利于长作业不利于短作业有利于CPU繁忙作业不利于IO繁忙作业 因为CPU繁忙型进程即…...

音视频开发常见问题(五):视频黑屏

摘要 本文介绍了视频黑屏的可能原因和解决方案。主要原因包括用户主动关闭视频、网络问题和渲染问题。解决方案包括优化网络稳定性、确保视频渲染视图设置正确、提供清晰的提示、实时监测网络质量、使用详细的日志系统、开启视频预览功能、使用视频流回调、处理编解码问题、处…...

力扣 第 368 场周赛

2908. 元素和最小的山形三元组 I 给你一个下标从 0 开始的整数数组 nums 。 如果下标三元组 (i, j, k) 满足下述全部条件&#xff0c;则认为它是一个 山形三元组 &#xff1a; i < j < k nums[i] < nums[j] 且 nums[k] < nums[j] 请你找出 nums 中 元素和最小 的…...

突破窗口尺寸限制:WindowResizer如何重新定义Windows界面控制

突破窗口尺寸限制&#xff1a;WindowResizer如何重新定义Windows界面控制 【免费下载链接】WindowResizer 一个可以强制调整应用程序窗口大小的工具 项目地址: https://gitcode.com/gh_mirrors/wi/WindowResizer WindowResizer是一款专注于解决Windows窗口尺寸调整难题的…...

trackerjacker硬件推荐:选择最佳无线网卡提升监控效果

trackerjacker硬件推荐&#xff1a;选择最佳无线网卡提升监控效果 【免费下载链接】trackerjacker Like nmap for mapping wifi networks youre not connected to, plus device tracking 项目地址: https://gitcode.com/gh_mirrors/tr/trackerjacker trackerjacker是一款…...

Zotero Reference学术文献管理工具全攻略:从入门到精通

Zotero Reference学术文献管理工具全攻略&#xff1a;从入门到精通 【免费下载链接】zotero-reference PDF references add-on for Zotero. 项目地址: https://gitcode.com/gh_mirrors/zo/zotero-reference 一、核心价值&#xff1a;重构学术文献管理流程 节省70%文献整…...

优化Blazor渲染逻辑的实践

在Blazor应用程序开发中,页面渲染逻辑的优化是提升用户体验的重要环节。特别是当页面包含多个条件渲染的组件时,如何高效地控制渲染流程成为了一个关键问题。本文将通过一个实际的案例,展示如何在Blazor中使用RenderFragment和return语句来优化页面渲染逻辑。 背景 假设我…...

Swin2SR在AR/VR中的应用:3D素材高清化处理

Swin2SR在AR/VR中的应用&#xff1a;3D素材高清化处理 1. 引言 在增强现实和虚拟现实的世界里&#xff0c;视觉体验就是一切。当你戴上AR眼镜或VR头盔&#xff0c;看到的每一个细节都直接影响着沉浸感的真实性。但现实往往很骨感——很多3D素材因为历史原因或技术限制&#x…...

LightOnOCR-2-1B实操手册:Gradio界面上传限制绕过与Base64编码调试技巧

LightOnOCR-2-1B实操手册&#xff1a;Gradio界面上传限制绕过与Base64编码调试技巧 1. 开篇&#xff1a;为什么需要绕过Gradio上传限制&#xff1f; 如果你用过LightOnOCR-2-1B的Gradio界面&#xff0c;可能会遇到这样的困扰&#xff1a;上传大一点的图片就报错&#xff0c;或…...

Project Quay镜像签名与验证:保障软件供应链安全的完整指南

Project Quay镜像签名与验证&#xff1a;保障软件供应链安全的完整指南 【免费下载链接】quay Build, Store, and Distribute your Applications and Containers 项目地址: https://gitcode.com/gh_mirrors/quay/quay 在当今云原生时代&#xff0c;容器镜像已成为软件交…...

嵌入式开发者必看:GitHub高星项目实战解析

1. 嵌入式开发者不可错过的GitHub高星项目盘点作为一名在嵌入式领域摸爬滚打多年的开发者&#xff0c;我深知优质开源项目对技术成长的重要性。GitHub这个宝藏平台上其实藏着不少嵌入式相关的精品项目&#xff0c;今天我就带大家深度剖析几个值得研究的项目&#xff0c;并分享我…...

Windows下OpenClaw极简安装:Qwen3.5-9B-AWQ-4bit镜像10分钟体验

Windows下OpenClaw极简安装&#xff1a;Qwen3.5-9B-AWQ-4bit镜像10分钟体验 1. 为什么选择这个组合&#xff1f; 最近在折腾本地AI自动化时&#xff0c;发现很多工具要么配置复杂&#xff0c;要么对硬件要求太高。直到遇到OpenClawQwen3.5-9B-AWQ-4bit这个组合&#xff0c;才…...

RK3568实战:用QEMU在x86电脑上模拟构建和调试ARM64 Ubuntu 22.04根文件系统

RK3568开发实战&#xff1a;基于QEMU的ARM64根文件系统高效构建与调试指南 引言 在嵌入式Linux开发领域&#xff0c;RK3568作为一款性能优异的四核Cortex-A55处理器&#xff0c;正被广泛应用于各类智能硬件设备。传统开发流程中&#xff0c;开发者往往需要在物理开发板上反复刷…...