题目

/*********************复制来的大致题意**********************

有N个数字,M个操作, 区间L, R。 然后问经过M个操作后落在[L, R]的概率。

*******************************************************/

//自己做,错掉了,然后参考了别人的解法,说是要 概率dp

//概率模拟题,一定要用概率来模拟,

//因为数据很大,可能超了__int64,

//模拟方式用dp[2][], 0表示前一个状态,1表示现在的状态,

//WA掉的解法:

#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std; int main()
{
int n,m,l,r,w,i,j;
__int64 a[],a1[];
int temp1,temp2,temp;
__int64 fenzi,fenmu; while(scanf("%d%d%d%d",&n,&m,&l,&r)!=EOF)
{
if(n==&&m==&&l==&&r==)break;
memset(a,,sizeof(a));
memset(a1,,sizeof(a1));
a[]=;
a1[]=; for(i=;i<m;i++)
{
scanf("%d",&w);
w=w%n;
for(j=;j<=n;j++)
{
if(a[j]!=)
{
temp=a[j];
temp1=j+w;
while(temp1>n)temp1=temp1-n;
temp2=j-w;
while(temp2<)temp2=temp2+n;
a1[temp1]+=a[j];
a1[temp2]+=a[j];
a1[j]=a1[j]-temp;
}
}
for(j=;j<=n;j++)
{
a[j]=a1[j];
}
} fenzi=;
fenmu=;
for(j=;j<=n;j++)
{
fenmu=fenmu+a[j];
}
for(j=l;j<=r;j++)
{
fenzi=fenzi+a[j];
} printf("%.4lf\n",(fenzi*1.0)/(fenmu*1.0)); }
return ;
}

//我猜测搓掉的原因是数据太大,导致越界,然后结果就不准了,因为m很大哦~

//可以AC的解法:

//听说这种解法叫做简单的概率dp
#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std;
int main()
{
int n,m,l,r,w,i,j;
int temp1,temp2,temp;
double dp[][]; //0 1 表示前后两次,210 表示点 dp 概率 while(scanf("%d%d%d%d",&n,&m,&l,&r)!=EOF)
{
if(n==&&m==&&l==&&r==)break;
memset(dp,,sizeof(dp));
dp[][]=;
temp = ; //状态 0 1
for(i=;i<=m;i++)
{
scanf("%d",&w);
for(j=;j<=n;j++)
{
temp1=j+w;
while(temp1>n)temp1=temp1-n;
temp2=j-w;
while(temp2<)temp2=temp2+n;
dp[(temp+)%][temp1]+=dp[temp][j]*0.5;
dp[(temp+)%][temp2]+=dp[temp][j]*0.5;
dp[temp][j]=;
}
temp=(temp+)%;
}
double ans = 0.0;
for(i=l;i<=r;i++)
{
ans+=dp[temp][i];
}
printf("%.4lf\n",ans);
}
return ;
}

