CF258D题解
太厉害啦
首先做期望题最不能忘记的就是期望的线性性。
所以我们直接将全局逆序对对数拆成两个数其中一个比另一个大的期望(概率),设为 \(f[i][j]\),初值为 \([a_i>b_j]\)。
如果我们修改两个位置 \(x,y\),最直接的修改一定就是令 \(f[x][y]=0.5\)。
那么别的位置呢?
我们发现这会令 \(f[i][x]=f[i][y],f[x][i]=f[y][i]\),而且因为这是一个排列,很明显有 \(f[a][b]+f[b][a]=1\)。
那么我们怎么才能转移 \(f\)?
很容易发现一件事情,转移前的 \(f[i][x]+f[i][y]\) 等于转移后的 \(f[i][x]+f[i][y]\)。
为什么呢?我比两个数大的概率之和,然后交换一下,明显还是不变嘛。
所以有新的 \(f[i][x]=f[i][y]\) 等于原来的 \(\frac {f[i][x]+f[i][y]} 2\)。
于是这样大力转移就好啦。
#include<cstdio>
const int M=1005;
int n,m,a[M];double ans,dp[M][M];
signed main(){
int i,j,x,y;scanf("%d%d",&n,&m);
for(i=1;i<=n;++i)scanf("%d",a+i);
for(i=1;i<=n;++i)for(j=1;j<=n;++j)dp[i][j]=a[i]>a[j];
while(m--){
scanf("%d%d",&x,&y);
for(i=1;i<=n;++i)dp[x][i]=dp[y][i]=.5*(dp[x][i]+dp[y][i]),dp[i][x]=dp[i][y]=1-dp[x][i];dp[x][y]=dp[y][x]=.5;
}
for(i=1;i<=n;++i)for(j=i+1;j<=n;++j)ans+=dp[i][j];printf("%.9lf",ans);
}
CF258D题解的更多相关文章
- 2016 华南师大ACM校赛 SCNUCPC 非官方题解
我要举报本次校赛出题人的消极出题!!! 官方题解请戳:http://3.scnuacm2015.sinaapp.com/?p=89(其实就是一堆代码没有题解) A. 树链剖分数据结构板题 题目大意:我 ...
- noip2016十连测题解
以下代码为了阅读方便,省去以下头文件: #include <iostream> #include <stdio.h> #include <math.h> #incl ...
- BZOJ-2561-最小生成树 题解(最小割)
2561: 最小生成树(题解) Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 1628 Solved: 786 传送门:http://www.lyd ...
- Codeforces Round #353 (Div. 2) ABCDE 题解 python
Problems # Name A Infinite Sequence standard input/output 1 s, 256 MB x3509 B Restoring P ...
- 哈尔滨理工大学ACM全国邀请赛(网络同步赛)题解
题目链接 提交连接:http://acm-software.hrbust.edu.cn/problemset.php?page=5 1470-1482 只做出来四道比较水的题目,还需要加强中等题的训练 ...
- 2016ACM青岛区域赛题解
A.Relic Discovery_hdu5982 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Jav ...
- poj1399 hoj1037 Direct Visibility 题解 (宽搜)
http://poj.org/problem?id=1399 http://acm.hit.edu.cn/hoj/problem/view?id=1037 题意: 在一个最多200*200的minec ...
- 网络流n题 题解
学会了网络流,就经常闲的没事儿刷网络流--于是乎来一发题解. 1. COGS2093 花园的守护之神 题意:给定一个带权无向图,问至少删除多少条边才能使得s-t最短路的长度变长. 用Dijkstra或 ...
- CF100965C题解..
求方程 \[ \begin{array}\\ \sum_{i=1}^n x_i & \equiv & a_1 \pmod{p} \\ \sum_{i=1}^n x_i^2 & ...
随机推荐
- iOS程序的启动过程
UIApplicationMain main函数中执行了一个UIApplicationMain这个函数 int UIApplicationMain(int argc, char *argv[], NS ...
- python基础1-类属性和实例属性
类属性就是类对象所拥有的属性,它被所有类对象的实例对象所共有,在内存中只存在一个副本,这个和C++中类的静态成员变量有点类似.对于公有的类属性,在类外可以通过类对象和实例对象访问 类属性 class ...
- 如何添加自己的code snippet
好了我们开始说吧 1.先建一个后缀名为.sublime-snippet的文件
- mapTest
import java.util.*;public class mapTest { public static void main(String[] args) throws Exception{ L ...
- docker基础——4.网络待补
docker network ls bridge:NAT桥 host:共用宿主机namespace的UTS.IPC.Network none:只有lo,没有网卡 其他待补
- 《PHP程序员面试笔试宝典》——如何回答算法设计问题?
如何巧妙地回答面试官的问题? 本文摘自<PHP程序员面试笔试宝典> 程序员面试中的很多算法设计问题,都是历年来各家企业的"炒现饭",不管求职者以前对算法知识掌握得是否扎 ...
- Solution -「CF 1237E」Balanced Binary Search Trees
\(\mathcal{Description}\) Link. 定义棵点权为 \(1\sim n\) 的二叉搜索树 \(T\) 是 好树,当且仅当: 除去最深的所有叶子后,\(T\) 是满的: ...
- Note -「动态 DP」学习笔记
目录 「CF 750E」New Year and Old Subsequence 「洛谷 P4719」「模板」"动态 DP" & 动态树分治 「洛谷 P6021」洪水 「S ...
- React 也就这样 01——React 元素的创建和渲染
React 是一个用于构建用户界面的 JavaScript 库 它包括两个库:react.js 和 react-dom.js react.js:React 的核心库,提供了 React.js 的核心功 ...
- [LeetCode]1365. 有多少小于当前数字的数字
给你一个数组 nums,对于其中每个元素 nums[i],请你统计数组中比它小的所有数字的数目. 换而言之,对于每个 nums[i] 你必须计算出有效的 j 的数量,其中 j 满足 j != i 且 ...