A. Little Pony and Crystal Mine

水题,每行D的个数为1,3.......n-2,n,n-2,.....3,1,然后打印即可

#include <iostream>
#include <vector>
#include <algorithm>
#include <string>
using namespace std; int main(){
int n;
cin >> n;
vector<string> crystal(n,string(n,'*'));
for(int i = ; i <= n/; ++ i){
int mid = n/;
for(int j = mid-i; j <= mid+i; ++ j) crystal[i][j]='D';
}
for(int i = n- ; i > n/; -- i){
int mid = n/;
for(int j = mid-(n--i); j <= mid+(n--i); ++ j) crystal[i][j]='D';
}
for(int i = ; i < n; ++ i ){
cout<<crystal[i]<<endl;
}
}

B. Little Pony and Sort by Shift

题目意思:

  给一个序列a1,a2...an,每次操作将最后一个元素放在数列开始位置,即a1,a2.....an变成an,a1,a2......an-1,通过多少次操作可以将序列变成非递减序列。

解题思路:

  如果序列本身是非递减序列,则输出0

  如果序列不是非递减的,令pre=0, i=n-1,然后将a[i]与a[pre]比较,

  如果a[i]≤a[pre],说明可以将a[i]放在数列前面,则更新pre=i,然后--i,继续上面操作,直到a[i]>a[pre],则不能交换(如果交换后不能满足非递减序列),退出循环

  再遍历 0~i,是否满足非递减

#include <iostream>
#include <vector>
#include <algorithm>
#include <string>
using namespace std; int main(){
int n, res = ;
cin >>n;
vector<int> a(n,);
bool flag = false;
for(int i = ; i < n; ++ i){
cin >> a[i];
if(i && a[i]<a[i-]) flag = true;
}
if(flag){
int pre= , i = n-;
for( i = n-; i >= ; -- i){
if(a[i]<= a[pre]){
res++;
pre = i;
} else break;
}
for(int j = ; j < i; ++ j){
if(a[j] > a[j+]) {res=-;break;}
}
}
cout<<res<<endl;
}

C. Little Pony and Expected Maximum

题目意思:

  有一个m面的骰子,骰子投掷出数为1 ,2,3,4......m,每个数被投掷出的概率是1/m,然后将该骰子投掷n次,问投掷出大期望值是多少?(每次投掷都是相互独立的)

解题思路:

  现在以m=6,n=3为例说明投掷n次后,注意每种情况出现的概率是1/mn

  最大值为1的情况是(1,1,1)

  最大值为2的情况是三次投掷中至少有一次是2

    当三次投掷中只有1次是2,则剩下2次,每次出现的情况只能是1,故有C(3,1)种可能

    当三次投掷中只有2次是2,则剩下1次,只能出现1,故有C(3,2)种可能

    当三次投掷全部是2时,则有C(3,3)种可能

    故所有的可能数是C(3,1)+C(3,2)+C(3,3)

  最大值为3的情况是三次投掷中至少有一次是3

    当三次投掷中只有1次是3时,则剩下2次,每次出现的点数是1或者2两种,故剩下2次的可能数是22  故整个可能数是C(3,1)*2种可能

    当三次投掷中只有2次是3时,则剩下1次,每次出现的点数是1或者2两种,故剩下1次的可能数是21  故整个可能数是C(3,2)*21 种可能

    当三次投掷中3次是3时,则剩下0次,每次出现的点数是1或者2两种,故剩下2次的可能数是20  故整个可能数是C(3,3)*20 种可能

    故所有的可能是C(3,1)*2+C(3,2)*21 +C(3,3)*20

  .................................

  假设现在是m,n,最大值为k的情况是n次投掷中至少有一次是k

    当n次投掷中只有1次是k时,则剩下n-1次,每次出现的点数是1....k-1任何一个数,故剩下n-1次的可能数是(k-1)n-1 故整个可能数是C(n,1)*(k-1)n-1种可能

    当n次投掷中只有2次是k时,则剩下n-2次,每次出现的点数是1....k-1任何一个数,故剩下n-2次的可能数是(k-1)n-2 故整个可能数是C(n,2)*(k-1)n-2种可能

    当n次投掷中只有3次是k时,则剩下n-3次,每次出现的点数是1....k-1任何一个数,故剩下n-1次的可能数是(k-1)n-3 故整个可能数是C(n,3)*(k-1)n-3种可能

    ....................................................

    故所有的可能是C(n,1)*(k-1)n-1 +C(n,2)*(k-1)n-2+C(n,3)*(k-1)n-3+.............+C(n,n)*(k-1)n-n, 缺少C(n,0)*(k-1)n

    根据公式(1+x)^n=C(n,n)+C(n,n-1)x^1+C(n,n-2)x^2+………+C(n,2)x^(n-2)+C(n,1)x^(n-1)+C(n,0)x^n

    故上述所有可能等于(1+k-1)n-(k-1)n-1=kn-(k-1)n-1

  故最大值为k的可能数是kn-(k-1)n-1

  整个的期望是Σk(kn-(k-1)n-1)/mn,其中k=1......n

  由于m,n都很大,用pow会溢出故需要处理,上述公式变为Σk(kn-(k-1)n-1)/mn=Σ(m(k/m)n+1-(k/k-1)(k-1/m)n)

#include <iostream>
#include <cmath>
#include <cstdio>
using namespace std; int main(){
int m,n;
cin >> m >> n;
double res = ;
for(int i = ; i <=m; ++i){
double a = double(i)/m, b = double(i-)/m;
res+=double(m)*pow(a,n+)-double(i)*pow(b,n);
}
printf("%0.5f\n",res);
}

