ACM-ICPC 2018 徐州赛区网络预赛 C Cacti Lottery(暴力+期望)
链接https://nanti.jisuanke.com/t/31455
思路
- 首先先枚举把剩下的数填入星号的情况(其实就是枚举星号的排列),这是对方所能知道的所有信息,然后对方将取八种决策中最优的情况,而因为井号的存在,所以其排列也会影响每种决策的分数,所以接着要枚举井号的排列情况,对于每种情况累加每个决策的分数,最后枚举完后,要除以井号排列数(期望=分数*概率),然后对方便会选择期望最高的决策,累加到最后答案中,枚举完所有星号的之后,需要将最后答案除以星号排列数
#include<bits/stdc++.h>
#define pb push_back
#define M 20
using namespace std;
int G[8][3]={
{0,1,2},{3,4,5},{6,7,8},{0,3,6},{1,4,7},{2,5,8},{0,4,8},{2,4,6},
};
int id[]={0,0,0,0,0,0,10000,36,720,360,80,252,108,72,54,180,72,180,119,36,360,
1080,144,1800,3600};
int tp[M],g[M],p[M],vi[M],tot,i,F[M],Cnt;
double cnt[M],ans;
vector<int>pos;
char s[M];
void ck(){
vector<int>num;
for(int i=0;i<8;i++)cnt[i]=0;
for(int i=1;i<=9;i++){
if(!vi[i])num.pb(i);
}
do{
int a=0,b=0;
for(int i=0;i<9;i++){
if(g[i]>0)tp[i]=g[i];
else if(g[i]==0)tp[i]=p[a++];
else tp[i]=num[b++];
}
for(int i=0;i<8;i++){
a=0;
for(int j=0;j<3;j++){
a+=tp[G[i][j]];
}
cnt[i]+=id[a];
}
}while(next_permutation(num.begin(),num.end()));
double T=0;
for(int i=0;i<8;i++){cnt[i]=cnt[i]*1.0/F[num.size()];T=max(T,cnt[i]);}
ans+=T;
}
void dfs(int d){
if(d==pos.size()){
Cnt++;
ck();return;
}
for(int i=1;i<=9;i++){
if(!vi[i]){
vi[i]=1;p[d]=i;
dfs(d+1);vi[i]=0;
}
}
}
int main(){
int T;scanf("%d",&T);
F[0]=F[1]=1;for(i=2;i<=9;i++)F[i]=F[i-1]*i;
while(T--){
Cnt=tot=0;ans=0;
pos.clear();memset(vi,0,sizeof(vi));
for(int _=0;_<3;_++){
scanf("%s",s);for(i=0;i<strlen(s);i++){
if(s[i]=='#'){g[tot++]=-1;}
else if(s[i]=='*'){pos.pb(tot);g[tot++]=0;}
else {g[tot++]=s[i]-'0';vi[s[i]-'0']=1;}
}
}
dfs(0);
ans=ans*1.0/Cnt;
printf("%.7f\n",ans);
}
}
知识点
*暴力求期望:枚举所有情况的总分/所有情况数
ACM-ICPC 2018 徐州赛区网络预赛 C Cacti Lottery(暴力+期望)的更多相关文章
- ACM-ICPC 2018 徐州赛区网络预赛 C Cacti Lottery(期望+暴力)
https://nanti.jisuanke.com/t/31455 题意 给一个3*3的方格填入 1-9 九个数 有些数是已知的,有些数是对方已知但我未知的,有些数是大家都未知的 我要计算取得最大的 ...
- ACM-ICPC 2018 徐州赛区网络预赛 G. Trace (思维,贪心)
ACM-ICPC 2018 徐州赛区网络预赛 G. Trace (思维,贪心) Trace 问答问题反馈 只看题面 35.78% 1000ms 262144K There's a beach in t ...
- ACM-ICPC 2018 徐州赛区网络预赛 J. Maze Designer (最大生成树+LCA求节点距离)
ACM-ICPC 2018 徐州赛区网络预赛 J. Maze Designer J. Maze Designer After the long vacation, the maze designer ...
- 计蒜客 1460.Ryuji doesn't want to study-树状数组 or 线段树 (ACM-ICPC 2018 徐州赛区网络预赛 H)
H.Ryuji doesn't want to study 27.34% 1000ms 262144K Ryuji is not a good student, and he doesn't wa ...
- ACM-ICPC 2018 徐州赛区网络预赛 B(dp || 博弈(未完成)
传送门 题面: In a world where ordinary people cannot reach, a boy named "Koutarou" and a girl n ...
- ACM-ICPC 2018 徐州赛区网络预赛 B. BE, GE or NE
In a world where ordinary people cannot reach, a boy named "Koutarou" and a girl named &qu ...
- ACM-ICPC 2018 徐州赛区网络预赛 H. Ryuji doesn't want to study
262144K Ryuji is not a good student, and he doesn't want to study. But there are n books he should ...
- ACM-ICPC 2018 徐州赛区网络预赛 F. Features Track
262144K Morgana is learning computer vision, and he likes cats, too. One day he wants to find the ...
- ACM-ICPC 2018 徐州赛区网络预赛 I. Characters with Hash
Mur loves hash algorithm, and he sometimes encrypt another one's name, and call him with that encryp ...
随机推荐
- 牛客练习赛17 C 操作数(组合数+逆元)
给定长度为n的数组a,定义一次操作为: 1. 算出长度为n的数组s,使得si= (a[1] + a[2] + ... + a[i]) mod 1,000,000,007: 2. 执行a = s: 现在 ...
- war包内更新文件
感谢@这个博客提供的分享 亲测有效,原文: 1.如果要替换的文件直接在war包的根目录(一级目录)下,直接使用jar uvf命令替换即可 如:替换a.war中b.xml文件 jar uvf a.war ...
- hadoop fs 命令使用
参考:https://segmentfault.com/a/1190000002672666 命令基本格式: hadoop fs -cmd < args > 1.ls hadoop fs ...
- 在 JavaScript 中 ["1","2","3"].map(parseInt) 为何返回不是 [1,2,3] 却是 [1,NaN,NaN]?
这个问题我是希望有很多人可以一起交流的: 我在 http://blog.csdn.net/justjavac/article/details/19473199#t0 上看到了比较详细的解释, 但是具体 ...
- Mysql数据库(一)
一 什么是数据库 一般来说,所有的数据都要存储在硬盘中,为了方便对这些数据的管理因此就出现了例如MySQL SQLserver oracle等数据库管理软件. 数据库中的数据按一定的数据模型组织.描述 ...
- Vue v-if 和 v-show
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...
- Eigen解线性方程组
一. 矩阵分解: 矩阵分解 (decomposition, factorization)是将矩阵拆解为数个矩阵的乘积,可分为三角分解.满秩分解.QR分解.Jordan分解和SVD(奇异值)分解等,常见 ...
- UVA 11235 (RMQ) 频繁出现的数值
题目大意是给出一个非降序排列的数组,然后n个询问,每次询问一个区间内出现次数最多的数的次数. 首先要弄清楚题目的是一个非降序的数组,那么说明相等的数都会在一起,类似于11223334569这样的,那么 ...
- Squid 搭建正向代理服务器
Squid 是一款缓存代理服务器软件,广泛用于网站的负载均衡架构中,常见的缓存服务器还有varnish.ATS等. 正向代理服务器可满足内网仅有一台服务器可以上网,而要供内网所有机器上网的需求,也可以 ...
- POJ2349 Arctic Network
原题链接 先随便找一棵最小生成树,然后贪心的从大到小选择边,使其没有贡献. 显然固定生成树最长边的一个端点安装卫星频道后,从大到小选择边的一个端点作为卫星频道即可将该边的贡献去除. 所以最后的答案就是 ...