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] [(i-1,j)位置有钉子] + 0.5*dp[i-1][j-1] [(i-1.j-1)位置有钉子] + dp[i-1][j-2] [(i-1,j-2)位置没有钉子]
#include<cstdio>
#include<iostream> using namespace std; typedef long long LL; #define N 52 bool nail[N][N]; LL getgcd(LL a,LL b) { return !b ? a : getgcd(b,a%b); } struct Fraction
{
LL molecule,denominator; void operator = (int p)
{
molecule=p;
denominator=;
} Fraction operator * (Fraction p)
{
Fraction c;
c.molecule=molecule;
c.denominator=denominator<<;
LL gcd=getgcd(c.molecule,c.denominator);
c.molecule/=gcd;
c.denominator/=gcd;
return c;
} void operator += (Fraction p)
{
if(!denominator)
{
*this=p;
return;
}
Fraction c;
LL gcd=getgcd(denominator,p.denominator);
c.denominator=denominator/gcd*p.denominator;
c.molecule=c.denominator/denominator*molecule+c.denominator/p.denominator*p.molecule;
*this=c;
} bool have()
{
return denominator;
} void print()
{
if(!molecule) denominator=;
cout<<molecule<<'/'<<denominator;
} }half; Fraction dp[N][N]; char getc()
{
char c;
while()
{
c=getchar();
if(c=='*'||c=='.') return c;
}
} int main()
{
int n,m;
scanf("%d%d",&n,&m);
char c;
for(int i=;i<=n;++i)
for(int j=;j<=i;++j)
{
c=getc();
if(c=='*') nail[i][j]=true;
}
dp[][]=;
for(int i=;i<=n+;++i)
for(int j=;j<=i;++j)
{ if(nail[i-][j-] && dp[i-][j-].have()) dp[i][j]+=dp[i-][j-]*half;
if(nail[i-][j] && dp[i-][j].have()) dp[i][j]+=dp[i-][j]*half;
if(!nail[i-][j-] && dp[i-][j-].have()) dp[i][j]+=dp[i-][j-];
}
dp[n+][m+].print();
}
1867: [Noi1999]钉子和小球
Time Limit: 1 Sec Memory Limit: 64 MB
Submit: 880 Solved: 355
[Submit][Status][Discuss]
Description

Input
Output
Sample Input
Sample Output
bzoj千题计划189:bzoj1867: [Noi1999]钉子和小球的更多相关文章
- bzoj千题计划300:bzoj4823: [Cqoi2017]老C的方块
http://www.lydsy.com/JudgeOnline/problem.php?id=4823 讨厌的形状就是四联通图 且左右各连一个方块 那么破坏所有满足条件的四联通就好了 按上图方式染色 ...
- bzoj千题计划196:bzoj4826: [Hnoi2017]影魔
http://www.lydsy.com/JudgeOnline/problem.php?id=4826 吐槽一下bzoj这道题的排版是真丑... 我还是粘洛谷的题面吧... 提供p1的攻击力:i,j ...
- bzoj千题计划280:bzoj4592: [Shoi2015]脑洞治疗仪
http://www.lydsy.com/JudgeOnline/problem.php?id=4592 注意操作1 先挖再补,就是补的范围可以包含挖的范围 SHOI2015 的题 略水啊(逃) #i ...
- bzoj千题计划177:bzoj1858: [Scoi2010]序列操作
http://www.lydsy.com/JudgeOnline/problem.php?id=1858 2018 自己写的第1题,一遍过 ^_^ 元旦快乐 #include<cstdio> ...
- bzoj千题计划317:bzoj4650: [Noi2016]优秀的拆分(后缀数组+差分)
https://www.lydsy.com/JudgeOnline/problem.php?id=4650 如果能够预处理出 suf[i] 以i结尾的形式为AA的子串个数 pre[i] 以i开头的形式 ...
- bzoj千题计划304:bzoj3676: [Apio2014]回文串(回文自动机)
https://www.lydsy.com/JudgeOnline/problem.php?id=3676 回文自动机模板题 4年前的APIO如今竟沦为模板,,,╮(╯▽╰)╭,唉 #include& ...
- bzoj千题计划292:bzoj2244: [SDOI2011]拦截导弹
http://www.lydsy.com/JudgeOnline/problem.php?id=2244 每枚导弹成功拦截的概率 = 包含它的最长上升子序列个数/最长上升子序列总个数 pre_len ...
- bzoj千题计划278:bzoj4590: [Shoi2015]自动刷题机
http://www.lydsy.com/JudgeOnline/problem.php?id=4590 二分 这么道水题 没long long WA了两发,没判-1WA了一发,二分写错WA了一发 最 ...
- bzoj千题计划250:bzoj3670: [Noi2014]动物园
http://www.lydsy.com/JudgeOnline/problem.php?id=3670 法一:KMP+st表 抽离nxt数组,构成一棵树 若nxt[i]=j,则i作为j的子节点 那么 ...
随机推荐
- 【Android UI设计与开发】第01期:引导界面(一)ViewPager介绍和使用详解
做Android开发加起来差不多也有一年多的时间了,总是想写点自己在开发中的心得体会与大家一起交流分享.共同进步,刚开始写也不知该如何下手,仔细想了一下,既然是刚开始写,那就从一个软件给人最直观的感受 ...
- Java设置PPT的扇形图,与内嵌Excel联动
/** * 设置饼图的主方法 * @param slide 图表 * @param index 图标位置 * @param data 需要设置的数据 * @param titles 关联Excel的标 ...
- BigDecimal的setScale()方法无效(坑)
最近在使用BigDecimal进行四舍五入时,发现setScale()方法设置的精度值并没有起作用,一度让我怀疑起是否jdk有bug,代码如下: 错误代码 double d = 7.199999999 ...
- JSP JSTL知识结构图
自行绘制,欢迎指正.
- 软件工程 BUAAMOOC项目Postmortem结果
设想和目标 1.我们的软件要解决什么问题?是否定义的很清楚?是否对典型用户和典型场景有清晰的描述? 我们的软件是基于北航MOOC网站做的Android手机客户端,用于便捷的在学校里通过手机做到随时随地 ...
- Iterative Quantization,ITQ
Abstract 针对大规模的图像检索问题,论文提出了一个高效的ITQ算法.该算法先将中心化后的数据映射到超立方体的顶点上,再通过优化过程寻找一个旋转矩阵,使得数据点经过旋转后,与超立方体的顶点数据具 ...
- 从零开始学Kotlin-操作符(3)
从零开始学Kotlin基础篇系列文章 冒号操作符 ":" 和 "::" :操作符用来定义变量.类的继承等 var name: String//定义变量 clas ...
- 【转帖】 redis 命令 From https://www.cnblogs.com/zhouweidong/p/7550717.html
redis命令详解 redis中添加key value元素:set key value; 获取元素:get key ; redis中添加集合:lpush key value1 va ...
- postman 学习网址
postman使用详解: http://gold.xitu.io/entry/57597a62a341310061337885 https://www.getpostman.com/docs/writ ...
- Codeforces - 1020B Badge(找环)
题意: 以每个点为起点,找到第一个出现两次的点 解析: 我是先找出来所有的环 环上的点找出来的肯定是自己 bz[i] = i; 然后去遍历不在环上的点j 如果通过这个点找到一个已经标记的的点i ...