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

D. Triangle Coloring【组合数学,乘法逆元】

链接
分析
题目要求我们去求出最优的染色的方法数。首先什么时候是最优的,这里只有两种颜色,不可能取到三条边,即蓝色为B,红色为R,有BBB,RRR,BBR,RRB四种组合,显然最多的就是取两条边,我们想取到所有的最大的两条该如何求组合呢,我们将染色分成2R1B,和2B1R,两者数目相同各占一半就可以了,对于所有的三角形,我们的两种染色方法的分配总共有如下方法.
(n3n6)(\begin{matrix}\frac {n}{3}\\ \frac {n}{6}\end{matrix})(3n6n)
但是仅仅是这样还是不够的,对于这样的分配方案中,每个具体的三角形的内的染色方案还没有确定,例如如果是等边三角形,那么就可以有三种染色方案,可以保留任意两条边,根据乘法原理,对于每一种上面的三角形2R1B或者2B1R的分配方案,我们三角形内部的具体的排列方案有,我们把内部可以取的方案数记作ci,ci可以取1,2,3,看最小的边有几条
∏i=1n3ci\prod_{i=1}^{\frac{n}{3}}c_ii=13nci
故最终的方法数是
(n3n6)∏i=1n3ci(\begin{matrix}\frac {n}{3}\\ \frac {n}{6}\end{matrix})\prod_{i=1}^{\frac{n}{3}}c_i(3n6n)i=13nci
理论基础
1、乘法逆元:
众所周知,乘法逆元有三种计算方法,扩展欧几里得,费马小定理,还有递推求解。其中费马小定理最简单。对于正整数a,和质数b
ab−1modb≡1a^{b-1}mod~b\equiv 1ab1mod b1
这个定理在a,b互质的时候成立,b如果是素数的时候必然成立,由于我们是在乘积运算中得到的,而且所有的运算均mod b所以a必然不可能b,所以是一定成立的。
a⋅ab−2modb≡1a·a^{b-2}mod~b\equiv 1aab2mod b1
可以知晓,a^b-2是a的在模b的
利用快速幂可以得到逆元,时间复杂度是O(logb)int范围30次左右

ll po(ll rad, ll idx) {ll res = 1;while (idx) {if (idx & 1) res *= id, res %= p;rad *= rad, rad %= p;idx >>= 1; }return res;
}
ll inv(ll x) {return po(x, p - 2);
}

实现

