首页 > 编程语言 >2023“钉耙编程”中国大学生算法设计超级联赛(4)Number Table

2023“钉耙编程”中国大学生算法设计超级联赛(4)Number Table

时间:2023-07-27 23:25:44浏览次数:42  
标签:钉耙 方案 数为 Number times 异或 第二行 Table underline

题意

对于一个\(2\times n\)的矩阵,若每行每列数均不同且均\(\in[0,2^k)\),同时\(2n\)个数异或和为\(0\)则称该矩阵合法。给定\(n,k\),求总方案数。

做法

考虑若只有一行,即求\(n\)个不相同的数异或和为\(0\)的方案数:
假定前\(n-1\)个数不同且已确定,此时仅需考虑第\(n\)个数是否在前面已经出现过,容斥即可,令\(f_n\)为\(n\)个不相同的数异或和为\(0\)的方案数,有

\[f_n=(2^k)^{\underline{n-1}}-(n-1)\times f_{n-2}\times [2^k=(n-2)] \]

思考原问题,假定第一行与第二行有\(i\)对数相同,那么无论这\(i\)对数的位置如何,此时的方案数为

\[f_{2\times(n-i)}\times [2^k-2\times(n-i)]^{\underline{i}} \]

那么现在仅需求\(i\)对数的位置的方案数,注意无论第一行位置如何,第二行位置的方案数相同,令第二行位置方案数为\(num\),则方案数为

\[{n\choose i}\times num \]

现在将问题转化为:

有\(m\)个不同的整数\(a_i\in[1,n]\)且\(a_i\neq i\)的方案数(\(m\le n\))

这个问题可以用\(\text{dp}\)在\(O(m^3)\)复杂度解决,由于转移过程十分复杂在此不详细展开。

应该有低于\(O(m^3)\)复杂度的做法,如果方便麻烦赐教

综上,令方案数\(num\)为\(g_i\),题目所求答案为:

\[\sum\limits_{i=0}^n f_{2\times (n-i)}\times [2^k-2\times(n-i)]^{\underline{i}}\times {n\choose i}\times g_i \]

标签:钉耙,方案,数为,Number,times,异或,第二行,Table,underline
From: https://www.cnblogs.com/Grice/p/17586314.html

相关文章

  • n stable报错curl: (7) Failed to connect to nodejs.org port 443: Connection refus
    nstable报错curl:(7)Failedtoconnecttonodejs.orgport443:ConnectionrefusedError:failedtodownloadversionindex(https://nodejs.org/dist/index.tab)使用淘宝源exportN_NODE_MIRROR=https://npm.taobao.org/mirrors/nodenstable......
  • ChatGPT 在JavaScript中,由于Number类型只能表示52位精度,因此默认情况下无法进行超过16
    ChatGPT在JavaScript中,由于Number类型只能表示52位精度,因此默认情况下无法进行超过16位的乘法运算。但是,你可以使用BigInt来处理大数字。BigInt是目前JavaScript中处理超出Number精度限制的数字的最佳方式。它是一种新的数据类型,可以表示任意精度的整数。以下是一种解决方案:1.......
  • Debian 11 安装Nginx最新stable版本
    其实官方文档已经很清楚了,我写这个文档只是为了记录下安装过程#Installtheprerequisites:aptinstallcurlgnupg2ca-certificateslsb-releasedebian-archive-keyring-y#Importanofficialnginxsigningkeysoaptcouldverifythepackagesauthenticity.Fetch......
  • 用 Rust 生成 Ant-Design Table Columns
    经常开发表格,是不是已经被手写Ant-DesignTable的Columns整烦了?尤其是ToB项目,表格经常动不动就几十列。每次照着后端给的接口文档一个个配置,太头疼了,主要是有时还会粘错就尴尬了。那有没有办法能自动生成columns配置呢?当然可以。目前后端的接口文档一般是使用Swagger来生成的,S......
  • ip6tables
    ip6tableslinux中防火墙软件补充说明ip6tables命令和iptables一样,都是linux中防火墙软件,不同的是ip6tables采用的TCP/ip协议为IPv6。语法ip6tables(选项)选项-t<表>:指定要操纵的表;-A:向规则链中添加条目;-D:从规则链中删除条目;-i:向规则链中插入条目;-R:替换规则链中的条目......
  • ip6tables-save
    ip6tables-save保存ip6tables表配置补充说明ip6tables-save命令将Linux内核中ip6tables表导出到标准输出设备上。语法ip6tables-save(选项)选项-c:指定在保存iptables表时,保存当前的数据包计数器和字节计数器值;-t:指定要保存的表的名称。......
  • iptables-restore
    iptables-restore还原iptables表的配置补充说明iptables-restore命令用来还原iptables-save命令所备份的iptables配置。语法iptables-restore(选项)选项-c:指定在还原iptables表时候,还原当前的数据包计数器和字节计数器的值;-t:指定要还原表的名称。实例iptables-restor......
  • docker如何利用iptables限制外网访问
    先看官网:点击跳转如果有问题,也别来问我,我也不懂,下面自己感悟一下,或者有iptables的大佬,欢迎指教还有什么问题,想咨询的,加群:582337768。这个群不是我的,但是我在里面,但是还是那句话,我也不懂。然后开始了,首先使用DOCKER-USER的chain来进行操作。DOCKER-USER该chain在ubuntu下面,......
  • vxe-table 分页后序号连续
    需求使用vxe-table分页后,序号连续。比如每页显示10条数据,点击第2页,序号从11起算。问题依照官网vxe-table-序号修改后,出现两个问题:分页后序号还是不连续;点击第2页,虽然显示的是第2页的数据,但是分页区域的当前页还是1。methods:{/*自定义序号显示*/......
  • iptables
    一、iptables简介iptables是linux自带的一款防火墙工具,它能帮助我们基于规则完成数据包过滤、数据包重定向和网络地址转换功能。   严格的说,iptables其实不是真正的防火墙,我们可以把它理解成一个客户端代理,用户通过iptables这个代理,将用户的安全设定执行到对应的”安全框架......