Codeforces Round #259 (Div. 2)
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)*22 种可能
当三次投掷中只有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)*22 +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)的更多相关文章
- Codeforces Round #259 (Div. 2)AB
链接:http://codeforces.com/contest/454/problem/A A. Little Pony and Crystal Mine time limit per test 1 ...
- 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 ...
- Codeforces Round #259 (Div. 2)-D. Little Pony and Harmony Chest
题目范围给的很小,所以有状压的方向. 我们是构造出一个数列,且数列中每两个数的最大公约数为1; 给的A[I]<=30,这是一个突破点. 可以发现B[I]中的数不会很大,要不然就不满足,所以B[I ...
- 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)的是 ...
- Codeforces Round #259 (Div. 2) C - Little Pony and Expected Maximum
题目链接 题意:一个m个面的骰子,抛掷n次,求这n次里最大值的期望是多少.(看样例就知道) 分析: m个面抛n次的总的情况是m^n, 开始m==1时,只有一种 现在增加m = 2, 则这些情况是新增 ...
- 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 ...
- Codeforces Round #259 (Div. 1)A(公式)
传送门 题意 给出m个面的骰子扔n次,取最大值,求期望 分析 暴力算会有重复,而且复杂度不对. 考虑m个面扔n次得到m的概率,发现只要减去(m-1)个面扔n次得到m-1的概率即可,给出example说 ...
- 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 ...
- 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 ...
随机推荐
- Tomcat 学习心得
Tomcat Server的结构图 Tomcat服务器的启动是基于一个server.xml文件的,Tomcat启动的时候首先会启动一个Server,Server里面就会启动Service,Servic ...
- 解决Unsupported major.minor version 51.0错误
解决Unsupported major.minor version 51.0错误使用jdk6运行项目时发生了Unsupported major.minor version 51.0错误.经过网上搜索发 ...
- 3 Git服务器搭建
1. 环境部署 系统环境:服务器端:CentOS 6.5 ,ip:192.168.56.1 客户端:CentOS 6.5 ,ip:192.168.56.101 软件版本:服务器端:源码编译安装,git ...
- CocoaPods报错:The dependency `AFNetworking ` is not used in any concrete target 解决办法
产生这个问题的原因是最新版本的CocoaPods把Podfile文件的书写格式改变了,官网推荐用如下格式书写: platform :ios, '8.0' use_frameworks! target ...
- dreamweaver cs6 mac破解版
http://www.sdifenzhou.com/dreamweaver-cs6-mac.html
- Ubuntu 16.04 安装ftp服务器
1.sudo apt-get update 2.sudo apt-get install vsftpd ,执行完该步骤,vsftpd服务已经安装 3.创建ftp用户 a,创建用户目录 sudo mkd ...
- MySQL--InnoDB索引原理详解
1 各种树形结构 本来不打算从二叉搜索树开始,因为网上已经有太多相关文章,但是考虑到清晰的图示对理解问题有很大帮助,也为了保证文章完整性,最后还是加上了这部分. 先看看几种树形结构: 1 搜索二叉树: ...
- SpringMVC学习
1,对SpringMVC的理解 a,基于MVC的设计理念 b,采用松散耦合可插拔组件结构,比其他MVC框架更具扩展性和灵活性 c,支持REST风格的URL请求 d,该框架围绕DispatcherSer ...
- iOS 之各种Crash
1.*** Terminating app due to uncaught exception 'CALayerInvalidGeometry', reason: 'CALayer position ...
- Blender 之修改器代码分析
Blender的修改器(modifier)模块,默认界面右下块(Property)面板的扳手,分类(修改.生成.形变.模拟)列出所有的修改器.也可以空格键 ...