#include <bits/stdc++.h>
#define ll long long
#define ls (p << 1)
#define rs (p << 1 | 1)
#define inf 0x3f3f3f3f
#define INF 0x3f3f3f3f3f3f3f3f
using namespace std;
typedef pair<int, int> PII;
const int N = 2e5 + 5, p = 998244353;
int vis[N];
ll po(ll rad, ll idx) {ll res = 1;while (idx) {if (idx & 1) res *= rad, res %= p;rad *= rad, rad %= p;idx >>= 1; }return res;
}
ll inv(ll x) {return po(x, p - 2);
}
void solve() {int n;cin >> n;ll x = 1, y = 1;for (int i = n / 3; i >= n / 3 - n / 6 + 1; i--) {x *= i, x %= p;//从n一直乘到n-m+1 y *= n / 3 + 1 - i, y %= p;//从1一直乘到m } ll c = x * inv(y) % p;//组合数ll ans = 1;for (int i = 0; i < n / 3; i++) {int a[3];cin >> a[0] >> a[1] >> a[2];sort(a, a + 3);ll cnt = 0;for (int j = 0; j < 3; j++) {if (a[j] == a[0]) cnt++;}ans *= cnt, ans %= p;} cout << ans * c % p << '\n';
}
int main(){ios::sync_with_stdio(false);cin.tie(0);int T = 1;
//	cin >> T;while (T--) solve();return 0;
}

相关文章:

D. Triangle Coloring【组合数学,乘法逆元】

链接 分析 题目要求我们去求出最优的染色的方法数。首先什么时候是最优的&#xff0c;这里只有两种颜色&#xff0c;不可能取到三条边&#xff0c;即蓝色为B&#xff0c;红色为R&#xff0c;有BBB,RRR,BBR,RRB四种组合&#xff0c;显然最多的就是取两条边&#xff0c;我们想取到…...

【读论文】AttentionFGAN

【读论文】AttentionFGAN介绍网络架构提取红外图像目标信息的网络辨别器损失函数生成器损失函数辨别器损失函数总结参考论文&#xff1a; https://ieeexplore.ieee.org/document/9103116/如有侵权请联系博主介绍 好久没有读过使用GAN来实现图像融合的论文了&#xff0c;正好看…...

ClickHouse 配置文件使用说明

本文主要介绍 ClickHouse 的配置文件。在 ClickHouse 中配置主要分为两类&#xff0c;一类是负责 server 端配置的&#xff0c;另一类是负责用户端配置的。负责 server 端配置的一般会放在 config.xml 文件中&#xff0c;负责用户端配置的一般会放在 users.xml 文件中。当然如果…...

如果不是互联网人,谁会找到这些神器?

一、上线啦 你肯定该问了&#xff0c;这个是什么鬼东西。它本来是一个创建自己网站的网站。 现在使用它可以创建自己的小程序&#xff0c;又不是有点小厉害了。 而且功能强大&#xff0c;还支持微信支付&#xff0c;分销&#xff0c;优惠券&#xff0c;营销等多种功能。 还有多…...

Neo4j优化

使用参数 查询参数 :params设置参数 :param actorName: Tom Hanks参数的冒号后要用空格使用参数用 $ MATCH (p:Person)-[:ACTED_IN]->(m:Movie) WHERE p.name $actorName RETURN m.released AS releaseDate,m.title AS title ORDER BY m.released DESC多个参数 MATCH (p:Pe…...

CF1692G 2^Sort 题解

CF1692G 2^Sort 题解题目链接字面描述题面翻译题目描述输入格式输出格式样例 #1样例输入 #1样例输出 #1提示思路代码实现题目 链接 https://www.luogu.com.cn/problem/CF1692G 字面描述 题面翻译 给你一个长度为 n(∑n<2⋅105)n \ (\sum n < 2\cdot 10^5)n (∑n<…...

关于物理像素,逻辑像素,像素比

关于物理像素、逻辑像素&#xff08;css像素&#xff09;、分辨率、像素比的超详细讲解 在日常生活中&#xff0c;有这样一个问题。同样的图片为什么在不同的设备上显示的大小是不一样的。&#x1f912;带着这个问题来说明一下。 一、物理像素 设备刚生产出来就已经固定了&a…...

JavaSE基础部分总结

JavaSe基础部分 文章目录JavaSe基础部分1.命名规范2.基本的数据类型3.方法3.1方法的基本格式3.2 方法的分类3.3 方法的注释4.数组4.1 数组的命名格式4.2 数组中存在的址交换的操作4.3数组Arrays常用的方法1. Arrays.asList(数组作为参数或者数据作为参数)&#xff1a;2.Arrays.…...

C++基础知识

目录类和对象C static_cast、dynamic_cast、const_cast和reinterpret_cast1、为什么要引入这四种类型转化&#xff1f;2、应用场景。C/C类型转换的本质struct和class的区别为什么会诞生面向对象的编程思想析构函数的执行时机初始化 const 成员变量C const对象&#xff08;常对象…...

2023/2/24 图数据库Neo4j的理解与应用

1 什么是图数据库&#xff08;graph database&#xff09; 十大应用案例&#xff1a;https://go.neo4j.com/rs/710-RRC-335/images/Neo4j-Top-Use-Cases-ZH.pdf “大数据”每年都在增长&#xff0c;但如今的企业领导者不仅需要管理更大规模的数据&#xff0c;还迫切需要从现有…...

适合视力障碍者的Linux

导读有哪些最适合视障用户的 Linux 发行版&#xff1f;让我们一起来看看。 如果有人视力障碍或失明&#xff0c;他们可能会依赖声音提示或其他交互方式&#xff08;如盲文&#xff09;来阅读和交流。 他们怎样才能使用 Linux 发行版&#xff1f; 嗯&#xff0c;一般来说&…...

Tina Linux 存储开发指南

Tina Linux 存储开发指南 1 概述 1.1 编写目的 介绍TinaLinux Flash&#xff0c;分区&#xff0c;文件系统等存储相关信息&#xff0c;指导方案的开发定制。 1.2 适用范围 Tina V3.0 及其后续版本。 1.3 相关人员 适用于TinaLinux 平台的客户及相关技术人员。 2 分区管…...

【洛谷 P2670】[NOIP2015 普及组] 扫雷游戏 题解(模拟)

[NOIP2015 普及组] 扫雷游戏 题目背景 NOIP2015 普及组 T2 题目描述 扫雷游戏是一款十分经典的单机小游戏。在 nnn 行 mmm 列的雷区中有一些格子含有地雷&#xff08;称之为地雷格&#xff09;&#xff0c;其他格子不含地雷&#xff08;称之为非地雷格&#xff09;。玩家翻…...

【nohup引发磁盘读写高】nohup命令导致服务器磁盘读写占满该如何修复?

【写在前面】自己在跑一个项目的时候&#xff0c;猛然发现服务器挂了&#xff0c;直接访问不了&#xff0c;呈现出一种卡死现象&#xff0c;我当时都懵了&#xff0c;难道阿里在后端升级&#xff0c;也不会选择在工作日的时间升级吧&#xff0c;于是乎就咨询了一下客服。才有下…...

MySQL(二)索引和SQL优化

MySQL进阶MySQL体系结构存储引擎存储引擎特点InnoDB逻辑存储结构MyISAMMemory存储引擎选择索引索引结构二叉树B-TreeBTreeHash索引分类索引语法SQL性能分析工具SQL执行频率慢查询日志profile详情explain索引使用联合索引索引失效情况SQL提示覆盖索引前缀索引单列索引与联合索引…...

Java常用日期类(包含三代)_Date类及Calendar类等

一.java.util.Date类概述从JDK 1.0出现。表示一个日期和时间&#xff0c;精确到毫秒&#xff0c;内部getTime()从1970年1月1号开始算。1. java.util.Date类构造部份构造已经过时&#xff0c;重点看以下两个构造。public Date()从运行程序的此时此刻到时间原点经历的毫秒值&…...

计算机网络你都懂了吗

文章目录一、计算机网络的定义简单定义通用定义二、计算机网络通信过程三、什么是网络协议&#xff08;Protocol&#xff09;四、网络协议组成及功能一、计算机网络的定义 简单定义 计算机网络是一些相互连接的、自治的计算机系统的集合。 通用定义 将处于不同位置并具有独…...

3.4 Spring Boot 日志配置

第3章 Spring Boot 的系统配置 3.1 Spring Boot 系统配置文件 3.2 Spring Boot 自定义配置项 3.3 Spring Boot 其他配置 3.4 Spring Boot 日志配置 3.5 实战&#xff1a;Spring Boot 实现系统多环境配置 3.4 Spring Boot 日志配置 日志对于系统监控、故障定位非常重要&#xf…...

3款百里挑一的国产软件,逆天好用,装了就舍不得卸载

推荐3款让你偷懒&#xff0c;让你上头的提效电脑软件&#xff0c;个个功能强大&#xff0c;让你远离加班&#xff01; 很多几个小时才能做好的事情&#xff0c;用上它们&#xff0c;只需要5分钟就行&#xff01;&#xff01; 1、JNPF快速开发平台 JNPF 是一款精巧耐用的软件…...

Java实现在线沟通功能

文章目录1、介绍 和 特点2、整合SpringBoot2.1、导入依赖2.2、websocket 配置类2.3、消息处理类2.4、启动服务2.5、前端代码&#xff1a;张三2.6、前端代码&#xff1a;李四3、效果4、小结1、介绍 和 特点 t-io是基于JVM的网络编程框架&#xff0c;和netty属同类&#xff0c;所…...

全球首个30米分辨率湿地数据集(2000—2022)

数据简介 今天我们分享的数据是全球30米分辨率湿地数据集&#xff0c;包含8种湿地亚类&#xff0c;该数据以0.5X0.5的瓦片存储&#xff0c;我们整理了所有属于中国的瓦片名称与其对应省份&#xff0c;方便大家研究使用。 该数据集作为全球首个30米分辨率、覆盖2000–2022年时间…...

质量体系的重要

质量体系是为确保产品、服务或过程质量满足规定要求&#xff0c;由相互关联的要素构成的有机整体。其核心内容可归纳为以下五个方面&#xff1a; &#x1f3db;️ 一、组织架构与职责 质量体系明确组织内各部门、岗位的职责与权限&#xff0c;形成层级清晰的管理网络&#xf…...

1.3 VSCode安装与环境配置

进入网址Visual Studio Code - Code Editing. Redefined下载.deb文件&#xff0c;然后打开终端&#xff0c;进入下载文件夹&#xff0c;键入命令 sudo dpkg -i code_1.100.3-1748872405_amd64.deb 在终端键入命令code即启动vscode 需要安装插件列表 1.Chinese简化 2.ros …...

根据万维钢·精英日课6的内容,使用AI(2025)可以参考以下方法:

根据万维钢精英日课6的内容&#xff0c;使用AI&#xff08;2025&#xff09;可以参考以下方法&#xff1a; 四个洞见 模型已经比人聪明&#xff1a;以ChatGPT o3为代表的AI非常强大&#xff0c;能运用高级理论解释道理、引用最新学术论文&#xff0c;生成对顶尖科学家都有用的…...

Android Bitmap治理全解析:从加载优化到泄漏防控的全生命周期管理

引言 Bitmap&#xff08;位图&#xff09;是Android应用内存占用的“头号杀手”。一张1080P&#xff08;1920x1080&#xff09;的图片以ARGB_8888格式加载时&#xff0c;内存占用高达8MB&#xff08;192010804字节&#xff09;。据统计&#xff0c;超过60%的应用OOM崩溃与Bitm…...

人机融合智能 | “人智交互”跨学科新领域

本文系统地提出基于“以人为中心AI(HCAI)”理念的人-人工智能交互(人智交互)这一跨学科新领域及框架,定义人智交互领域的理念、基本理论和关键问题、方法、开发流程和参与团队等,阐述提出人智交互新领域的意义。然后,提出人智交互研究的三种新范式取向以及它们的意义。最后,总结…...

GitFlow 工作模式(详解)

今天再学项目的过程中遇到使用gitflow模式管理代码&#xff0c;因此进行学习并且发布关于gitflow的一些思考 Git与GitFlow模式 我们在写代码的时候通常会进行网上保存&#xff0c;无论是github还是gittee&#xff0c;都是一种基于git去保存代码的形式&#xff0c;这样保存代码…...

【Linux】Linux 系统默认的目录及作用说明

博主介绍&#xff1a;✌全网粉丝23W&#xff0c;CSDN博客专家、Java领域优质创作者&#xff0c;掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域✌ 技术范围&#xff1a;SpringBoot、SpringCloud、Vue、SSM、HTML、Nodejs、Python、MySQL、PostgreSQL、大数据、物…...

给网站添加live2d看板娘

给网站添加live2d看板娘 参考文献&#xff1a; stevenjoezhang/live2d-widget: 把萌萌哒的看板娘抱回家 (ノ≧∇≦)ノ | Live2D widget for web platformEikanya/Live2d-model: Live2d model collectionzenghongtu/live2d-model-assets 前言 网站环境如下&#xff0c;文章也主…...

系统掌握PyTorch:图解张量、Autograd、DataLoader、nn.Module与实战模型

本文较长&#xff0c;建议点赞收藏&#xff0c;以免遗失。更多AI大模型应用开发学习视频及资料&#xff0c;尽在聚客AI学院。 本文通过代码驱动的方式&#xff0c;系统讲解PyTorch核心概念和实战技巧&#xff0c;涵盖张量操作、自动微分、数据加载、模型构建和训练全流程&#…...