2024ICPC网络赛第一场C. Permutation Counting 4(线性代数)

embedded/2024/9/24 9:48:09/

题目链接

题目大意:给你n个范围[ l i , r i l_i,r_i li,ri],每个位置可以在这个范围中选择一个数,然后形成排列1到n的排列p。问p的所有情况的个数的奇偶性。

一个很妙的行列式转化,纯纯的线性代数
首先,我们把p的总数表示出来。设矩阵 a i , j a_{i,j} ai,j,表示的是第 i 个 i个 i位置的是否可以表示 j j j。则p的所有可能为 ∑ p Π i = 1 n a i , P i \sum\limits_{p}\mathop{\Pi}\limits_{i=1}^{n}a_{i,Pi} pi=1Πnai,Pi
其中p表示所有排列方式的总和。发现这是近似于矩阵a的行列式的值,不过去掉了其正负号。(在取模2的影响下,综合的加减没有影响)也就是说,只要我们求矩阵 a a a的行列式的值 m o d 2 mod\ 2 mod 2,就可以解出最终解。
根据矩阵的性质,矩阵的行列式 m o d 2 mod\ 2 mod 2 0 0 0,等价于该矩阵 m o d 2 mod\ 2 mod 2下不可逆,也等价于该矩阵 m o d 2 mod\ 2 mod 2下的每一行的向量存在线性相关,也就是存在其中一个向量可以被其它向量表示。

至此,我们终于该题从看不懂的样子转化成了看起来像人话的子问题了。让我们解决这个子问题。每一个位置的向量[ l i , r i l_i,r_i li,ri]我们可以通过 r i − ( l i − 1 ) r_i-(l_{i}-1) ri(li1)表示,然后通过并查集判断出该向量能否通过其它向量表示。

int n,m;int pre[1000005];int find (int x){if(pre[x]==x)return x;else return pre[x]=find(pre[x]);
}void icealsoheat(){cin>>n;for(int i=0;i<=n;i++)pre[i]=i;int ans=1;for(int i=1;i<=n;i++){int l,r;cin>>l>>r;l=find(l-1);r=find(r);if(l==r){ans=0;// break;}else{pre[l]=r;}}cout<<ans<<"\n";}

http://www.ppmy.cn/embedded/116032.html

相关文章

排序算法C++

冒泡排序 冒泡排序是一种简单直观的排序算法&#xff0c;它通过多次遍历列表&#xff0c;逐步将最大&#xff08;或最小&#xff09;的元素“冒泡”到列表的末尾。其名称源于算法的运行方式&#xff1a;较大的元素逐渐向上浮动&#xff0c;就像水中的气泡一样。 工作原理 遍…

ChatGPT 推出“Auto”自动模式:智能匹配你的需求

OpenAI 最近为 ChatGPT 带来了一项新功能——“Auto”自动模式&#xff0c;这一更新让所有用户无论使用哪种设备都能享受到更加个性化的体验。简单来说&#xff0c;当你选择 Auto 模式后&#xff0c;ChatGPT 会根据你输入的提示词复杂程度&#xff0c;自动为你挑选最适合的AI模…

生物信息学中的pipeline到底是什么?

在生物信息学中&#xff0c;pipeline&#xff08;管道或工作流程&#xff09;是指一系列自动化的计算步骤&#xff0c;用来处理、分析生物数据。由于生物信息学涉及大量复杂且多步骤的数据分析过程&#xff0c;pipeline 的出现大大提高了分析效率和结果的可重复性。 Pipeline的…

鸿蒙_异步详解

参考详细链接&#xff1a; 鸿蒙HarmonyOS异步并发开发指南

使用Hutool-poi封装Apache POI进行Excel的上传与下载

介绍 Hutool-poi是针对Apache POI的封装&#xff0c;因此需要用户自行引入POI库,Hutool默认不引入。到目前为止&#xff0c;Hutool-poi支持&#xff1a; Excel文件&#xff08;xls, xlsx&#xff09;的读取&#xff08;ExcelReader&#xff09;Excel文件&#xff08;xls&…

java逃逸分析

概念 对象逃逸分析&#xff1a;是一种有效减少Java程序中同步负载和内存堆分配压力的跨函数全局数据流分析算法。通过逃逸分析&#xff0c;Java虚拟机能够分析出一个新的对象的引用范围从而决定是否要将这个对象分配到堆上。Java1.7后默认开启逃逸分析的选项。Java的JIT编译器…

微服务--Gateway网关

在微服务架构中&#xff0c;Gateway&#xff08;网关&#xff09;是一个至关重要的组件&#xff0c;它扮演着多种关键角色&#xff0c;包括路由、负载均衡、安全控制、监控和日志记录等。 Gateway网关的作用 统一访问入口&#xff1a; Gateway作为微服务的统一入口&#xff0c…

Gradio离线部署到内网,资源加载失败问题(Gradio离线部署问题解决方法)

问题描述 Gradio作为一个快速构建一个演示或Web应用的开源Python包&#xff0c;被广泛使用&#xff0c;最近在用这个包进行AI应用构建&#xff0c;打包部署到内网Docker的时候发现有些资源无法使用。网页加载不出来。即使加载出来了也是没有样式无法点击的。 一般出现这个问题…