博客
关于我
LightOJ 1284 Lights inside 3D Grid(概率)
阅读量:792 次
发布时间:2023-01-31

本文共 927 字,大约阅读时间需要 3 分钟。

题目链接:

题意:X*Y*Z。每个位置(x,y,z)有一盏灯,初始时是灭的。K轮操作。每轮任意选两盏灯(可以相同)将其之间的所有灯翻转。问最后明着的灯的数量期望。

思路:先求出每盏灯在一轮中被改变的概率,对于(i,j,k)位置的,只要选择的两盏灯不在同一侧就行。那么可以对于每一维分别算,比如对于X这一维,就是减去在其同侧的。然后计算K轮被改变奇数次的概率就是该盏灯最后对答案的贡献。这f(n)表示n次改变奇数次,g(n)表示偶数次,则有f(n)=f(n-1)*(1-p)+g(n-1)*p,然后g(n)=1-f(n)得到:f(n)=f(n-1)*(1-2p)+p,最后得到f(n)=(1-(1-2p)^n)/2。

#include 
#include
int x,y,z,K;int C,num=0; double get(int a,int b){ return 1.0*b*b-(a-1)*(a-1)-(b-a)*(b-a);} int main(){ for(scanf("%d",&C);C--;) { scanf("%d%d%d%d",&x,&y,&z,&K); printf("Case %d: ",++num); double ans=0,p,t=1.0*x*x*y*y*z*z; int i,j,k; for(i=1;i<=x;i++) for(j=1;j<=y;j++) for(k=1;k<=z;k++) { p=1.0*get(i,x)*get(j,y)*get(k,z)/t; ans+=0.5-0.5*pow(1-p-p,1.0*K); } printf("%.8lf\n",ans); } return 0;}

  

转载于:https://www.cnblogs.com/jianglangcaijin/archive/2013/01/01/2841663.html

你可能感兴趣的文章
2025版最新常用黑客工具之【Nmap 教程基础】零基础入门到精通,收藏这篇就够了
查看>>
2025版最新渗透测试和黑客工具列表,零基础入门到精通,收藏这一篇就够了
查看>>
java反射介绍
查看>>
Java可变参数列表
查看>>
Java后端使用socketio,实现小程序答题pk功能
查看>>
Java基础学习总结(47)——JAVA输入输出流再回忆
查看>>
Java基础学习总结(4)——对象转型
查看>>
Java基础学习总结(4)——对象转型
查看>>
Java基础学习总结(57)——Jrebel插件热部署
查看>>
Java基础学习总结(67)——Java接口API中使用数组的缺陷
查看>>
Java基础学习总结(70)——开发Java项目常用的工具汇总
查看>>
Java基础学习总结(73)——Java最新面试题汇总
查看>>
Java基础学习总结(75)——Java反射机制及应用场景
查看>>
Java基础系列
查看>>
Kubernetes 自定义服务的启动顺序
查看>>
kubernetes 部署SonarQube 7.1 关联LDAP
查看>>
Java基础:按位运算符
查看>>
Java基础:比较运算符
查看>>
Kubernetes 集群卸载清理
查看>>
kubernetes1.5.2--部署node-problem-detector服务
查看>>