P4921 题解

news/2024/5/17 9:44:50

link

Hint:错排计数。

\(ans_k=C_n^k\times A_n^k\times 2^k\times g(n-k)\)

\(g(i)\) 代表 \(i\) 对情侣全部错开的方案数。

解释一下 \(ans_k\) 的表达。

我们从 \(n\) 对情侣中无序地抽出 \(k\) 对情侣,有序地放到 \(k\) 排座位上,这里的方案数是 \(C_n^k\times A_n^k\)。由于两个相邻的人可以交换,所以需要 \(\times 2^k\)。对于剩下的 \(n-k\) 对情侣,必须要将他们全部错开,显然应该是乘法原理。

或者将 \(C_n^k\times A_n^k\) 视作有序地抽出 \(k\) 对情侣,无序地放到 \(k\) 排座位上也可。

现在考虑一下怎么求 \(g(i)\),我们选择递推的经典策略。

假设 \(i-1\) 对已经错排好,现在要加入第 \(i\) 对。先来讨论第 \(i\) 对的男生和前面的某一个男生坐在一起的情况,此时该座位的方案数有 \((n-1)\)。假如说他们的情侣坐在一起,那么这里的方案数为 \(2(n-1)\)\((n-1)\) 代表有 \((n-1)\) 个座位可以选择,\(2\) 代表两个人可以交换位置。对于剩下的 \(n-2\) 对情侣,只需要让他们错排即可,方案数为 \(g(n-2)\)。由于 \(n\) 对情侣中的每一对都可以座位新加入的,所以总方案数还要乘上一个 \(n\)

当女生坐在一起时同理。对于一男一女坐在一起的情况,总体仍与上面一致,只不过加入这一男一女时的方案数是 \(2(n-1)\),代表第一个人可以是男也可以是女。

具体见下图:

得到 \(g(n)=4n(n − 1)(2(n − 1)g(n − 2) + g(n − 1))\)

递推即可。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.gwqt.cn/news/28497.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

爬虫概述

一、什么是爬虫 爬虫(Crawler)是一种按照既定规则,在网络上自动爬取信息的程序或脚本。也称为网际网路蜘蛛(Internet Spider)或网络机器人(Web Robot)。爬虫可以自动抓取网络信息,主要用于网站数据采集、内容监测等。 二、爬虫能做什么 1、搜索引擎 搜索引擎利用爬虫发现网络上…

idea在类和接口上面自动生成注释

详细教程:https://www.cnblogs.com/ya-qiang/p/9462766.html 1、 File >> Settings… >> Editor >> File and Code Templates /*** @Auther: Zxd* @Date: ${YEAR}/${MONTH}/${DAY} ${TIME}* @Description:*/

程序员天天 CURD,怎么才能成长,职业发展的思考 ?

前言 关于程序员成长的话题,我前面写过一篇文章 - 程序员天天CURD,职业生涯怎么发展的思考。 现在回头看,对程序员这个职业发展的认识以及怎么发展还是有一些局限性。有一句话是这么说的:人的成长就是不断认为以前的自己是一个“傻逼”的过程。这句话用词很激烈但成长也许就…

从零开始:Django项目的创建与配置指南

title: 从零开始:Django项目的创建与配置指南 date: 2024/5/2 18:29:33 updated: 2024/5/2 18:29:33 categories:后端开发tags:Django WebDev Python ORM Security Deployment OptimizationDjango简介: Django是一个开源的高级Python Web框架,由法国人Guido Zempe于2003年创…

db.create_all() 报错上下文?flask_sqlalchemy创建数据库找不到上下文?

问题报错: RuntimeError: Working outside of application context.This typically means that you attempted to use functionality that needed the current application. To solve this, set up an application context with app.app_context(). See the documentation for…

csrf-基于Pikachu的学习

CSRF-跨站请求伪造 CSRF的原理 CSRF攻击即Cross-site request forgery,跨站请求伪造,直白来说就是恶意网站伪装成用户,向被害网站发起操作请求。用户输入账号信息请求登录A网站。 A网站验证用户信息,通过验证后返回给用户一个cookie 在未退出网站A之前,在同一浏览器中请求…

使用LinkAI创建AI智能体,并快速接入到微信/企微/公众号/钉钉/飞书..

LinkAI 作为企业级一站式AI Agent 智能体搭建与接入平台,可以使用LinkAI创建专属智能体,并将它连接到并快速接入到微信/企微/公众号/钉钉/飞书/web等​ LinkAI 作为企业级一站式AI Agent 智能体搭建与接入平台,不仅为用户和客户提供能够快速搭建具备行业知识和个性化设定的 …