HDU 4576 Robot(概率dp)的更多相关文章

  1. hdu 4576(简单概率dp | 矩阵优化)

    艰难的一道题,体现出菜菜的我... 首先,先吐槽下. 这题到底出题人是怎么想的,用普通概率dp水过??? 那为什么我概率dp写的稍微烂点就一直tle?  感觉很不公平.大家算法都一致,因为我程序没有那 ...

  2. HDU 4576 Robot (很水的概率题)

    Robot Time Limit: 8000/4000 MS (Java/Others)    Memory Limit: 102400/102400 K (Java/Others)Total Sub ...

  3. hdu 4576 (简单dp+滚动数组)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4576 题意:给出1~n的环,m个操作,每次能顺时针或逆时针走w步,询问最后在l~r这段区间内概率.(1 ...

  4. HDU 3853LOOPS(简单概率DP)

    HDU 3853    LOOPS 题目大意是说人现在在1,1,需要走到N,N,每次有p1的可能在元位置不变,p2的可能走到右边一格,有p3的可能走到下面一格,问从起点走到终点的期望值 这是弱菜做的第 ...

  5. HDU - 1099 - Lottery - 概率dp

    http://acm.hdu.edu.cn/showproblem.php?pid=1099 最最简单的概率dp,完全是等概率转移. 设dp[i]为已有i张票,还需要抽几次才能集齐的期望. 那么dp[ ...

  6. HDU 4405 【概率dp】

    题意: 飞行棋,从0出发要求到n或者大于n的步数的期望.每一步可以投一下筛子,前进相应的步数,筛子是常见的6面筛子. 但是有些地方可以从a飞到大于a的b,并且保证每个a只能对应一个b,而且可以连续飞, ...

  7. HDU 4599 Dice (概率DP+数学+快速幂)

    题意:给定三个表达式,问你求出最小的m1,m2,满足G(m1) >= F(n), G(m2) >= G(n). 析:这个题是一个概率DP,但是并没有那么简单,运算过程很麻烦. 先分析F(n ...

  8. [HDU 4089]Activation[概率DP]

    题意: 有n个人排队等着在官网上激活游戏.Tomato排在第m个. 对于队列中的第一个人.有以下情况: 1.激活失败,留在队列中等待下一次激活(概率为p1) 2.失去连接,出队列,然后排在队列的最后( ...

  9. hdu 3853 LOOPS 概率DP

    简单的概率DP入门题 代码如下: #include<iostream> #include<stdio.h> #include<algorithm> #include ...

随机推荐

  1. 【转】C#中Invoke的用法

    在多线程编程中,我们经常要在工作线程中去更新界面显示,而在多线程中直接调用界面控件的方法是错误的做法,Invoke 和 BeginInvoke 就是为了解决这个问题而出现的,使你在多线程中安全的更新界 ...

  2. 设置SVN hooks实现自动发布

    # CentOS下安装SVN yum -y install subversion svnserve --version cd /home/ mkdir svn cd svn/ /usr/bin/svn ...

  3. 使用checked关键字处理“溢出”错误

    在进行算术运算时,可以使用checked关键字有效处理溢出错误,使用checked关键字可能对程序的性能会有一点点的影响,这是一种以牺牲性能换取健康的做法. private void button1_ ...

  4. The ObjectContext instance has been disposed and can no longer be used for operations that require a connection.

    The ObjectContext instance has been disposed and can no longer be used for operations that require a ...

  5. 51.ISE中的DCM全局时钟转为普通IO

    在用DCM这个IP核时,它的输入时钟为全局时钟引脚输入,输出有两种情况,第一,可以直接接在全局时钟引脚:第二,可以通过ODDR2原语接在普通IO引脚:说下第二种是怎么用的: DCM DCM_INST ...

  6. APM飞控修改数传模块方法

    APM飞控修改数传模块方法 硬件 ARDUCOPTER第二代 数传模块(USB接口) 数传模块(telem接口) usb-ttl模块 修改方法 注意:APM固件版本和数传模块估计版本是分开的,但有一定 ...

  7. LinqToExcel: LINQ查询Excel电子表格

    Linq的强大人所共知,能不能将Linq扩展到读取excel呢? 答案当然是肯定的. LinqToExcel就是一个实现了使用Linq语法查询excel表格的.net开源类库. 在nuget搜索下载安 ...

  8. 硬件相关-EMI & EMS & EMC

    EMI——Electro Magnetic Interference 电磁干扰 定义:是指电磁波与电子元件作用后而产生的干扰现象. 分类:有传导干扰和辐射干扰两种. 传导干扰: 是指通过导电介质把一个 ...

  9. P1231: [Usaco2008 Nov]mixup2 混乱的奶牛

    这是一道状压DP,首先这道题让我意识到状态是从 1 to (1<<n)-1 的,所以当前加入的某头牛编号是从 0 to n-1 的,所以存储的时候习惯要改一下,这样子做状压DP才会顺一点吧 ...

  10. CentOS安装vsftpd

    版本:vsftpd-3.0.2-9.el7.x86_64(CentOS是64位的). 1.安装vsftpd yum -y install vsftpd 2.配置vsftpd 修改配置前把原始配置文件备 ...