BZOJ3150: [Ctsc2013]猴子
这题好神啊..好神啊..
首先得到简单的DP方程:
$f_{\{ i \}}=\frac{\sum_{i \ne j} f_ {\{ i,j \}} \times P_{(i,j)}}{N-1}$
然后存在这样一个关系:$f_{A \cup B}=f_{A}+f_{B}$。
所以上面那个DP方程就可以很愉悦的改为:
$f_{\{ i \}}=\frac{\sum_{i \ne j} (f_ {\{ i\}} +f_{\{ j \} } )\times P_{(i,j)}}{N-1}$
因为存在相互依赖关系,用高斯消元求解。
然后因为最后为了防止出现所有元素都为$0$的解,需要加上$\sum f_i =1$这一个限制条件。
//BZOJ 3150 //by Cydiater //2017.1.22 #include <iostream> #include <queue> #include <map> #include <cstdio> #include <cstring> #include <string> #include <ctime> #include <cmath> #include <algorithm> #include <iomanip> #include <cstdlib> #include <bitset> #include <set> #include <vector> using namespace std; #define ll long long #define up(i,j,n) for(int i=j;i<=n;i++) #define down(i,j,n) for(int i=j;i>=n;i--) #define cmax(a,b) a=max(a,b) #define cmin(a,b) a=min(a,b) #define db double const int MAXN=1005; db M[MAXN][MAXN],P[MAXN][MAXN]; int N,MM; char s[MAXN]; namespace solution{ void Prepare(){ scanf("%d%d",&N,&MM); up(i,1,N)up(j,1,N)scanf("%lf",&P[i][j]); up(i,1,N-1){ M[i][i]=1-N; up(j,1,N)if(i!=j){ M[i][j]+=P[i][j]; M[i][i]+=P[i][j]; } } up(i,1,N+1)M[N][i]=1; } void Guass(){ int waited; up(i,1,N){ waited=i; up(j,i+1,N)if(abs(M[j][i])>abs(M[waited][i]))waited=j; if(i!=waited)up(j,i,N+1)swap(M[waited][j],M[i][j]); up(j,i+1,N){ db f=M[j][i]/M[i][i]; up(k,i,N+1)M[j][k]-=f*M[i][k]; } } down(i,N,1){ up(j,i+1,N)M[i][N+1]-=M[i][j]*M[j][N+1]; M[i][N+1]/=M[i][i]; } } void Solve(){ Guass(); while(MM--){ scanf("%s",s); int len=strlen(s); db ans=0; up(i,0,len)if(s[i]=='1')ans+=M[i+1][N+1]; printf("%.8lf\n",ans); } } } int main(){ //freopen("input.in","r",stdin); using namespace solution; Prepare(); Solve(); return 0; }
BZOJ3150: [Ctsc2013]猴子的更多相关文章
- [BZOJ3150][Ctsc2013]猴子 期望dp+高斯消元
3150: [Ctsc2013]猴子 Time Limit: 20 Sec Memory Limit: 256 MBSec Special JudgeSubmit: 163 Solved: 10 ...
- BZOJ 3150 [Ctsc2013]猴子 ——期望DP 高斯消元
一堆牌的期望等于每张牌的期望值和. 考虑三个人的游戏即可得到. 然后每张牌遇到另外一张的概率相同,然后就可以列方程求解了. #include <cmath> #include <cs ...
- bzoj AC倒序
Search GO 说明:输入题号直接进入相应题目,如需搜索含数字的题目,请在关键词前加单引号 Problem ID Title Source AC Submit Y 1000 A+B Problem ...
- 《饥荒游戏》SW BUG 刷猴子 & 刷淘气值 办法
简介 该办法利用刷猴子的方式,通过杀猴子获取淘气值,从而刷出坎普斯,继而刷坎普斯背包 物品准备 灭火器x1 箱子x1 逗猴球x1 猴窝xN 帽贝岩x2 避雷针x1 操作步骤 1.灭火器建造在2个帽贝岩 ...
- c语言经典算法——猴子偷桃问题
题目:海滩上有一堆桃子,五只猴子来分.第一只猴子把这堆桃子凭据分为五份,多了一个,这只猴子把多的一个扔入海中,拿走了一份.第二只猴子把剩下的桃子又平均分成五份,又多了一个,它同样把多的一个扔入海中,拿 ...
- 网络神器Greasemonkey(油猴子)使用方法简介+脚本分享【转载】
推荐下,觉得这个方法有用, 今天艾薇百科来介绍一下功能强大的Greasemonkey,俗称"油猴子",Greasemonkey可以自由定制网页,实现你想要的各种功能.堪称" ...
- sicily 猴子选大王
题目描述 猴子选大王,有N只猴子,从1-N进行编号.它们按照编号的顺时针方向,排成一个圆圈,然后从第一只猴子开始报数.第一只猴子报1,以后每只猴子报的数字都是它前面猴子所报数字加1.如果一只猴子报的数 ...
- 踩个猴尾不容易啊 Canvas画个猴子
踩个猴尾不容易啊 Canvas画个猴子 <!DOCTYPE html> <html> <head> <meta charset="UTF-8&qu ...
- BZOJ2429[HAOI2006]聪明的猴子[最小生成树 kruskal]
2429: [HAOI2006]聪明的猴子 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 896 Solved: 575[Submit][Statu ...
随机推荐
- WCF入门(十)——服务对象模型
当发生一次WCF请求-响应操作时,会经过如下几个步骤 WCF Client想WCF Server发送一个服务请求 WCF Server创建WCF服务对象 WCF Server调用WCF服务对象接口,将 ...
- asp 中创建日志打印文件夹
string FilePath = HttpRuntime.BinDirectory.ToString(); string FileName = FilePath + "日志" + ...
- Spring在Web应用中使用的原理
那Spring如何在web应用中使用 ①加入Spring web应用的特定jar包spring-web-4.0.0.RELEASE.jar.spring-webmvc-4.0.0.RELEASE.ja ...
- Code Force 21B Intersection
B. Intersection time limit per test1 second memory limit per test256 megabytes inputstandard input o ...
- Servlet------>jsp自定义标签(JSPTAG接口)
TagSupport实现类里不只实现了tag接口,还有tag接口的子接口,也就是IterationTag子接口中增加了doAfterBody()方法和EVAL_BODY_AGAIN常量,为了实现标签体 ...
- WARNING:tensorflow:From /usr/lib/python2.7/site-packages/tensorflow/python/util/tf_should_use.py:189: initialize_all_variables (from tensorflow.python.ops.variables) is deprecated and will be removed
initialize_all_variables已被弃用,将在2017-03-02之后删除. 说明更新:使用tf.global_variables_initializer代替. 就把tf.initia ...
- c++ caffe 输出 activation map 、 层参数
python输出activation map与层参数:https://blog.csdn.net/tina_ttl/article/details/51033660 caffe::Net文档: htt ...
- php 计算gps坐标 距离
在计算机或GPS上经纬度经常用度.分.秒和度.度.分.分.秒.秒的混合方式进行表示,度.分.秒间的进 制是60进制,度.度.分.分. 秒.秒的进制是100进制,换算时一定要注意.可以近似地认为每个纬度 ...
- TypeScript教程
汇智课堂 地址 http://www.hubwiz.com/course/55b724ab3ad79a1b05dcc26c/ TypeScript是一种由微软开发的自由和开源的编程语言.它是Java ...
- PHP生成名片、网址二维码
PHP生成名片.网址二维码 php生成名片(vcard)二维码: <?php$vname = 'test'; $vtel = '13800000000'; generateQRfromGoo ...