CF 715 E. Complete the Permutations】的更多相关文章

CF 715 E. Complete the Permutations 题目大意:给定两个排列\(p,q\)的一部分.定义两个排列\(p,q\)的距离为使用最少的交换次数使得\(p_i=q_i\).对于所有\(0\leq k\leq n-1\)的所有补全方案中距离为\(k\)的方案数. \(\\\) 将排列看成置换的话,两个完整的排列的距离为\(n-m\),其中\(m\)为循环节个数. 现在考虑将所有存在的不完整的循环节找出来.先连边:对于每个\(i\),连\(a_i\to b_i\),然后若\…
[CF715E]Complete the Permutations(容斥,第一类斯特林数) 题面 CF 洛谷 给定两个排列\(p,q\),但是其中有些位置未知,用\(0\)表示. 现在让你补全两个排列,定义两个排列\(p,q\)之间的距离为每次选择\(p\)中两个元素交换,使其变成\(q\)的最小次数. 求距离恰好为\([0,n-1]\)的填数方案数. 加强的题目在\(BZOJ\)上有,戳这里. 题解 看到这道题目就觉得无比熟悉.回头翻了翻发现果然是省队集训的时候的题目... 果然都是原题啊..…
题目 CF715E Complete the Permutations 做法 先考虑无\(0\)排列的最小花费,其实就是沿着置换交换,花费:\(n-\)环个数,所以我们主要是要求出规定环的个数 考虑连边\(a_i\rightarrow b_i\)(仅非零数有出边),本身形成环的不管(也没办法管),考虑一条除首尾外都不为\(0\),首尾至少有一个\(0\)的链(链),那么还有三类: \(0\rightarrow0(0(a)\)对应的\(b\)是\(0\)或\(b\)的最终点是\(0)\) \(0\…
E. Intersection of Permutations 链接 题意: 给定两个序列,询问第一个排列的[l1,r1]和第二个排列[l2,r2]中有多少个共同的数,支持在第二个排列中交换两个数. 分析: 首先求出一个数组,c[i],第二个排列的这个数字在第一个排列中出现的位置.那么查询就是询问c数组中的[l2,r2]中的有多少个数字的在[l1,r1]之间.此时可以差分+离线+树状数组在$nlogn$的时间复杂度内完成. 考虑修改操作,考虑cdq分治.在b排列中交换两个数,那么也就是c数组中交…
题链;http://codeforces.com/problemset/problem/251/B B. Playing with Permutations time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output Little Petya likes permutations a lot. Recently his mom has p…
题目大意 有两个排列 \(p,q\),其中有一些位置是空的. 你要补全这两个排列. 定义 \(s(p,q)\) 为 每次交换 \(p\) 中的两个数,让 \(p=q\) 的最小操作次数. 求 \(s(p,q)=0,1,2,\ldots,n-1\) 的方案数. \(n\leq 300\) 题解 考虑 \(s(p,q)\) 怎么求. 对于每一个 \(i\),连一条有向边 \(p_i\to q_i\).那么 \(s(p,q)\) 就是 \(n-\) 图中环的个数. 先把 \(p,q\) 对应的图建出来…
目录 @description@ @solution@ @accepted code@ @details@ @description@ 给定两个排列 p, q,他们中的有些位置被替换成了 0. 两个排列 p, q 的距离为:最少需要在 p 中执行交换两个元素的操作,使得 p, q 相等. 对于每个 0 <= k <= n,求有多少将 0 替换回正整数并满足 p, q 依然是排列的替换方法,使得 p, q 距离为 k. 原题戳这里 @solution@ 考虑两个排列的距离怎么算.如果把 p[i]…
传送门:QAQQAQ 题意:给你两个$1$~$n$的排列,0表示该位置数字不确定,两两交换第一个排列中的元素使之变成第二个排列,令$s[x]$表示对于所有不同的两个排列,最少交换次数为$x$的序列有$s[x]$个,求$x=0$~$n-1$所有的$s[i]$ 思路:简直神题QAQ,不愧CF3400,思路十分巧妙 直接贴上大佬的题解: 这里对于题解加上一些个人的理解:因为最少交换数就是$n-Cycle(G)$,所以我们可以统计不同连边情况对于环个数的贡献 如果是数字单独成环,那么这个环仅有一个且不会…
Codeforces 题面传送门 & 洛谷题面传送门 神仙题.在 AC 此题之前,此题已经在我的任务计划中躺了 5 个月的灰了. 首先考虑这个最短距离是什么东西,有点常识的人(大雾)应该知道,对于一个排列 \(p\) 而言,通过交换两个元素使其变成 \(1,2,3,4,\cdots,n\) 的最少步数等于 \(n\) 减去该排列中置换环的个数,因此对于两个排列 \(a,b\) 而言,将 \(a\) 变成 \(b\) 所需的最少步数即是在所有 \(a_i\) 与 \(b_i\) 之间连 \(a_i…
  <好多题的题解>   「洛谷 P5408」第一类斯特林数·行   根据结论 \[x^{\overline{n}}=\sum_i{n\brack i}x^i, \] 我们只需要求出 \(x^{\overline{n}}\) 的各项系数.显然的 \(\mathcal O(n\log^2n)\) 做法就足够过掉洛谷上的原题了,但是我们 OJ 比较卓越,所以得用 \(\mathcal O(n\log n)\) 的做法.   考虑倍增.令 \(F_n(x)=x^{\overline{n}}\),那么…
[toc] 阿里云使用centos 登录 http://www.aliyun.com/ 点击登录 进入控制 https://home.console.aliyun.com/ 云服务器 运行中 把ip输入 软件下载 链接:http://pan.baidu.com/s/1i4f2FRn 密码:17s6 mysql搭建 检查硬盘有mysql rpm -qa | grep mysql 有的话,我们就通过 rpm -e 命令 或者 rpm -e –nodeps 命令来卸载掉 rpm -e mysql //…
引言:从斐波那契数列看动态规划 斐波那契数列:Fn = Fn-1 + Fn-2    ( n = 1,2     fib(1) = fib(2) = 1) 练习:使用递归和非递归的方法来求解斐波那契数列的第 n 项 代码如下: # _*_coding:utf-8_*_ def fibnacci(n): if n == 1 or n == 2: return 1 else: return fibnacci(n - 1) + fibnacci(n - 2) # 写这个是我们会发现计算f(5) 要算两…
题目:http://codeforces.com/problemset/problem/610/E 如果存在c1,c2在原串相邻且在询问串中c1在c2前面的话,把它们在原串出现次数加起来记作sum,那么n-sum就是答案. 维护一棵线段树,线段树的每个节点存一个k^2的矩阵. 然后修改的话就在线段树上区间修改..(标记下传的时候要注意不要越界TAT... 然后询问的话就k^2搞一下需要被减掉的字符对就好了.. #include<cstring> #include<iostream>…
给出一个长为n的数列的k个排列(1 ≤ n ≤ 1000; 2 ≤ k ≤ 5).求这个k个数列的最长公共子序列的长度 dp[i]=max{dp[j]+1,where j<i 且j,i相应的字符在k个排列中都保持同样的相对位置} #include <iostream> #include <vector> #include <cstring> #include <cstdio> #include <cmath> #include <al…
题目:http://codeforces.com/contest/1093/problem/E 只能想到转化成查询一个区间里值在一个范围里的数的个数…… 没有想到这样适合用主席树套树状数组维护.不过据说卡空间. 参考了这里的题解:https://www.luogu.org/problemnew/solution/CF1093E 写了CDQ分治.一个值在两个序列里的位置看成两维坐标的话,就是查平面区域内点的个数. 按 x (在第一个序列里的位置)排序,分治操作的时间,y (在第二个序列里的位置)用…
挺有收获的一道题ヾ(◍°∇°◍)ノ゙ 恰好为 m ,这个限制仿佛不是很好处理.一般而言,我所了解的恰好为 k 的条件,不是用组合数 / dp状态转移 / 斜率二分就只剩下容斥了.我们可以先处理出 num[i] 表示至少有 i 个完美位置的方案数,之后再容斥得到 ans[m] (恰好为 m 个).如何获得 num 数组?建立dp状态为 f[i][j][p][q], (其中p, q为01状态)表示dp到第 i 个位置,已经出现了 j 个完美的位置,且 i 和 i + 1 是否被用过.转移的时候分情况…
这个 D 还是十分友好的~ 你发现这 $3$ 个集合形成了一个环的关系,所以随意调换顺序是无所谓的. 然后随便让 $1$ 个点成为第 $2$ 集合,那么不与这个点连边的一定也属于第二集合. 然后再随便找一个与所选点有连边的点,将这个设为第 $3$ 集合中的点,然后与这个点有连边且不为第二集合的就是第一集合的. 构造出了 $3$ 个集合后再判断一下是否不合法即可. 几个判断方式: 1. 一个集合中不能有连边 2. 任意一个集合中所有点出边的数量应该相同. 3. 任何一个点集都不能为空. #incl…
挺水的一道题~ 拿全排列随便乘一下就好了. #include <cstdio> #include <algorithm> #define N 300004 #define ll long long #define mod 998244353 #define setIO(s) freopen(s".in","r",stdin) using namespace std; struct Node { int a,b; }t[N]; ll fac[N…
.net compact framwork(2.0/3.5)下没有Backgroundworder组件,在网上找了一个类 经过使用发现了一些问题,主要有一个问题:在一个Dowork事件中对ReportProgress 多次输出时可能无法正确完成. 花了点时间对该类进行了修改,将ReportProgress的参数进行队列处理,在实际处理Progress时采用循环检测.用了 Queue功能. #Region "EventArgs classes" Public Class RunWorke…
B. Complete The Graph time limit per test 4 seconds memory limit per test 256 megabytes input standard input output standard output ZS the Coder has drawn an undirected graph of n vertices numbered from 0 to n - 1 and m edges between them. Each edge…
1. CF 438D The Child and Sequence 大意: n元素序列, m个操作: 1,询问区间和. 2,区间对m取模. 3,单点修改 维护最大值, 取模时暴力对所有>m的数取模. 因为取模后至少减半, 复杂度$O(nlognlogC)$ 2. CF 431E Chemistry Experiment 大意: n个试管, 第$i$个试管有$a_i$单位水银, m个操作: 1, 修改$a_x$改为$v$. 2, 将$v$单位水倒入试管, 求一种方案使得有水的试管水银与水总量的最大…
Codeforces Round #372 (Div. 2) 不知不觉自己怎么变的这么水了,几百年前做A.B的水平,现在依旧停留在A.B水平.甚至B题还不会做.难道是带着一种功利性的态度患得患失?总共才打的几场 CF 节节掉分.学了快一年了成了个水货. 废话就不多说了,来看这次的这两题吧.很多CF的题是不想写博客的,如果题目质量很好的话我倒是愿意留在我的博客里: A. Crazy Computer time limit per test 2 seconds memory limit per te…
ADB,即 Android Debug Bridge,它是 Android 开发/测试人员不可替代的强大工具,也是 Android 设备玩家的好玩具. 持续更新中,欢迎提 PR 和 Issue 补充指正,觉得有用的可以将 此 GitHub 仓库 Star 收藏备用. 注:有部分命令的支持情况可能与 Android 系统版本及定制 ROM 的实现有关. 基本用法 命令语法 为命令指定目标设备 启动/停止 查看 adb 版本 以 root 权限运行 adbd 指定 adb server 的网络端口…
目录 \(\bf {Round \ \#500 \ (Div. \ 1)}\) \(\bf {Round \ \#589 \ (Div. \ 2)}\) \(\bf {Avito \ Cool \ Challenge \ 2018}\) \(\bf {Round \ \#545 \ (Div. \ 1)}\) \(\bf {Round \ \#454 \ (Div. \ 1)}\) \(\bf {Round \ \#575 \ (Div. \ 3)}\) \(\bf Codefest \ 19\…
[CF285E]Positions in Permutations(动态规划,容斥) 题面 CF 洛谷 题解 首先发现恰好很不好算,所以转成至少,这样子只需要确定完一部分数之后剩下随意补. 然后套一个二项式反演进行容斥就可以得到答案了. 考虑怎么算至少\(m\)个的贡献, 设\(f[i][j][S]\)表示当前填到了位置\(i\),一个有\(j\)个贡献,\(i\)和\(i+1\)的使用情况是\(S\)的方案数,每次枚举一下这个位置是填\(i+1\)还是\(i-1\)还是其他就可以进行转移了.…
写省选的题目对noip没什么大用 关键是 细节题或者是思考题比较重要 练思维自然是CF比较好了 把我见到的比较好的CF题放上来刷一刷. LINK:Complete the projects 就是说一个人 初始值为R 有n项工作每项工作有两种属性 a和b 当且仅当 R>=a时可以完成这项任务 且R+=b; 每项任务只能完成一次 问能否把所有工作完成.注:b可能为负. 怎么做?显然对于b>=0的工作我们按照a由小到大的顺序直接做如果有不能完成的任务的话 那便一定不能完成.考虑如何做负值的工作? 想…
CF Edu Round 71 A There Are Two Types Of Burgers 贪心随便模拟一下 #include<iostream> #include<algorithm> #include<cstring> #include<cstdio> using namespace std; #define MAXN 200006 int n , m; int A[MAXN]; int b , p , f , h , c; int main()…
凌晨收到同事电话,反馈应用程序访问Oracle数据库时报错,当时现场现象确认: 1. 应用程序访问不了数据库,使用SQL Developer测试发现访问不了数据库.报ORA-12570 TNS:packet reader failure 2. 使用lsnrctl status检查监听,一直没有响应,这个是极少见的情况. 3. 检查数据库状态为OPEN,使用nmon检查系统资源.如下一张截图所示,CPU利用率不高,但是CPU Wait%非常高.这意味着I/O不正常.可能出现了IO等待和争用(IO…
Given a collection of numbers that might contain duplicates, return all possible unique permutations. For example,[1,1,2] have the following unique permutations: [ [1,1,2], [1,2,1], [2,1,1] ] 分析: 全组合的思想,保证start和end之间交换的时候中间没有与end相同的数字 class Solution…
Given a complete binary tree, count the number of nodes. Definition of a complete binary tree from Wikipedia: In a complete binary tree every level, except possibly the last, is completely filled, and all nodes in the last level are as far left as po…