链接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(暴力+期望)的更多相关文章

  1. ACM-ICPC 2018 徐州赛区网络预赛 C Cacti Lottery(期望+暴力)

    https://nanti.jisuanke.com/t/31455 题意 给一个3*3的方格填入 1-9 九个数 有些数是已知的,有些数是对方已知但我未知的,有些数是大家都未知的 我要计算取得最大的 ...

  2. ACM-ICPC 2018 徐州赛区网络预赛 G. Trace (思维,贪心)

    ACM-ICPC 2018 徐州赛区网络预赛 G. Trace (思维,贪心) Trace 问答问题反馈 只看题面 35.78% 1000ms 262144K There's a beach in t ...

  3. ACM-ICPC 2018 徐州赛区网络预赛 J. Maze Designer (最大生成树+LCA求节点距离)

    ACM-ICPC 2018 徐州赛区网络预赛 J. Maze Designer J. Maze Designer After the long vacation, the maze designer ...

  4. 计蒜客 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 ...

  5. ACM-ICPC 2018 徐州赛区网络预赛 B(dp || 博弈(未完成)

    传送门 题面: In a world where ordinary people cannot reach, a boy named "Koutarou" and a girl n ...

  6. 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 ...

  7. 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 ...

  8. ACM-ICPC 2018 徐州赛区网络预赛 F. Features Track

    262144K   Morgana is learning computer vision, and he likes cats, too. One day he wants to find the ...

  9. 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 ...

随机推荐

  1. 1.尽量以const ,enum,inline替换define

    1.#define为预处理阶段命令 原因:有可能记号名称没有进入记号表,而出现编译错误,即编译器并没看到过该定义. class专属常量const 一般定义为static,保证该常量至多有一份实体. 枚 ...

  2. 【centos】centos安装g++

    gcc在Centos下的安装:使用的是以下语句:yum install gcc 以为安装g++,类似的应该使用:yum install g++ 可是提示:command is not found 查询 ...

  3. os & sys

    os os.getcwd() 获取当前工作目录,即当前python脚本工作的目录路径 os.chdir("dirname") 改变当前脚本工作目录:相当于shell下cd os.c ...

  4. 让listView gridView全部扩展开

    public class NoScrollListView extends ListView {    public NoScrollListView(Context context, Attribu ...

  5. PHP 语句 函数 字符串处理

    语句: 一:分支语句 1.if(条件1){满足条件1执行} 2.if(条件1){满足条件1执行}else{不满足条件1执行} 3.if(条件1){满足条件1执行}else if(条件2){满足条件2执 ...

  6. iOS.Crash.OniOS8.WhenCall[popToRootViewController]

    系统iOS 8.x, ARC. CrashCase: 在UIViewController中有一个类型为UIScrollView的实例变量scrollView, 点击UIViewController中的 ...

  7. 2019年学Java开发有优势吗?

    随着信息科技的发展,在我们的日程生活和工作中到处充斥和使用着互联网信息技术.事实说明,互联网已经越来越广泛地深入到人们生活的方方面面,Java技术服务市场需求空缺会越来越大.学会一门IT技术,将拥有更 ...

  8. jqgrid子表格

    .前台 <%-- builed by manage.aspx.cmt [ver:] at // :: --%> <%@ Page Language="C#" Au ...

  9. Valid Mountain Array LT941

    Given an array A of integers, return true if and only if it is a valid mountain array. Recall that A ...

  10. jquery查找frameset框架内iframe的元素

    老系统还幸存有过时的frameset框架,维护升级工作需要对其内部的iframe中的元素进行相关操作.使用jquery查找子iframe页面内的元素时,总找不到目标元素.后来发现少了contents ...