GYM - 101147 K.Touristic Trip
题意:
一个人从城市0开始旅行。一共有N座城市,他每到一座城市都会寄一张明信片。给出从一座城市到另一座城市的概率和在每座城市寄出每张明信片的概率。给出长度为k的寄明信片的序列。问在该序列的条件下在第Z个城市寄出第Q张明信片的序列。
题解:
条件概率:P(A|B) = P(A,B)/P(B)
dp[i][j]代表第i个城市是城市j且寄出第a[i]张明信片的概率。
dp[i][j] += sum{dp[i-1][k]*p[k][j]*c[j][a[i]}(0<=j<n)
P(B) = sum{dp[k-1][j]}(0,=j<n)
令dpp[Q][Z] = dp[Q][Z] dpp[Q][j] = 0(j!=Z)
后面dpp像dp一样算。
P(A,B) = sum{dpP[k-1][j]}(0,=j<n)
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
int t;
int n, m, k, q, z;
double p[][], c[][];
double dp[][], dpp[][];
int a[];
int main() {
freopen("trip.in","r",stdin);
scanf("%d", &t);
while(t--) {
memset(dp, , sizeof(dp));
memset(dpp, , sizeof(dpp));
scanf("%d%d%d%d%d", &n, &m, &k, &q, &z);
for(int i = ; i < n; i++)
for(int j = ; j < n; j++) scanf("%lf", &p[i][j]);
for(int i = ; i < n; i++)
for(int j = ; j < m; j++) scanf("%lf", &c[i][j]);
for(int i = ; i < k; i++) scanf("%d", &a[i]);
dp[][] = c[][a[]];
for(int i = ; i <= q; i++) {
for(int j = ; j < n; j++)
for(int k = ; k < n; k++)
dp[i][j] += dp[i-][k]*p[k][j]*c[j][a[i]];
}
dpp[q][z] = dp[q][z];
for(int i = q+; i < k; i++) {
for(int j = ; j < n; j++)
for(int k = ; k < n; k++) {
dp[i][j] += dp[i-][k]*p[k][j]*c[j][a[i]];
dpp[i][j] += dpp[i-][k]*p[k][j]*c[j][a[i]];
}
}
for(int i = ; i < n; i++) {
dp[k-][i] += dp[k-][i-];
dpp[k-][i] += dpp[k-][i-];
}
printf("%.3lf\n", dpp[k-][n-]/dp[k-][n-]);
}
}
GYM - 101147 K.Touristic Trip的更多相关文章
- gym/102021/K GCPC18 背包dp算不同数和的可能
gym/102021/K 题意: 给定n(n<=60)个直线 ,长度<=1000; 可以转化为取 计算 ans = (sum + 10 - g) / ( n + 1) 在小于5的条件下 ...
- Codeforces Gym 100187K K. Perpetuum Mobile 构造
K. Perpetuum Mobile Time Limit: 2 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/gym/100187/pro ...
- codeforces gym 100971 K Palindromization 思路
题目链接:http://codeforces.com/gym/100971/problem/K K. Palindromization time limit per test 2.0 s memory ...
- CF gym 101933 K King's Colors —— 二项式反演
题目:http://codeforces.com/gym/101933/problem/K 其实每个点的颜色只要和父亲不一样即可: 所以至多 i 种颜色就是 \( i * (i-1)^{n-1} \) ...
- Gym - 100283K K. Cubes Shuffling —— 贪心
题目链接:http://codeforces.com/gym/100283/problem/K 题解: 要使其相邻两项的差值之和最小,那么越靠中间,其数值越小. 那么剩下的问题就是如何放数字了.一开始 ...
- 【Gym 100947E】Qwerty78 Trip(组合数取模/费马小定理)
从(1,1)到(n,m),每次向右或向下走一步,,不能经过(x,y),求走的方案数取模.可以经过(x,y)则相当于m+n步里面选n步必须向下走,方案数为 C((m−1)+(n−1),n−1) 再考虑其 ...
- Codeforces Gym 100523K K - Cross Spider 计算几何,判断是否n点共面
K - Cross SpiderTime Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://acm.hust.edu.cn/vjudge/contest/v ...
- GYM - 101147 J.Whistle's New Car
题意: 给出一颗有点权和边权的树.求每一个点u的子树中有多少点v,使得点v到点u的距离小于等于点v的权值. 题解: 对于每一个点,倍增的预处理出他的祖宗节点及距离.根据预处理的结果求出每个点能到的最远 ...
- GYM - 101147 F.Bishops Alliance
题意: 一个n*n的棋盘,有m个主教.每个主教都有自己的权值p.给出一个值C,在棋盘中找到一个最大点集.这个点集中的点在同一条对角线上且对于点集中任意两点(i,j),i和j之间的主教数(包括i,j)不 ...
随机推荐
- jQuery 效果使用
.hide() 隐藏匹配的元素. .hide() 这个方法不接受任何参数. .hide([duration][,complete]) duration 一个字符串或者数字决定动画将运行多久. comp ...
- struts2之标签库
使用Struts2标签的准备工作: 导入Struts2标签库,该标签定义文件位于 struts2-core-2.3.16.3.jar 的 METE-INF下的struts-tag.tld文件. < ...
- FreeBSD--网络配置
配置网口:ifconfig |less dc0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500 i ...
- PHP审计(一)
一.php中常见的危险函数和审计要点 危险函数(功能过于强大) 参数是否外部可控,有没有正确的过滤. PHP获取外界传入参数是通过下面几个全局函数的形式,所以审计参数传入经常要和下面几个变量打交 ...
- 43_2.VUE学习之--不使用组件computed计算属性超简单的实现美团购物车原理
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- decltype和新的返回值语法
新的返回值语法 让我们讲一下新的返回值语法,这个语法还能看到auto的另一个用处.在以前版本的C和C++中,返回值的类型必须写在函数的前面: int multiply(int x, int y) 在C ...
- 神经网络的训练和测试 python
承接上一节,神经网络需要训练,那么训练集来自哪?测试的数据又来自哪? <python神经网络编程>一书给出了训练集,识别图片中的数字.测试集的链接如下: https://raw.githu ...
- 2018Ec-Final比赛总结
一场匆忙的旅程. NCC_9754_ Victory的最后一场比赛终究没能victory. 去的时候晕车到吐了两次,到宾馆吃完饭直接睡了,但还是两天都昏昏沉沉的头疼的厉害,第二天直接步行去了西工大体育 ...
- KEIL里如何实现仿真 查看输出波形
1首先打开keil软件 ,点击options 我们选择在debug 2 点击debug 红色的按钮 3 进入调试界面后 ,打开logic analysis窗口 4 打开窗口后 进入setup 4 会弹 ...
- Response响应工具类
技术交流群: 233513714 import com.google.common.base.Objects; import java.io.Serializable; public class Re ...