博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【51NOD-5】1293 球与切换器
阅读量:6942 次
发布时间:2019-06-27

本文共 1019 字,大约阅读时间需要 3 分钟。

【算法】DP

【题解】f[i][j][0]表示在i,j位置往下走的球数,f[i][j][1]表示在i,j位置往右走的球数,经过i,j的球若为-1则(num+1)/2往下,其余往右。+1类似。

转移见代码。

#include
#include
#include
#include
using namespace std;int read(){ char c;int s=0,t=1; while(!isdigit(c=getchar()))if(c=='-')t=-1; do{s=s*10+c-'0';}while(isdigit(c=getchar())); return s*t;}const int maxn=1010;int a[maxn][maxn],n,m;long long f[maxn][maxn][2],k;int main(){ scanf("%d%d%lld",&m,&n,&k); f[0][1][0]=k; for(int i=1;i<=n;i++) for(int j=1;j<=m;j++) a[i][j]=read(); for(int i=1;i<=n;i++) for(int j=1;j<=m;j++) { long long num=f[i-1][j][0]+f[i][j-1][1]; if(a[i][j]==-1)f[i][j][0]=(num+1)/2,f[i][j][1]=num-(num+1)/2; if(a[i][j]==1)f[i][j][1]=(num+1)/2,f[i][j][0]=num-(num+1)/2; if(a[i][j]==0)f[i][j][0]=f[i-1][j][0],f[i][j][1]=f[i][j-1][1]; } printf("%lld",f[n][m][0]); return 0;}
View Code

 

转载于:https://www.cnblogs.com/onioncyc/p/7056442.html

你可能感兴趣的文章
两个实用的方法从Base64字符串生成RSAPublicKey及RSAPrivatekey
查看>>
常用验证数字的正则表达式
查看>>
kafka入门:简介、使用场景、设计原理、主要配置及集群搭建(转)[收藏]
查看>>
java读取excel文件数据
查看>>
Java的RMI远程方法调用实现和应用
查看>>
Linux 上使用 Gmail SMTP 服务器发送邮件通知
查看>>
Dell vsotro 14 3000系列从win10重装win7
查看>>
说说$POST 、$HTTP_RAW_POST_DATA、php://input三者之间的区别
查看>>
(一) Qt Model/View 的简单说明
查看>>
制作自己的MVC框架(三)——应用
查看>>
青云指南
查看>>
thinkphp 3.2 多表查询 group
查看>>
C#.NET 无法直接启动带有类库输出类型的项目怎么办
查看>>
LeetCode——Best Time to Buy and Sell Stock
查看>>
http连接
查看>>
jquery操作select(取值,设置选中)(转)
查看>>
.gitignore 使用入门
查看>>
性能优化系列八:MYSQL的配置优化
查看>>
jbpm5.1介绍(8)
查看>>
MATLAB概率统计函数(3)
查看>>