A - Arcade Game Gym - 100814A (概率思维题)
题目链接:https://cn.vjudge.net/contest/285964#problem/A
题目大意:每一次给你你一个数,然后对于每一次操作,可以将当前的数的每一位互换,如果互换后的数小于等于原来的数,那么停止操作,如果大于原来的数,则继续操作,到达当前这些数字能租成的最大的数的时候停止,然后问你能组成最大的数概率是多少?
具体思路:对于当前的数,我们先计算出这个比这个数大的有多少个,这个过程可以通过全排列的函数来进行计算。然后再计算一下当前的位数能构成的数的个数是多少,然后就开始求概率了。假设比当前的数大的有三个,那么概率计算就是 C(2,0)*(1/3)+C(2,1)*(1/3)*(1/3)+C(2,2)*(1/3)*(1/3)*(1/3).解释一下为什么是C(2,1),我们假设当前的关系是1>2>3,对于1,我们既可以通过2跳过去,还可以通过3跳过去,所以是C(2,1)。然后再开始化简式子(直接组合数会超时,,)对于上面的式子,我们把(1/3)提取出来,然后就变成了(1/3)*(1+2*(1/3)+(1/3)*(1/3)),然后就是(1/q)*(1+1/q)^(n-1).
AC代码:
#include<iostream>
#include<cmath>
#include<stdio.h>
#include<algorithm>
using namespace std;
# define ll long long
const int maxn = 2e4+;
int f[maxn];
int a[maxn];
int main(){
// cout<<(1.0/6.0)*(1.0+1.0/6.0)<<endl;
int T;
f[]=;
for(int i=;i<=;i++){
f[i]=f[i-]*i;
}
scanf("%d",&T);
while(T--){
int n;
scanf("%d",&n);
int num=;
while(n){
a[++num]=n%;
n/=;
}
for(int i=;i<=num/;i++){
swap(a[i],a[num-i+]);
}
int ans=;
while(next_permutation(a+,a+num+)){
ans++;
}
if(ans==){
printf("0.000000000\n");
continue;
}
double tot=1.0/(f[num]*1.0);
//cout<<f[num]<<endl;
double d=1.0/(f[num]*1.0);
double tmp=1.0+d;
//cout<<tmp<<" "<<tot<<endl;
for(int i=;i<ans;i++){
tot=tot*tmp;
}
printf("%.9lf\n",tot);
}
return ;
}
A - Arcade Game Gym - 100814A (概率思维题)的更多相关文章
- UVA 1394 And Then There Was One / Gym 101415A And Then There Was One / UVAlive 3882 And Then There Was One / POJ 3517 And Then There Was One / Aizu 1275 And Then There Was One (动态规划,思维题)
UVA 1394 And Then There Was One / Gym 101415A And Then There Was One / UVAlive 3882 And Then There W ...
- 思维题 Gym 100553A Alter Board
题目传送门 /* 题意:一个n×m的矩形,相邻的颜色不同,黑或白.问最少的翻转次数,每次翻转可指定任意一个子矩形 思维题:最少要把偶数行和列翻转,也就是n/2+m/2次 */ #include < ...
- zoj 3778 Talented Chef(思维题)
题目 题意:一个人可以在一分钟同时进行m道菜的一个步骤,共有n道菜,每道菜各有xi个步骤,求做完的最短时间. 思路:一道很水的思维题, 根本不需要去 考虑模拟过程 以及先做那道菜(比赛的时候就是这么考 ...
- cf A. Inna and Pink Pony(思维题)
题目:http://codeforces.com/contest/374/problem/A 题意:求到达边界的最小步数.. 刚开始以为是 bfs,不过数据10^6太大了,肯定不是... 一个思维题, ...
- ZOJ 3829 贪心 思维题
http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3829 现场做这道题的时候,感觉是思维题.自己智商不够.不敢搞,想着队友智商 ...
- 洛谷P4643 [国家集训队]阿狸和桃子的游戏(思维题+贪心)
思维题,好题 把每条边的边权平分到这条边的两个顶点上,之后就是个sb贪心了 正确性证明: 如果一条边的两个顶点被一个人选了,一整条边的贡献就凑齐了 如果分别被两个人选了,一作差就抵消了,相当于谁都没有 ...
- C. Nice Garland Codeforces Round #535 (Div. 3) 思维题
C. Nice Garland time limit per test 1 second memory limit per test 256 megabytes input standard inpu ...
- PJ考试可能会用到的数学思维题选讲-自学教程-自学笔记
PJ考试可能会用到的数学思维题选讲 by Pleiades_Antares 是学弟学妹的讲义--然后一部分题目是我弄的一部分来源于洛谷用户@ 普及组的一些数学思维题,所以可能有点菜咯别怪我 OI中的数 ...
- HDU 1029 Ignatius and the Princess IV / HYSBZ(BZOJ) 2456 mode(思维题,~~排序?~~)
HDU 1029 Ignatius and the Princess IV (思维题,排序?) Description "OK, you are not too bad, em... But ...
随机推荐
- adb 查看包名或其他
http://blog.sina.com.cn/s/blog_5b478f870102v5bo.html
- jenkins发版svn
1.在mac上直接安装Jenkins,下载地址 : 2.安装插件:系统管理-->插件管理 publish over ssh Exec command: cd /usr/local/apache- ...
- HTML学习笔记Day8
一.设置元素背景透明属性{background:rgba(255,255,255,0.5):} 1.元素背景透明,内容正常显示: 注:opacity:value:元素背景透明内容也透明: 2.rgba ...
- Cookie隐藏小广告
方式一:在close.php页面上设置COOKIE, colse.php页面 <?php setcookie('hide','1'); header('Location: indes.php') ...
- apache thrift分析
thrift是一个用来实现跨语言的远程调用(RPC Remote Procedure Call)的软件框架.根据接口定义语言(IDL Interface definition lanuage) 并借助 ...
- Hadoop序列化-流量汇总案例
Hadoop序列化案例-流量汇总需求 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Hadoop序列化 1>.为什么要序列化 一般来说,“活的”对象只生存在内存里,关机断 ...
- jdk7 并行计算框架Fork/Join
故名思义,拆分fork+合并join.jdk1.7整合Fork/Join,性能上有大大提升. 思想:充分利用多核CPU把计算拆分成多个子任务,并行计算,提高CPU利用率大大减少运算时间.有点像,Map ...
- 检索 COM 类工厂中 CLSID 为 {00024500-0000-0000-C000-000000000046} 的组件时失 败,原因是出现以下错误: 80080005
.Net MVC项目,在下载一个Excel的时候总是报错. 解决办法: 在服务器中,运行dcomcnfg打开组件服务, 依次展开"组件服务"->"计算机" ...
- zookeeper安装(单机版)
1:查看当前服务器IP: # ifconfig 情况1:直接可以看到自己的IP:192.168.164.130 情况2:看不到自己的IP(但是能看到ifcfg-开头的东西,如:ifcfg-eno167 ...
- Kafka技术内幕 读书笔记之(四) 新消费者——消费者提交偏移量
消费组发生再平衡时分区会被分配给新的消费者,为了保证新消费者能够从分区的上一次消费位置继续拉取并处理消息,每个消费者需要将分区的消费进度,定时地同步给消费组对应的协调者节点 .新AP I为客户端提供了 ...