luoguP4921 情侣?给我烧了!】的更多相关文章

luogu 考虑对于\(n\)对情侣,恰好\(k\)对是和谐的方案数是 \[ ans[n][k]=\binom{n}{k}A^k_n2^kg(n-k) \] \(g(n)\)为全部\(n\)对情侣不和谐的方案数 容易知道去掉所有合法的就是不合法的 \[ g(n)=(2n)!-\sum_{i=1}^{n}ans[n][i] \] 这样我们就可以在\(O(n^2)\)的时间内预处理出所有答案 代码: #include<cstdio> #include<iostream> #includ…
Code: #include <cstdio> #include <algorithm> #include <cstring> #define setIO(s) freopen(s".in","r",stdin),freopen(s".out","w",stdout) #define mod 998244353 #define ll long long #define maxn 2002 u…
正解:数论 解题报告: 传送门 这题,想不到就很痛苦,但是理解了之后还是觉得也没有很难,,,毕竟实现不难QAQ 首先关于前面k对情侣的很简单,就是C(n,k)*C(n,k)*A(k,k)*2k 随便解释下,就是选座位*选情侣*情侣选座位*情侣之间换左右位置 然后难点大概在于后面的(n-k)对不能在一起的怎么求方案数 就考虑,dp,设f[i]:i对情侣的情况 然后随便选一排,显然选人有(2*i)*(2*i-2) 那对他们的情侣,有两种可能 一种是他们的情侣就坐一块儿了,于是就是(i-1)*2*f[…
洛谷 P2194 HXY烧情侣[Tarjan缩点] 分析+题解代码 题目描述: 众所周知,HXY已经加入了FFF团.现在她要开始喜(sang)闻(xin)乐(bing)见(kuang)地烧情侣了.这里有n座电影院,n对情侣分别在每座电影院里,然后电影院里都有汽油,但是要使用它需要一定的费用.m条单向通道连接相邻的两对情侣所在电影院.然后HXY有个绝技,如果她能从一个点开始烧,最后回到这个点,那么烧这条回路上的情侣的费用只需要该点的汽油费即可.并且每对情侣只需烧一遍,电影院可以重复去.然后她想花尽…
题目描述 众所周知,\(HXY\)已经加入了\(FFF\)团.现在她要开始喜\((sang)\)闻\((xin)\)乐\((bing)\)见\((kuang)\)地烧情侣了.这里有\(n\)座电影院,\(n\)对情侣分别在每座电影院里,然后电影院里都有汽油,但是要使用它需要一定的费用.\(m\)条单向通道连接相邻的两对情侣所在电影院.然后\(HXY\)有个绝技,如果她能从一个点开始烧,最后回到这个点,那么烧这条回路上的情侣的费用只需要该点的汽油费即可.并且每对情侣只需烧一遍,电影院可以重复去.然…
题目描述 众所周知,HXY已经加入了FFF团.现在她要开始喜(sang)闻(xin)乐(bing)见(kuang)地烧情侣了.这里有n座电影院,n对情侣分别在每座电影院里,然后电影院里都有汽油,但是要使用它需要一定的费用.m条单向通道连接相邻的两对情侣所在电影院.然后HXY有个绝技,如果她能从一个点开始烧,最后回到这个点,那么烧这条回路上的情侣的费用只需要该点的汽油费即可.并且每对情侣只需烧一遍,电影院可以重复去.然后她想花尽可能少的费用烧掉所有的情侣.问最少需要多少费用,并且当费用最少时的方案…
题目描述 众所周知,HXY已经加入了FFF团.现在她要开始喜(sang)闻(xin)乐(bing)见(kuang)地烧情侣了.这里有n座电影院,n对情侣分别在每座电影院里,然后电影院里都有汽油,但是要使用它需要一定的费用.m条单向通道连接相邻的两对情侣所在电影院.然后HXY有个绝技,如果她能从一个点开始烧,最后回到这个点,那么烧这条回路上的情侣的费用只需要该点的汽油费即可.并且每对情侣只需烧一遍,电影院可以重复去.然后她想花尽可能少的费用烧掉所有的情侣.问最少需要多少费用,并且当费用最少时的方案…
前言 当时和\(GYZ\)大佬一起做这个题,他表示这个题对他很不友好(手动滑稽) 题目描述 众所周知,\(HXY\) 已经加入了 \(FFF\) 团.现在她要开始喜(sang)闻(xin)乐(bing)见(kuang)地烧情侣了. 这里有 \(n\) 座电影院,\(n\) 对情侣分别在每座电影院里,然后电影院里都有汽油,但是要使用它需要一定的费用.\(m\) 条单向通道连接相邻的两对情侣所在电影院. \(HXY\) 有个绝技,如果她能从一个点开始烧,最后回到这个点,那么烧这条回路上的情侣的费用只…
[Luogu4931]情侣?给我烧了! 加强版(组合计数) 题面 洛谷 题解 戳这里 忽然发现我自己推的方法是做这题的,也许后面写的那个才是做原题的QwQ. #include<iostream> #include<cstdio> using namespace std; #define MAX 5000010 #define MOD 998244353 inline int read() { int x=0;bool t=false;char ch=getchar(); while…
[Luogu4921]情侣?给我烧了!(组合计数) 题面 洛谷 题解 很有意思的一道题目. 直接容斥?怎么样都要一个平方复杂度了. 既然是恰好\(k\)对,那么我们直接来做: 首先枚举\(k\)对人出来\(\displaystyle {n\choose k}\),然后枚\(k\)排座位出来\(\displaystyle {n\choose k}\),这些人间的顺序关系\(k!\),然后这些人可以左右交换\(2^{k}\). 好的,现在的问题转化为了剩下\(n-k\)对人,两两之间不能坐在一排,求…
首先请允许我吐槽一下这个题面 这个题面透露出血腥与暴力,电影院里还藏汽油 所以情侣们,要是想看电影就在家里看吧 毕竟出来容易被烧 在家里看虽然观影效果不如在电影院里 但是, 起码咱生命安全啥的有保障啊 题面 思路: tarjan 注意方案数是乘法原理 #include <cstdio> #include <iostream> using namespace std; ; ; ], cnt, w[N], m, dfn[N], low[N], tot, top, stac[N], an…
火题小战 C. 情侣?给我烧了! 题目描述 有 \(n\) 对情侣来到电影院观看电影.在电影院,恰好留有 \(n\) 排座位,每排包含 \(2\) 个座位,共 \(2×n\) 个座位. 现在,每个人将会随机坐在某一个位置上,且恰好将这 \(2 × n\) 个座位坐满. 如果一对情侣坐在了同一排的座位上,那么我们称这对情侣是和睦的. 你的任务是求出共有多少种不同的就坐方案满足恰好有 \(k\) 对情侣是和睦的. 两种就坐方案不同当且仅当存在一个人在两种方案中坐在了不同的位置.不难发现,一共会有 \…
Problem 简单版 & 加强版 题目概要(其实题面写得很清楚,这里搬运一下): \(n\) 对情侣排座位,恰有 \(n\) 排座位,每排 \(2\) 个座位,在一个就座方案中所有人会将将座位坐满(共有 \((2n)!\) 种不同的就坐方案.) 求出共有多少种不同的就坐方案满足恰好有 \(k\) 对情侣坐在一排 简单版:给出 \(T\leq 10^3\) 组数据,每组数据给出 \(n\leq 10^3\),对于每个 \(k\in [0,n]\) 输出 加强版:给出 \(T\leq 2\time…
回顾一下错排公式 错排问题: 设n位错排数为D[n].考虑元素1的位置,设置为k(有n-1中 ):在考虑元素k的位置, 若为1,则转换为n-2位的错排:否则,视元素k为元素1(不能放在位置1),转换为n-1位的错排. 故 D[n]=(n-1)(D[n-1]+D[n-2]) D[1]=0 D[2]=1 也有公式D[n]=n!/e (e=1-1/1!+1/2!-1/3!+--+(-1)^n*1/n!) 设g(x)为x对情侣都在x排里都错开的方案数. 对于询问的k,其答案=C(n,k)A(n,k)po…
4921 4931 第一眼看着就像容斥,但是容斥不怎么好做-- 第二眼想到错排,结果错排公式糊上去错了-- 不难考虑到可以先选\(K\)对情侣坐在一起,剩下\(N-K\)对错排 选\(K\)对情侣坐在一起的方案数是: 选情侣的方案数\(C_N^K \times\)选椅子的方案数\(C_N^K\times\)情侣坐的椅子可以任意排列\(K!\times\)情侣之间可以互换位置\(2^K\)=\((C_N^K)^2K!2^K\) 然后考虑这个错排 实际上直接糊错排公式是很难对的,至少我不会直接用错排…
题意 题意很清楚 \滑稽 分析 对于每一个询问 \(k\) ,记 \(g(x)\) 表示 \(x\) 对情侣都错开的方案总数,那么答案可以写成如下形式: \[ {ans}_k= \binom{n}{k}\times A_n^k\times 2^k\times g(n-k) \] 考虑如何求 \(g(x)\) (一个错位排列). 考虑第一排,一共有三种情况:两男两女或者一男一女(不配对). 两男:顺次选出两男的方案数为 \(x(x-1)\) ,然后考虑他们的配偶在之后的配对情况: 如果强制不配对,…
题面 传送门 题解 首先我们算出刚好有\(k\)对情侣的方案数 从\(n\)对情侣中选出\(k\)对,方案数为\({n\choose k}\) 从\(n\)排座位中选出\(k\)排,方案数为\({n\choose k}\) 情侣之间可以交换座位,方案数为\(2^k\) 座位之间可以随便排列,方案数为\(k!\) 然后我们还需要强制剩下的\(n-k\)对情侣不匹配 设\(g_i\)表示\(i\)对情侣没有一对匹配的方案数 第一排坐两个不是情侣的人的方案数有\(2n(2n-2)\),设这两个人为\(…
题目链接 https://www.luogu.org/problemnew/show/P4931 题解 以下部分是我最开始的想法. 对于每一个 \(k\),满足恰好有 \(k\) 对情侣和睦的方案数为 \[\binom{n}{k} × \binom{n}{k} × k! × 2^k × f_{n - k}\] 其中,\(f_x\) 表示 \(x\) 对情侣坐 \(x\) 排座位且没有任何一对情侣坐在同一排的方案数. 上述式子的意义为:从 \(n\) 对情侣中选出 \(k\) 对作为和睦的,再从…
luogu 普通版题解:https://www.cnblogs.com/lcxer/p/10876856.html 在普通版里,我们考虑对于\(n\)对情侣,恰好\(k\)对是和谐的方案数是 \[ ans[n][k]=\binom{n}{k}A^k_n2^kg(n-k) \] 然而这样做是\(O(n^2)\)的,瓶颈在于如何快速求出\(g(n-k)\) 之前我们的做法需要用到\(ans\)数组,这样是无法优化的,我们换一个思路来求\(g\) 假如我们已经确定了\(n-1\)对情侣都是乱序的方案数…
题解 有\(i\)对情侣全都不和谐那里推不出来只好写了一个暴力容斥然后大力卡常卡过去了== 容斥太过暴力,还是说正解吧 可以考虑直接计算\(n\)对情侣有\(k\)对和谐的方案数 设\(g[i]\)表示\(i\)对情侣\(2*i\)个座位,这\(i\)对情侣全都不和谐的方案数 那么答案显然就是\(C(n,k)*C(n,k)*fac[k]*2^k*g[n-k]\) 那么主要问题就是这个\(g[]\)怎么求 我们可以考虑像错排那样来推一下这个东西: 考虑有\(n\)对情侣:首先随便选一个坐在第一排的…
加强前这道题还是比较友好的 首先我们设\(g_x\)为x对情侣没有一对坐在一起的数量 然后答案就可以表示成:\(C_n^k*A_n^k*2^k*g_{n-k}\) 这里的复杂度是\(O(T*N)\),貌似不错,所以现在问题变成求\(p_x\)了 第一篇题解是利用这是一个错牌问题,用递推式解决,复杂度为优秀的\(O(N)\),但是由于询问的复杂度已经是\(O(T*N)\)了,假设我们并不知道这个递推式,我们还能怎么做呢? 考虑暴力容斥: 所有的情况是\((2*x)!\),然后一对以上情侣数量为\(…
题目链接:洛谷 大家一起 日 ♂ % EI 设\(D_i\)表示\(k=0\)时的答案.那么 \[ f(n,k)=\binom{n}{k}^2D_{n-k}k!2^k \] 意义是选择\(k\)对情侣,\(k\)对位置,全排列,左右交换,其他\(n-k\)个排.那么 \[ \sum_{k=0}^n\binom{n}{k}^2D_{n-k}k!2^k=(2n)! \] 根据这个\(\binom{n}{k}^2\),我们定义["不知道是什么"生成函数]是 \[ F(z)=\sum_{k\g…
洛谷题面传送门 A 了这道题+发这篇题解,就当过了这个七夕节吧 奇怪的过节方式又增加了 首先看到此题第一眼我们可以想到二项式反演,不过这个 \(T\) 组数据加上 \(5\times 10^6\) 的数据范围肯定是反演不动的,因此考虑怎样不反演. 我们很显然可以将求解这个问题划分成两部分:选出 \(k\)​ 对相邻的情侣并将它们的位置安排好+排列好剩下 \(n-k\)​ 对情侣.两部分显然是独立的,因此分别考虑.第一部分是是比较容易的,选出 \(k\)​ 对情侣方案数 \(\dbinom{n}{…
残忍的题面 我们来看这一道题,其实冗长的题目告诉我们一个核心——用tarjan tarjan是用来干什么呢?是用来求强连通分量(代码中指sc) 求出来又有什么用呢?每当我们求出一个强连通分量时,就去计算当前强连通分量中各点最小值是多少以及其个数 然后分别开两个计数器,假设ans1是用来存个数相乘,ans2是用来累加最小值的. 临门一脚,千万别忘了取% 另外注意如果小伙伴这样和我一样写tarjan的话 ;i=e[i].next) 一定记住,在main函数里要 memset(head,-,sizeo…
双倍经验 传送门 首先坐在一起的cp和不坐在一起的cp是相对独立的,可以分开考虑,然后方案数相乘 坐在一起的cp,方案为\(\binom{n}{k}*\binom{n}{k}*k!*2^k\).首先选出k排座位,然后选出k对cp坐下,然后这k对可以任意打乱顺序,并且每一对可以换座位 不坐在一起的cp,一开始以为就是个错排,然后错排其实是没考虑一对cp坐在同一列的情况的.考虑递推,设\(f[i]\)表示i个不坐在一起的cp的方案.首先可以选出两个不是一对cp的人,方案为\(2i*(2i-2)\),…
传送门啦 这个题可以说是tarjan强连通分量的裸题,但需要维护每个强连通分量的最小值,所以做法就很明确了. 我们先明确几个数组的意思: 1.首先是tarjan缩点中的几个数组: dfn[i]:i点的时间戳 low[i],表示这个点以及其子孙节点连的所有点中dfn最小的值 stack[],表示当前所有可能能构成是强连通分量的点. ins[i],表示 i 是否在stack[ ]数组中 num[i],表示第 i 个强连通分量中有多少个点 belong[i],表示第 i 点在哪一个强连通分量里 2.然…
题目链接:https://www.luogu.org/problemnew/show/P2194 第一问:缩点并且统计其强连通分量里的最小耗费.把所有强连通分量的最小耗费加起来. 第二问:统计在每个强连通分量里与最小耗费相同的点数.乘法原理统计所有强连通分量答案. #include <stack> #include <cstdio> #include <cstring> #include <iostream> #include <algorithm&g…
挺有意思的一道题... code: #include <bits/stdc++.h> using namespace std; #define N 5000006 #define mod 998244353 #define ll long long #define setIO(s) freopen(s".in","r",stdin) int fac[N],inv[N],f[N],qpow[N],jv[N]; void Initialize() { int…
现象 CPU: STM32107VC 用JLINK 烧写程序时出现NO Cortex-m device found in JTAG chain 如图无法查找到硬件就是CPU 提示1:NO Cortex-M device found inJTAG chain.please check the JTAG cable and the connected devices     提示2:error:flash download failed-target DLL has been cancelled 原…
QT210下载烧录编译android2.3过程 工作环境:ubuntu12.04.5 | QT210开发板光盘 | QT210开发板 android2.3编译环境:gcc version 4.4.7  | java version 6 | java version 5 | git version 1.7.9.5 tips by chsry:浅灰色是终端窗口运行保存的部分命令和信息,ubuntu14.04无法编译QT210 android2.3(无法安装java6) 安装好ubuntu12.04.…