51nod 1574 排列转换(猜结论)】的更多相关文章

分析 猜了一下结论,居然对了..........具体操作是:假设排列s是1,2,3,...,nk为排列p中最大的 没有放到正确位置的数,k的位置为posk的右边一定有一个数x<=pos(因为<=pos的数有pos个,不可能全挤在pos-1个位置里)交换k和x,两个数都离目标更近了且没有走远路.重复这个步骤 猜了两次结论然后就对了??? #include <bits/stdc++.h> using namespace std; #define ll long long #define…
题意:有两个长度为n的排列p和s.要求通过交换使得p变成s.交换 pi 和 pj 的代价是|i-j|.要求使用最少的代价让p变成s. 考虑两个数字pi和pj,假如交换他们能使得pi到目标的距离减少,pj到目标的距离减少.那么应该交换他们,这是一个必要的操作,也是答案的下界. 如果每一次都能找到这样的两个数字,那么答案就是排列p中的每个数字在排列s的位置的距离差之和/2.这显然是答案的下界. 现在考虑证明这个下界是可以构造出来的. 考虑排列p中最后一个位置不对的数字,不妨设为pj,他的目标位置是p…
D. Minimum Diameter Tree 思维+猜结论 题意 给出一颗树 和一个值v 把该值任意分配到任意边上 使得\(\sum\limits_{i,j}p_{ij}=v\) 使得 这颗树任意两个点的简单路的最大值最小 思路 根据样例我们可以很好得蒙出 只要平均分在度数位1的点所连的边上面就可以了 树猜结论无非是度数 边关系之类的 #include<bits/stdc++.h> #define FOR(i,f_start,f_end) for(int i=f_start;i<=f…
题目链接 题意 将\(x\)拆成\(a_1+a_2+...+\)的形式,且\(a_1\lt a_2\lt...\),使得\(a_1*a_2*...\)取到最大值 思路 大胆猜结论. 首先拆分的形式中肯定不能有\(1\). 于是预处理出前缀和\(a[i]=\sum_{k=2}^{i}k\), 找到\(\geq x\)的最小的\(a[id]\),接下来: 如果\(a[id]==x\),意味着\(2+3+...+id=x\),那么答案就是\(2*3*...*id=factorial(id)\) 否则,…
题目描述 有一天,一个名叫顺旺基的程序员从石头里诞生了.又有一天,他学会了冒泡排序和独 立集.在一个图里,独立集就是一个点集,满足任意两个点之间没有边.于是他就想把这两 个东西结合在一起.众所周知,独立集是需要一个图的.那么顺旺基同学创造了一个算法, 从冒泡排序中产生一个无向图.  这个算法不标准的伪代码如下: void bubblesortgraph(n,a[]) //输入:点数n,1到n的全排列a //输出:一个点数为n的无向图G {// 创建一个有n个点,0条边的无向图G. do{ swa…
Atcoder 题面传送门 & 洛谷题面传送门 猜结论神题. 首先考虑探究题目中 \(f\) 函数的性质,\(f(p,q)_{p_i}=q_i\leftarrow f(p,q)\circ p=q\),其中 \(\circ\) 为两个置换的复合,\(a\circ b\) 为满足 \(p_{i}=a_{b_i}\) 的置换 \(p\),有点类似于函数的复合,u1s1 我一直把它当作乘法运算,因此总没搞清楚,心态爆炸--等式两边同乘 \(p\) 的复合逆 \(p^{-1}\) 可得 \(f(p,q)=…
[BZOJ3425]Poi2013 Polarization Description 给定一棵树,可以对每条边定向成一个有向图,这张有向图的可达点对数为树上有路径从u到达v的点对(u,v)个数.求最小可达点对数和最大可达点对数 n<=250000 Sample Input 4 1 2 1 3 1 4 Sample Output 3 5 题解:想了一晚上,怎么想怎么是个搭建双塔,结果看题解发现还真tm是搭建双塔. 本题的结论有点神,不过很好猜,证明见Claris博客. 第一问的答案一定是n-1,因…
题目:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1250 仔细思考dp. 第一问,考虑已知 i-1 个数有多少种方案.再放入一个数,它是最大的且在最后面,所以它的位置不同的话,就是不同的方案.它在特定的位置,其余部分的值就是 i-1 的值. 所以再用前缀和优化成 n^2 即可.k可减任意个2. 第二问,还是像上面一样考虑.但新来的数只会和前面的数交换一次.任何一种交换 k ( k>1 ) 次的方案都可以转换成前面的…
Description 统计 \(1...n\) 的排列,恰好进行 \(k\) 次相邻交换和至多进行 \(k\) 次交换生成的不同的序列个数. Sol DP. 好妙的题啊... 首先看第一个问题. 对于相邻元素的交换,我们建立状态 \(f[i][j]\) 表示前 \(i\) 个数进行 \(j\) 次交换的方案数. 我们分类来讨论 \(i\) 元素是否参与交换. 如果不参与交换 \(f[i][j]+=f[i-1][j]\) 如果参与交换,那么它最远能交换到的位置就是 \(i-j\) \(f[i][…
UVA11636-Hello World! Time limit: 1.000 seconds When you first made the computer to print the sentence “Hello World!”, you felt so happy, not knowing how complex and interesting the world of programming and algorithm will turn out to be. Then you did…
2222: [Cqoi2006]猜数游戏 Time Limit: 20 Sec  Memory Limit: 259 MBSubmit: 604  Solved: 260[Submit][Status][Discuss] Description 佳佳和明明玩一个猜数游戏.佳佳想一个1~n之间的整数,明明每次可以随便猜一个数.从第二次猜测起,佳佳告诉明明本次猜测的数和上次猜测的数相比哪个更接近.B表示本次猜测的数更接近,W表示上次猜测的数更接近.如果两次猜测的接近程度一样,则既可回答B也可回答W.…
题目:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1250 看了半天... 把第一问想成逆序对的话似乎很容易想了,新加入一个数,可以往前挪动,增加的逆序对数就是它后面那些数的个数: 所以 f[i][j] = ∑(k = max( 0 , j - i + 1)) f[i-1][k],用前缀和即可: 第二问正好用第一类斯特林数: 第一类斯特林数 str[i][j] 表示把 i 个数分成 j 个环,环有顺序的方案数,str…
Codeforces 题面传送门 & 洛谷题面传送门 一道名副其实(beautiful)的结论题. 首先看到这道设问方式我们可以很自然地想到套用斐波那契数列的恒等式,注意到这里涉及到 \(F_{a+id}\),因此考虑斐波那契数列组合恒等式 \(F_{m+n+1}=F_mF_{n}+F_{m+1}F_{n+1}\),具体证明戳这里,这里就不再赘述了. 注意到此题还涉及后 \(18\) 位,也就是要将斐波那契数列的各种运算放到模 \(10^{18}\) 意义下进行,因此我们可以考虑找一下斐波那契数…
题解链接 不过求ggg不用O(n2)DPO(n^2)DPO(n2)DP,g[n]g[n]g[n]直接就是卡特兰数的第n−1n-1n−1项.即: g[n]=(2(n−1)n−1)−(2(n−1)n−2)g[n]=\binom{2(n-1)}{n-1}-\binom{2(n-1)}{n-2}g[n]=(n−12(n−1)​)−(n−22(n−1)​) 相当于在平面直角坐标系中,要从(0,0)(0,0)(0,0)走到(n,n)(n,n)(n,n),有一条线段y=x(x∈(0,n))y=x(x\in(0…
1574 排列转换  题目来源: CodeForces 基准时间限制:1 秒 空间限制:131072 KB 分值: 40 难度:4级算法题  收藏  关注 现在有两个长度为n的排列p和s.要求通过交换使得p变成s.交换 pi 和 pj 的代价是|i-j|.要求使用最少的代价让p变成s. Input 单组测试数据. 第一行有一个整数n (1≤n≤200000),表示排列的长度. 第二行有n个范围是1到n的整数,表示排列p.每个整数只出现一次. 第三行有n个范围是1到n的整数,表示排列s.每个整数只…
题目链接 题目描述 给定一个长度为n的排列,要求输出该排列的字典序名次(1,2,3,...,n的名次为1). 输入输出格式 输入格式: 第一行一个数n,表示排列长度. 第二行n个数,用空格分隔,表示一个长度为n的排列. 输出格式: 一个数,表示该排列的字典序名次.由于答案可能很大,请输出答案对1e9+7取模后的结果. 输入输出样例 输入样例#1: 9 9 8 7 6 5 4 3 1 2 输出样例#1: 362879 说明 对于30%的数据,n<=10. 对于100%的数据,n<=100000.…
[BZOJ2770]YY的Treap Description 志向远大的YY小朋友在学完快速排序之后决定学习平衡树,左思右想再加上SY的教唆,YY决定学习Treap.友爱教教父SY如砍瓜切菜般教会了YY小朋友Treap(一种平衡树,通过对每个节点随机分配一个priority,同时保证这棵平衡树关于priority是一个小根堆以保证效率).这时候不怎么友爱的510跑了出来,他问了YY小朋友一个极不和谐的问题:怎么求Treap中两个点之间的路径长度.YY秒了之后决定把这个问题交给你来做,但只要求出树…
题目传送门 话说这道题不分析样例实在是太亏了...结论题啊... 但是话说回来不知道它是结论题的时候会不会想到猜结论呢...毕竟样例一.二都有些特殊. 观察样例发现选中的子图都只有一条边. 于是猜只有一条边的时候解最优. 飞快地写个暴力,然后和结论对拍,然后假装这个结论是对的,然后就$AC$了(大雾 还是证明一下这个结论吧: 用反证法. 设这样三个点的点权分别为$A$,$B$,$C$,两条边的边权为$n$,$m$ 假设子图中有$A,B,C$三个点比只有两个点更优. 也就是三个点都选的答案比只选$…
题目链接 https://atcoder.jp/contests/agc032/tasks/agc032_e 题解 猜结论好题. 结论是: 按\(a_i\)从小到大排序之后,一定存在一种最优解,使得以某个位置为界,两边分别首尾匹配,且满足左边的每一对的和都\(<M\), 右边每一对的和都\(\ge M\). 证明不难,可参考官方题解,此处不再赘述. 然后显然可以枚举这个临界点,然后\(O(n)\)暴力计算答案,时间复杂度\(O(n^2)\). 考虑优化: 在我们配对的时候,当临界点右移,左右两侧…
吐槽/心路历程 打开这道题的时候:*&@#%*#?!这不是小凯的疑惑吗?好像还是个加强版的?我疑惑了.原来$USACO$才是真的强,不知道什么时候随随便便就押中了题目. 对于我这种蒟蒻来说,这种有结论的题真是令人头疼,又不会证明,只能猜,要是猜错了就身败名裂了. 如果是考试的时候写这种题的话,我会直接上一个完全背包,并且价值不会开到题目骗我的那个$2,000,000,000$,差不多估摸着复杂度能过就这么写. 但是还是没搞懂为什么有一个上界,然后超过那个上界的答案会输出$0$(明明程序跑出来就是…
从联赛活了下来(虽然分数倒一……),接下来要去CDQZ集训啦…… DAY -2 2017-12-16 被老师安排负责一部分同学的住宿以及安排…… 抓紧时间继续学习,LCT真好玩啊真好玩…… 晚上放假了…… DAY -1 2017-12-17 放假进行中……下午转场到了石家庄. 与srs,wzz,wxh几个dalao住在一个宾馆,晚上出去吃饭…… DAY 0 2017-12-18 4:30早起……到机场. 似乎没有想象中的麻烦…… 很顺利的登机,起飞的时候气压的确有一些奇怪的问题……耳朵有点难受…
前言 很懒. 太懒了. 不仅懒得写题..连游记都懒得写.. 花点时间填一下坑吧..不过话说我去年的NOI/APIO/CTSC游记也没写.. 省选前 板子好像一早就打完了,没什么可干的. 也不愿意开新题,学新东西更是不可能的了.就每天打打GTA和CR才维持的了生活这样子. 还是有点慌的,HAOI会出什么样的锅?被退役了怎么办? 平时我的考试策略已经非常保守了,决定这次采用更保守的. 除了一眼秒掉又好写的题,其他题只写暴力,不管正解. 省选这个东西嘛..进队才是最重要的.像去年一样,在HA随便打打暴…
构造题都是神仙题 /kk ARC066C Addition and Subtraction Hard 首先要发现两个性质: 加号右边不会有括号:显然,有括号也可以被删去,答案不变. \(op_i\)和\(A_{i+1}\)之间只会有一个括号:有多个括号的话只保留最外边那个,答案不变. 然后就可以定义状态:\(dp_{i,j}\)表示前\(i\)个数,还有\(j\)个未闭合的左括号,得到的最大答案. 由于只有减号右边有括号,所以只要知道左边有几个未闭合的左括号,就可以知道自己的贡献是\(1\)还是…
虽然去年做了挺多了也写了篇一句话题解了但一年过去也忘得差不多了$kk$ 所以重新来整理下$kk$ $2018(4/6$ [X]积木大赛 大概讲下$O(n)$的数学方法. 我是从分治类比来的$QwQ$.考虑对每个点,如果它左侧比它高,显然可以在左侧被消的时候顺便把它消了. 否则只能消到左侧那个高度. 所以答案为$\sum max(0,a_i-a_{i-1})$ [X]货币系统 一个结论:显然是从原来的集合中选出一个子集来. 我也不记得我怎么在考场上就突然想到这个结论了,,,感觉也挺显然的.所以也没…
以下是我考场上的思路,很多题都不是正解.对于某些题目,我们使用<代码部落>中的题解,希望大家能够看懂 JOISC2020 Round1 自闭记 T1 11 pts 算法:考虑\(DP\). 设\(f_{i, j, k}\)表示前\(i\)个数,选了\(j\)个\(B\)数组的数,且第\(i\)个数选的是\(A/B\)时,是否存在所要求的单调不降的数列. 直接\(DP\),可以获得一个\(O(n^2)\)的做法. 100 pts 算法: 我们通过猜结论/打表发现一个规律.如果固定了\(i, k\…
这场CF,准备充足,回寝室洗了澡,睡了一觉,可结果...   水 A - PawnChess 第一次忘记判断相等时A先走算A赢,hack掉.后来才知道自己的代码写错了(摔 for (int i=1; i<=8; ++i) { scanf ("%s", s[i]); //!!! } 数学(找规律) B - The Monster and the Squirrel 题意:多边形每个顶点向其它的点引射线,如果碰到其他射线则停止,问最后多边形被分成多少个区域 分析:搬题解: Proble…
始于10/01/2017. Day I: T2图论,没想到.T3谜一样DP(是从来没意识到还可以这样). rank10. 下午刷了点题,CDQ也只打出一个板子,感觉自己不在状态? ========================================================================================= Day II: T3……爆longlong的shi题. 刷题中……………………………… 晚上又考了一场…… T3,我……MDZZ splay…
题意 给你两个长为 \(n+1\) 的数组 \(a,b\) ,你需要定义一个顺序 \(p\) (\(p_0\) 永远为 \(0\)) 能够最小化 \[ \max_{i=1}^{n} \frac{\prod_{j = 0}^{i} a_{p_j}}{b_{p_i}} \] \(1 \le n \le 1000, 1 \le a, b \le 10^4\) 题解 开始把原来没做完的 \(NOIp\) 题都水掉qwq 类似这种题都需要有个巧妙的排序方法,使得答案最小,其实可以大力找规律或者猜结论发现按…
就是错题整理了,其实也会把一些不该犯的失误整进来. 其实之前一直拖着不想写,直到某次模拟赛,看错了2道题,顺便爆了一道题的int(没错第一个点就会爆)之后爆零了,吓得我赶紧把这篇博客搞出来了...... 只是个人向的总结,写的细了一点ovo. 模拟赛相关 比赛经验还不够,考前提醒一下自己 审题错误 好难受啊,这个东西.一般来说是不用担心这个的,但这次模拟赛的题面,我真的不想承认是自己脑回路清奇的原因. 模拟赛我已经尽力了...我觉得题意不清,然后审了好久的题,然后审错了. 当然,这是个意外,毕竟…
原文链接https://www.cnblogs.com/zhouzhendong/p/AtCoder-Grand-Contest-from-11-to-20.html UPD(2018-11-16): 改个标题再弃坑. 发现 EF 这种神仙题根本做不动,这次做题顺序我要改一改了…… 咕咕咕 AGC011F AGC012F AGC013D AGC013E AGC013F AGC014E AGC014F AGC015E AGC015F AGC017F AGC011 B 简单题. #include <…