首页
Python
Java
IOS
Andorid
NodeJS
JavaScript
HTML5
【
[AtCoder ARC093F]Dark Horse
】的更多相关文章
[AtCoder ARC093F]Dark Horse
题目大意:有$2^n$个人,每相邻的两个人比赛一次.令两个人的编号为$a,b(a\leqslant b)$,若$a\neq 1$,则$a$的人获胜:否则若$b\in S$则$b$获胜,不然$1$获胜.钦定$1$获胜,问可以的开始的顺序的方案数 题解:状压$DP$,令开始的第$i$位的人的编号为$p_i$,发现到只有$\min\limits_{i\in[2^{j-1}+1,2^j]}\{p_i\}(1\leqslant j\leqslant n)$的人会和$1$打,考虑容斥,令$f_{i,j}$为…
ARC093F Dark Horse 容斥原理+DP
题目传送门 https://atcoder.jp/contests/arc093/tasks/arc093_d 题解 由于不论 \(1\) 在哪个位置,一轮轮下来,基本上过程都是相似的,所以不妨假设 \(1\) 在第 \(1\) 个位置. 那么,\(1\) 将以此遇到的对手是 \(p_2, \min\{p_3, p_4\}, \min\{p_5, p_6, p_7, p_8\}, \cdots\). 令这些数分别为 \(b_0, b_1, \cdots\),其中 \(b_i = \min \li…
arc093F Dark Horse
我们可以假设1的位置在1,并且依次与右边的区间合并.答案最后乘上2^n即可. 那么需要考虑1所在的区间与另一个区间合并时,另一个区间的最小值不能为特殊的. 直接求解很难,考虑容斥,钦定在哪几个位置必定输,容斥出必胜的方案数. 从大到小dp,设f(i,S)表示当前考虑到第i个特殊的数,必输的区间集合为S. 考虑是否向集合S中加入i,若加入,枚举在哪个区间合并,用组合数算出能够选出的数的方案并乘上排列数. 若不加入,则直接转移即可. f(i,S) <- f(i+1,S) f(i,S|(1<<…
ARC093F Dark Horse 【容斥,状压dp】
题目链接:gfoj 神仙计数题. 可以转化为求\(p_1,p_2,\ldots,p_{2^n}\),使得\(b_i=\min\limits_{j=2^i+1}^{2^{i+1}}p_j\)都不属于\(a_i\). 日常容斥.设\(f(S)\)表示\(i\in S\Rightarrow b_i\in A\)的答案,则答案就是\(ans=\sum_S(-1)^{|S|}f(S)\). 求\(f(S)\)使用状压dp.设\(f[i][S]\)表示将\(a_i\)从大到小排序,\(b_i\)在\(a\)…
【arc093f】Dark Horse(容斥原理,动态规划,状态压缩)
[arc093f]Dark Horse(容斥原理,动态规划,状态压缩) 题面 atcoder 有 \(2^n\) 名选手,编号为 \(1\) 至 \(2^n\) .现在这 \(2^n\) 名选手将进行 \(n\) 轮淘汰赛,决出胜者.若 \(x<y\) ,则 \(x\) 能够战胜 \(y\) .但有 \(m\) 个例外,\(1\) 号选手会输给这 \(m\) 个选手.问有多少中排列方式使得\(1\)号选手取得胜利.\(n,m≤16\). (这是肖大佬的翻译) 题解 钦定\(1\)号站在一号位置(…
ARC 093 F Dark Horse 容斥 状压dp 组合计数
LINK:Dark Horse 首先考虑1所在位置. 假设1所在位置在1号点 对于此时剩下的其他点的方案来说. 把1移到另外一个点 对于刚才的所有方案来说 相对位置不变是另外的方案. 可以得到 1在任何位置剩下的方案数都相同 所以不妨设1所在点为1 求出方案乘以n. 考虑怎么求方案 即求出剩下的n-1个区间 且每个区间的最小值都不能是给出的m的值. 直接做需要状压 做不了. 考虑容斥 容易想到答案为\(\sum_{s}(-1)^{|s|}f_s\) 其中\(f_s\)表示集合s一定不合法的方案数…
Atcoder Regular Contest 093 D - Dark Horse(组合数学+状压 dp)
Atcoder 题面传送门 & 洛谷题面传送门 常规题,简单写写罢((( 首先 \(1\) 的位置是什么不重要,我们不妨钦定 \(1\) 号选手最初就处在 \(1\) 号位置,最后答案乘个 \(2^n\) 即可. 显然与 \(1\) 进行比赛的选手一定是区间 \([2,2],[3,4],[5,8],\cdots,[2^{k-1}+1,2^k],\cdots,[2^{n-1}+1,2^n]\) 中的最小值,而由于我们希望 \(1\) 号选手在比赛中取得胜利,故 \([2,2],[3,4],[5,8…
ARC093 F - Dark Horse
https://atcoder.jp/contests/arc093/tasks/arc093_d 题解 先钦定\(1\)号站在第一个位置上,那么他第一轮要和\((2)\)打,第二轮要和\((3,4)\)打,第三轮和\((5,6,7,8)\)打. 那么这些区间的最小值不能是给出的数. 考虑容斥. 我们把所有限制位置从大到小排序,设\(dp[i][s]\)表示前\(i\)个数,\(S\)集合中的区间已经被覆盖了的方案数. 那么我们每做到一个数,考虑把它放到一个没有被占用的区间,那么这个区间还能放的…
ARC093 F Dark Horse——容斥
题目:https://atcoder.jp/contests/arc093/tasks/arc093_d #include<cstdio> #include<cstring> #include<algorithm> #define ll long long using namespace std; ,M=(<<)+,mod=1e9+; int pw(int x,int k) {;)ret=(ll)ret*x%mod;x=(ll)x*x%mod;k>&g…
AtCoder Regular Contest 093
AtCoder Regular Contest 093 C - Traveling Plan 题意: 给定n个点,求出删去i号点时,按顺序从起点到一号点走到n号点最后回到起点所走的路程是多少. \(n\le 2e5\) 分析: 可以通过观察发现,无论删去那个点,比全部都走所差距的距离都是\(|a_i-a_{i-1}|-|a_{i+1}-a_i|+|a_{i-1}-a_{i+1}|\) 所以直接枚举即可. #include <bits/stdc++.h> using namespace std;…