zoukankan      html  css  js  c++  java
  • CF351B Solution

    题解

    设逆序对个数为(cnt),如果只有Jeff进行游戏,只需执行(cnt)次操作(每次操作减少一个逆序对)。考虑Furik,他有(frac{1}{2})的概率增加一个逆序对,也就是增加(2)次操作;剩下的一半概率减少一个逆序对,也就是不增加操作数。所以他每次操作对期望的贡献是(2 imes frac{1}{2}+0 imesfrac{1}{2}=1)。因此答案(=cnt+)Fruik的操作数(=2cdot cnt-cnt\%2)

    代码

    #include<bits/stdc++.h>
    using namespace std;
    const int N=3010;
    int p[N];
    inline int read()
    {
    	int s=0,w=1; char ch=getchar();
    	while(ch<'0' || ch>'9') {if(ch=='-') w=-1; ch=getchar();}
    	while(ch>='0' && ch<='9') s=s*10+ch-'0',ch=getchar();
    	return s*w;
    }
    int main()
    {
    	int n=read(),cnt=0;
    	for(int i=1;i<=n;i++) p[i]=read();
    	for(int i=1;i<=n;i++)
    		for(int j=i+1;j<=n;j++)
    			if(p[i]>p[j]) cnt++;
    	printf("%.6lf",2.0*cnt-cnt%2);
    	return 0;
    }
    
  • 相关阅读:
    while练习
    运算符
    作业
    [新手必看] 17个常见的Python运行时错误
    作业
    day04
    作业
    算法模板——线段树2(区间加+区间乘+区间求和)
    1798: [Ahoi2009]Seq 维护序列seq
    1708: [Usaco2007 Oct]Money奶牛的硬币
  • 原文地址:https://www.cnblogs.com/violetholmes/p/15348475.html
Copyright © 2011-2022 走看看