Codeforces Round #259 (Div. 2)的更多相关文章

  1. Codeforces Round #259 (Div. 2)AB

    链接:http://codeforces.com/contest/454/problem/A A. Little Pony and Crystal Mine time limit per test 1 ...

  2. Codeforces Round #259 (Div. 1) A. Little Pony and Expected Maximum 数学公式结论找规律水题

    A. Little Pony and Expected Maximum Time Limit: 1 Sec  Memory Limit: 256 MB 题目连接 http://codeforces.c ...

  3. Codeforces Round #259 (Div. 2)-D. Little Pony and Harmony Chest

    题目范围给的很小,所以有状压的方向. 我们是构造出一个数列,且数列中每两个数的最大公约数为1; 给的A[I]<=30,这是一个突破点. 可以发现B[I]中的数不会很大,要不然就不满足,所以B[I ...

  4. Codeforces Round #259 (Div. 2) C - Little Pony and Expected Maximum (数学期望)

    题目链接 题意 : 一个m面的骰子,掷n次,问得到最大值的期望. 思路 : 数学期望,离散时的公式是E(X) = X1*p(X1) + X2*p(X2) + …… + Xn*p(Xn) p(xi)的是 ...

  5. Codeforces Round #259 (Div. 2) C - Little Pony and Expected Maximum

    题目链接 题意:一个m个面的骰子,抛掷n次,求这n次里最大值的期望是多少.(看样例就知道) 分析: m个面抛n次的总的情况是m^n, 开始m==1时,只有一种 现在增加m = 2,  则这些情况是新增 ...

  6. Codeforces Round #259 (Div. 2) D. Little Pony and Harmony Chest 状压DP

    D. Little Pony and Harmony Chest   Princess Twilight went to Celestia and Luna's old castle to resea ...

  7. Codeforces Round #259 (Div. 1)A(公式)

    传送门 题意 给出m个面的骰子扔n次,取最大值,求期望 分析 暴力算会有重复,而且复杂度不对. 考虑m个面扔n次得到m的概率,发现只要减去(m-1)个面扔n次得到m-1的概率即可,给出example说 ...

  8. Codeforces Round #259 (Div. 2) D

    D. Little Pony and Harmony Chest time limit per test 4 seconds memory limit per test 256 megabytes i ...

  9. Codeforces Round #366 (Div. 2) ABC

    Codeforces Round #366 (Div. 2) A I hate that I love that I hate it水题 #I hate that I love that I hate ...

随机推荐

  1. css负边距之详解

    自从1998年CSS2作为推荐以来,表格的使用渐渐退去,成为历史.正因为此,从那以后CSS布局成为了优雅代码的代名词. 对于所有设计师使用过的CSS概念,负边距作为最少讨论到的定位方式要记上一功.这就 ...

  2. 关于robotframework,app,appium的xpath定位问题及常用方法

    关于类似的帖子好像很多,但是没有找到具体能帮我解决问题的办法.还是自己深究了好久才基本知道app上面的xpath定位和web上的不同点: 先放一个图: A,先说说不用xpath的场景,一般是用于存在i ...

  3. java性能调优及问题追踪--Btrace的使用

    在生产环境中经常遇到格式各样的问题,如OOM或者莫名其妙的进程死掉.一般情况下是通过修改程序,添加打印日志:然后重新发布程序来完成.然而,这不仅麻烦,而且带来很多不可控的因素.有没有一种方式,在不修改 ...

  4. 如何将 Windows Server 2012 r2 打造成 Windows 8.1?

    Server 系列相对于桌面系统Windows 8.1 .嵌入式系统Embedded 8.1来说,还是有所不同的,有其独特性,所以,标题写着“打造”充其量不过是不断接近的意思.还有很多地方存在进一步深 ...

  5. 定义类型uint8_t,uint32_t

    定义的类型uint8_t,uint32_t能更明显的显示所占字节数.uint8_t表示占1个字节(1 字节=8 bit), uint32_t表示占4个字节((4 字节=32 bit). #includ ...

  6. struts2 No result defined for action XXX and result input

    这种错误的原因一般是页面的属性和action里的属性个数.名称.类型不一致造成的 困扰了我一下午的问题,原来是表单中有两个input-text的name属性重复了,然后接受参数的时候就出现了这个错误 ...

  7. maven集成tomcat插件以及乱码解决

    Maven已经是Java的项目管理标配,如何在JavaEE开发使用Maven调用Web应用,是很多同学关心的问题.本文将介绍,Maven如何介绍Tomcat插件. Maven Tomcat插件现在主要 ...

  8. MyEclipse 常用快捷键

    MyEclipse 常用快捷键 编辑: Ctrl+1 快速修复(最经典的快捷键,就不用多说了,可以解决很多问题,比如import类.try catch包围等) Ctrl+Shift+F 格式化当前代码 ...

  9. Delphi中DBChart的数据库应用

    一:属性相关:Series选项: (1)Format页(数据柱的风格) 在Color Each中打勾,就可使用多种颜色显示,color按钮用于设置颜色,Style用于设置图表的风格(Rectangle ...

  10. 求两个数字的最大公约数-Python实现,三种方法效率比较,包含质数打印质数的方法

    今天面试,遇到面试官询求最大公约数.小学就学过的奥数题,居然忘了!只好回答分解质因数再求解! 回来果断复习下,常用方法辗转相除法和更相减损法,小学奥数都学过,很简单,就不细说了,忘了的话可以百度:ht ...