【51NOD-5】1293 球与切换器
2024-09-02 00:20:46
【算法】DP
【题解】f[i][j][0]表示在i,j位置往下走的球数,f[i][j][1]表示在i,j位置往右走的球数,经过i,j的球若为-1则(num+1)/2往下,其余往右。+1类似。
转移见代码。
#include<stdio.h>
#include<cstring>
#include<cctype>
#include<algorithm>
using namespace std;
int read()
{
char c;int s=,t=;
while(!isdigit(c=getchar()))if(c=='-')t=-;
do{s=s*+c-'';}while(isdigit(c=getchar()));
return s*t;
}
const int maxn=;
int a[maxn][maxn],n,m;
long long f[maxn][maxn][],k;
int main()
{
scanf("%d%d%lld",&m,&n,&k);
f[][][]=k;
for(int i=;i<=n;i++)
for(int j=;j<=m;j++)
a[i][j]=read();
for(int i=;i<=n;i++)
for(int j=;j<=m;j++)
{
long long num=f[i-][j][]+f[i][j-][];
if(a[i][j]==-)f[i][j][]=(num+)/,f[i][j][]=num-(num+)/;
if(a[i][j]==)f[i][j][]=(num+)/,f[i][j][]=num-(num+)/;
if(a[i][j]==)f[i][j][]=f[i-][j][],f[i][j][]=f[i][j-][];
}
printf("%lld",f[n][m][]);
return ;
}
最新文章
- 三元运算与lambda表达式
- 1.js基础
- Yorhom浅谈:作为一名初中生,自学编程的点点滴滴 - Yorhom&#39;s Game Box
- android 签名被篡改(Keystore was tampered with, or password was incorrect)
- SSAS系列&mdash;&mdash;【07】多维数据(查询Cube)
- JavaWeb之JSP技术总结
- 管中窥豹——从对象的生命周期梳理JVM内存结构、GC调优、类加载、AOP编程及性能监控
- ajax请求返回数据,模板中的数据处理
- 201521123110 《Java程序设计》第4周学习总结
- SQL语句表名或者字段名和保留字冲突解决方法
- Scrum Meeting 博客
- 第三次Scrum编程冲刺
- find、which、whereis、locate和type之间的区别
- Map network drive遇到报错&ldquo;The network folder specified is currently mapped using a different user name and password&rdquo;,怎么办?
- 为springboot项目添加springboot-admin监控
- hdu3746 Cyclic Nacklace【nxt数组应用】【最小循环节】
- OpenGL中移动单位中的‘单位’指什么
- libgdx判断矩形重叠碰撞
- ds18b20驱动及应用程序
- GPUImage API文档之GLProgram类
热门文章
- IPReversePathFilter
- fuck the browser mode
- Ubuntu启用root账号登录系统
- C# Designer.cs
- 什么情况下需要检测预装Win8/8.1电脑内置激活密钥(即Win8/8.1 OEM key)?
- JavaScript 垃圾回收总结
- bzoj4031-小Z的房间
- BZOJ4027 HEOI2015兔子与樱花(贪心)
- [BZOJ4036] [HAOI2015]按位或
- [洛谷P2161][SHOI2009]会场预约