ACM-ICPC 2018 徐州赛区网络预赛 C Cacti Lottery(期望+暴力)
https://nanti.jisuanke.com/t/31455
题意
给一个3*3的方格填入 1-9 九个数
有些数是已知的,有些数是对方已知但我未知的,有些数是大家都未知的
我要计算取得最大的对应值的期望
分析
题意有点难懂。
首先先枚举把剩下的数填入星号的情况(其实就是枚举星号的排列),这是对方所能知道的所有信息,然后对方将取八种决策中最优的情况,而因为井号的存在,所以其排列也会影响每种决策的分数,所以接着要枚举井号的排列情况,对于每种情况累加每个决策的分数,最后枚举完后,要除以井号排列数(期望=分数*概率),然后对方便会选择期望最高的决策,累加到最后答案中,枚举完所有星号的之后,需要将最后答案除以星号排列数
#include<bits/stdc++.h>
using namespace std;
double ans;
int cnt,tot;
bool vis[];
char s[][];
int p[],a[],tmp[];
int state[];
int S[][]={
,,,
,,,
,,,
,,,
,,,
,,,
,,,
,,
};
int score[]={,,,,,,,,,,,,,,
,,,,,,,,,,};
int fac[];
void work(){
vector<int> num;
for(int i=;i<;i++) state[i]=;
for(int i=;i<=;i++){
if(!vis[i]){
num.push_back(i);
}
} do{
int na=,nb=;
for(int i=;i<;i++){
for(int j=;j<;j++){
if(s[i][j]=='*') tmp[i*+j]=p[na++];
else if(s[i][j]=='#') tmp[i*+j]=num[nb++];
else tmp[i*+j]=s[i][j]-'';
}
}
for(int i=;i<;i++){
int sum=;
for(int j=;j<;j++){
sum+=tmp[S[i][j]];
}
state[i]+=score[sum];
}
}while(next_permutation(num.begin(),num.end()));
double res=;
for(int i=;i<;i++){
res=max(res,state[i]*1.0/fac[num.size()]);
}
ans+=res;
}
void dfs(int pos){
if(pos==tot){
cnt++;
work();
return;
}
for(int i=;i<=;i++){
if(!vis[i]){
vis[i]=true;
p[pos]=i;
dfs(pos+);
vis[i]=false;
}
}
} int main(){
fac[]=;
for(int i=;i<;i++) fac[i]=fac[i-]*i;
int T;
scanf("%d",&T);
while(T--){
memset(vis,false,sizeof(vis));
tot=;
for(int i=;i<;i++){
scanf("%s",s[i]);
int len = strlen(s[i]);
for(int j=;j<len;j++)
if(s[i][j]=='*') tot++;
else if(isdigit(s[i][j])) vis[s[i][j]-'']=true;
}
ans=cnt=;
dfs();
ans=ans/cnt;
printf("%.8f\n",ans);
}
return ;
}
ACM-ICPC 2018 徐州赛区网络预赛 C Cacti Lottery(期望+暴力)的更多相关文章
- ACM-ICPC 2018 徐州赛区网络预赛 C Cacti Lottery(暴力+期望)
链接https://nanti.jisuanke.com/t/31455 思路 首先先枚举把剩下的数填入星号的情况(其实就是枚举星号的排列),这是对方所能知道的所有信息,然后对方将取八种决策中最优的情 ...
- 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 ...
随机推荐
- 记录Nginx模块开发
--with-http_stub_status_module模块:Nginx的客户端状态 Syntax:stub_status Default:-- Content:server,location l ...
- 使用Python的Mock库进行PySpark单元测试
测试是软件开发中的基础工作,它经常被数据开发者忽视,但是它很重要.在本文中会展示如何使用Python的uniittest.mock库对一段PySpark代码进行测试.笔者会从数据科学家的视角来进行描述 ...
- django 模型层(2)
Django 模型层(2) 多表操作---模型之间的关系 1 一对一:作者----作者详细信息 2 一对多:书籍----出版社 3 多对多:书籍----作者 一 创建模型(主键(id)自动创建) 没 ...
- kafka-rest:怎么愉快的build?
愉快的build该项目吧 git clone https://github.com/confluentinc/kafka-restmvn clean install -Dmaven.test.skip ...
- 微信小程序设置域名、不校验域名
设置--项目设置 将不校验域名勾上就可以了,不再校验域名了通过 url: 'https://localhost:8443/spring4/user/list.do',就可以访问后台了. 若要配置域名则 ...
- 实战申请Let's Encrypt永久免费SSL证书过程教程及常见问题
最近需要https这里看到一份不错的博客,收录一下! Let's Encrypt作为一个公共且免费SSL的项目逐渐被广大用户传播和使用,是由Mozilla.Cisco.Akamai.IdenTrust ...
- day12-内置模块学习(三)
我的博客呀,从以前的预习变成了复习了,复习的东西还没有写完,哎 今日目录 1.序列化模块 2.加密模块 3.包的使用 4.random模块 5.shutil模块 开始今日份总结 1.序列化模块 在学习 ...
- Python两大佬互相撕逼 技术何苦为难技术?
最近两天 Python 圈发生了一件大事,两个 Python 大佬撕逼了起来了. 不,其实是一个大佬(刘志军)被怼. 事情是这样的. 背景 人物介绍: 董明伟:公众号「Python 之美」的作者,似乎 ...
- [Spark][Streaming]Spark读取网络输入的例子
Spark读取网络输入的例子: 参考如下的URL进行试验 https://stackoverflow.com/questions/46739081/how-to-get-record-in-strin ...
- 解决 AttributeError: 'ForeignKey' object has no attribute 're'
解决办法 # print('rel...',filter_field_obj.re.to.objects.all()) print("rel...", filter_field_o ...