dp好题 玲珑杯 Expected value of the expression
Time Limit:2s Memory Limit:128MByte
Submissions:135Solved:65
You are given an expression: A0O1A1O2A2⋯OnAnA0O1A1O2A2⋯OnAn, where Ai(0≤i≤n)Ai(0≤i≤n) represents number, Oi(1≤i≤n)Oi(1≤i≤n) represents operator. There are three operators, &,|,^&,|,^, which means and,or,xorand,or,xor, and they have the same priority.
The ii-th operator OiOi and the numbers AiAi disappear with the probability of pipi.
Find the expected value of an expression.
E=(Σp1*(E1+X1)+Σp2*X2)/(1-Σp2)得到这样一个通项公式,这样能在中间就对数据进行处理
再结合这个题目的意思和运算符的一些问题,进行状态转移就好了
#include<bits/stdc++.h>
using namespace std;
int a[];
int num[];
char op[][];
double p[];
double dp[][];
int main()
{
int n;
while(~scanf("%d",&n))
{
for(int i=; i<=n; i++)scanf("%d",&num[i]);
for(int i=; i<=n; i++)scanf("%s",op[i]);
for(int i=; i<=n; i++)scanf("%lf",&p[i]);
double ans=;
for(int i=; i<=; i++)
{
for(int j=; j<=n; j++)
{
if((num[j]&(<<i))>)
{
a[j]=;
}
else a[j]=;
}
memset(dp,,sizeof(dp));
dp[][a[]]=;
for(int j=; j<=n; j++)
{
dp[j][]=dp[j-][]*p[j];
dp[j][]=dp[j-][]*p[j];
if(op[j][]=='|')
{
dp[j][^a[j]]+=dp[j-][]*(-p[j]);
dp[j][]+=dp[j-][]*(-p[j]);
}
else if(op[j][]=='&')
{
dp[j][]+=dp[j-][]*(-p[j]);
dp[j][^a[j]]+=dp[j-][]*(-p[j]);
}
else
{
dp[j][]+=dp[j-][^a[j]]*(-p[j]);
dp[j][]+=dp[j-][a[j]^]*(-p[j]);
}
}
ans+=(dp[n][]*(<<i));
}
printf("%.6f\n",ans);
}
return ;
}
dp好题 玲珑杯 Expected value of the expression的更多相关文章
- 13年山东省赛 The number of steps(概率dp水题)
转载请注明出处: http://www.cnblogs.com/fraud/ ——by fraud The number of steps Time Limit: 1 Sec Me ...
- ACM :漫漫上学路 -DP -水题
CSU 1772 漫漫上学路 Time Limit: 1000MS Memory Limit: 131072KB 64bit IO Format: %lld & %llu Submit ...
- [poj2247] Humble Numbers (DP水题)
DP 水题 Description A number whose only prime factors are 2,3,5 or 7 is called a humble number. The se ...
- poj 3254 状压dp入门题
1.poj 3254 Corn Fields 状态压缩dp入门题 2.总结:二进制实在巧妙,以前从来没想过可以这样用. 题意:n行m列,1表示肥沃,0表示贫瘠,把牛放在肥沃处,要求所有牛不能相 ...
- POJ 1155 TELE 背包型树形DP 经典题
由电视台,中转站,和用户的电视组成的体系刚好是一棵树 n个节点,编号分别为1~n,1是电视台中心,2~n-m是中转站,n-m+1~n是用户,1为root 现在节点1准备转播一场比赛,已知从一个节点传送 ...
- 【dp入门题】【跟着14练dp吧...囧】
A HDU_2048 数塔 dp入门题——数塔问题:求路径的最大和: 状态方程: dp[i][j] = max(dp[i+1][j], dp[i+1][j+1])+a[i][j];dp[n][j] = ...
- POJ 2342 树形DP入门题
有一个大学的庆典晚会,想邀请一些在大学任职的人来參加,每一个人有自己的搞笑值,可是如今遇到一个问题就是假设两个人之间有直接的上下级关系,那么他们中仅仅能有一个来參加,求请来一部分人之后,搞笑值的最大是 ...
- Vijos1057 盖房子(DP经典题)
之前没有怎么刷过dp的题,所以在此学习了~(感谢walala大神的思路,给了我很大的启发) 也算是自己学习的另一种dp题型吧 先贴上状态转移方程: if(a[i][j]) f[i][j]=min(f[ ...
- dp百题大过关(第一场)
好吧,这名字真是让我想起了某段被某教科书支配的历史.....各种DP题层出不穷,不过终于做完了orz 虽然各种手糊加乱搞,但还是要总结一下. T1 Monkey Banana Problem 这 ...
随机推荐
- Android笔记--BroadcastReceiver
BroadcastReceiver(一)--用法总结 一. BroadcastReceiver简介 BroadcastReceiver是Android四大组件之一,他的作用是监听并且接受系统或者其他A ...
- [windows]窗口文件夹中使用常见任务
文件夹中使用常见任务,如截图所示增加红色框部分. 设置步骤: 我的电脑--〉右键--〉属性--〉高级选项--〉性能设置--〉自定义:勾选在文件夹中使用常见任务.
- 【Python图像特征的音乐序列生成】如何标记照片的特征
目前我能想到的办法是这样的: 1,提取照片中的实体特征,借用某个pre-trained model进行tag标记. 2,将特征组合起来,形成一个bag-of-word model,然后将这个向量作为输 ...
- 如何选择Web开发框架
下面先来看看为什么要使用Web开发框架一 使用框架的必然性框架,即framework.其实就是某种应用的半成品,把不同应用程序中有共性的一些东西抽取出来,做成一个半成品程序,这样的半成品就是所谓的程序 ...
- group - 用户组文件
DESCRIPTION(描述) /etc/group 是一个ASCII码的文件,它定义了用户所属的组.文件中每行包括一条记录,其格式如下: group_name:passwd:GID:user_lis ...
- js判断是否为app
var ua = navigator.userAgent; var isapp = ua.match("lenovomallapp") == null ? 0 : 1;
- java8关于LocalDate,Date
关于java8中的新的时间日期类 public static void main(String[] args) { Date date = new Date(); LocalDate localDat ...
- JS事件类型--1
滚轮事件其实就是一个mousewheel事件,这个事件跟踪鼠标滚轮,类似Mac的触屏版. 一.客户区坐标位置 鼠标事件都是在浏览器视口的特定位置上发生的.这个位置信息保存在事件对象的clientX和c ...
- cocos2dx for lua 加密图片
图片加密的方法有很多种,在cocos2dx中,经常会使用TexturePacker来加密图片,方法如下: 打开TexturePacker,点击Add Sprite添加图片,在output栏下的Text ...
- matplotlib绘图股票走势图实践
导入模块 import pandas as pdimport numpy as npfrom pandas import Series,DataFrameimport matplotlib.pyplo ...