题目链接

简单$DP$

$$dp[1][1]=1(\text{显然})$$

$$map[i][j]=='*'?dp[i+1][j]+=dp[i][j]/2,dp[i+1][j+1]+=dp[i][j]/2:dp[i+2][j+1]+=dp[i][j]$$

如果直接输出概率这样就好,

但是让写成分数咋整?

开个结构体记录分子分母可以(好像大部分人这么做的)

本宝宝一开始开了两个数组分别记录,

但是人  萌  可爱 会出现各种  正义  玄学的事情,

反正开结构体的计算过程中没有爆$long\ long$

本宝宝就爆了。

写了两遍都被自己拍地上了

最后只好换种方法,

我们先假设分子分母同时乘以$2^{n}$

然后计算的时候分子除就好,最后同时约分

然后就$RE$了$qwq$

为啥?!

某几位良心同学:“此题并不能输出文件末回车,会$RE$”

莫名想吐槽$bzoj=reoj$

上代码:

/**************************************************************
Problem: 1867
User: zhangheran
Language: C++
Result: Accepted
Time:12 ms
Memory:1316 kb
****************************************************************/ #include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
using namespace std;
long long f[][];
char map[][];
int n,m;
template<typename _Element_gcd>
_Element_gcd
_gcd(_Element_gcd _m, _Element_gcd _n)
{
while (_n != )
{
_Element_gcd _t = _m % _n;
_m = _n;
_n = _t;
}
return _m;
}
int main()
{
scanf("%d%d",&n,&m);
for(int i=;i<=n;i++)
for(int j=;j<=i;j++)
while(map[i][j]!='*'&&map[i][j]!='.') scanf("%c",&map[i][j]);
f[][]=1ll<<n;
for(int i=;i<=n;i++)
for(int j=;j<=n;j++)
if(map[i][j]=='*')
f[i+][j]+=f[i][j]/,
f[i+][j+]+=f[i][j]/;
else f[i+][j+]+=f[i][j];
long long dp=1ll<<n;
long long num=_gcd(f[n+][m+],dp);
f[n+][m+]==?printf("0/1"):printf("%lld%c%lld",f[n+][m+]/num,,dp/num);
return ;
}

bzoj1867钉子和小球的更多相关文章

  1. bzoj千题计划189:bzoj1867: [Noi1999]钉子和小球

    http://www.lydsy.com/JudgeOnline/problem.php?id=1867 dp[i][j] 落到(i,j)的方案数 dp[i][j]=0.5*dp[i-1][j]   ...

  2. codevs 1709 钉子和小球

    1709 钉子和小球 1999年NOI全国竞赛 时间限制: 2 s 空间限制: 128000 KB 题目等级 : 大师 Master 题解 查看运行结果题目描述 Description有一个三角形木板 ...

  3. POJ-1189 钉子和小球(动态规划)

    钉子和小球 Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 7452 Accepted: 2262 Description 有一个 ...

  4. [bzoj1867][Noi1999][钉子和小球] (动态规划)

    Description Input 第1行为整数n(2<=n<=50)和m(0<=m<=n).以下n行依次为木板上从上至下n行钉子的信息,每行中‘*’表示钉子还在,‘.’表示钉 ...

  5. [POJ1189][BZOJ1867][CODEVS1709]钉子和小球

    题目描述 Description 有一个三角形木板,竖直立放,上面钉着n(n+1)/2颗钉子,还有(n+1)个格子(当n=5时如图1).每颗钉子和周围的钉子的距离都等于d,每个格子的宽度也都等于d,且 ...

  6. 2018.09.24 bzoj1867: [Noi1999]钉子和小球(概率dp)

    传送门 概率dp经典题. 如果当前位置(i,j)(i,j)(i,j)有钉子,那么掉到(i+1,j),(i+1,j+1)(i+1,j),(i+1,j+1)(i+1,j),(i+1,j+1)的概率都是1/ ...

  7. bzoj1867: [Noi1999]钉子和小球(DP)

    一眼题...输出分数格式才是这题的难点QAQ 学习了分数结构体... #include<iostream> #include<cstring> #include<cstd ...

  8. 钉子和小球_DP

    Description 有一个三角形木板,竖直立放,上面钉着n(n+1)/2颗钉子,还有(n+1)个格子(当n=5时如图1).每颗钉子和周围的钉子的距离都等于d,每个格子的宽度也都等于d,且除了最左端 ...

  9. POJ1189钉子和小球(DP)

    对钉子DP,如果钉子存在DP[i+1][j]+=DP[i][j]; DP[i+1][j+1]+=DP[i][j]; 如果不存在DP[i+2][j+1]+=4*DP[i][j]; 见代码:(有一个比较坑 ...

随机推荐

  1. Python实现SSH连接远程服务器

    首先需要安装paramiko模块 #-*- coding:utf-8 -*- __author__ = "MuT6 Sch01aR" import paramiko ssh = p ...

  2. STM32呼吸灯

    使用STM32开发板和mbed平台实现的一个呼吸灯.材料,LED灯,电阻,STM32开发板. 先上一张效果图. 背景: 我们之前设置GPIO口使用了DigitalOut,数字信号输出.只能是GPIO口 ...

  3. Mycat实战之离散分片

    1 枚举分片(customer表) #### 1.1 修改配置信息加载配置文件 datanode hash-int vi partition-hash-int.txt db1=0 db2=1 [roo ...

  4. android 拍照+拍照button 以及返回按钮布局

    公司最近做一个项目拍照总是崩溃,所以决定自己写一个拍照的方法,在网上调研一番,写了一个简单demo,现共享如下 主要CameraActivity CameraActivity package com. ...

  5. ZOJ3954 Seven-Segment Display

    题意: emmmm见原题吧 分析: 这也是当时省赛选拔的题,场上以为是大模拟,然后没敢写...补题发现是道水题··· 因为每一列的顺序不一定,但是行是一定的.所以只要把每一列组成一个数字,然后弄两个集 ...

  6. 流Stream

    System.IO 提供了一个抽象类Stream , Stream类 支持对字节的读写操作.所谓的“流”,指的是Stream,也就是所谓的一个文件区.这个文件区中存储着的信息可以是在内存中,也可以是在 ...

  7. 13-STL-二分查找

    STL中提供-二分查找算法(binary_search lower_bound upper_bound equal_range   STL包含四种不同的二分查找算法,binary_search    ...

  8. linux下配置eclipse环境

    注明:本文为博主原创文章,转载请注明出处 前期准备 (此文使用的是非安装版jdk1.8,你也可以下载版本更低的,而且建议使用1.6版本,66大顺嘛,嘻嘻) 1.点击下载jdk 2.点击下载eclips ...

  9. 远程访问Function时报错Remote table-valued function calls are not allowed.

    开始是这样调用的:select * from [LinkedServer].[db name].dbo.[function name](param1, param2) 原因: Only table-v ...

  10. cgroup初步分析(1)

    cgroup的功能和作用不废话,直说一下cgroup的几条设计准则,有了几条设计准则的约束,就比较容易理解其中的数据结构和函数,至于源代码cgroup.c,无非是两个内容,一是task_struct. ...