51Nod 1293 球与切换器 DP分类

第1行:包括3个数M, N, K中间用空格分隔,M,N 为盒子的宽度和高度,K为球的数量(1 <= M, N <= 1000, 1 <= K <= 10^18)。
第2 - N + 1行:每行M个数(-1, 0 或 1),表示对应的模式。
输出1个数,对应最终有有多少个球从右下角的盒子的下边出去。
3 2 4
-1 0 -1
1 0 0
1
#include <bits/stdc++.h>
using namespace std;
int dir;
long long dp[][][];
long long read(){
long long res = ;
int flag = ;
char ch;
if ((ch = getchar()) == '-'){
flag = ;
}
else if(ch >= '' && ch <= ''){
res = ch - '';
}
while ((ch = getchar()) >= '' && ch <= ''){
res = res * + (ch - '');
}
return flag ? -res : res;
}
int main() {
int n,m;
long long k;
m=read();n=read();k=read();
//用0来表示-1朝下,1来表示+1朝右
//刚开初始放下为朝下,全部球落入dp[1][1][0],dp[1][1][1]=0;
dp[][][]=k;
for(int i=;i<=n;++i) {
for(int j=;j<=m;++j) {
//不同再开数组保存方向,因为一行一行处理没有后效性
dir=read();
long long sum=dp[i][j][]+dp[i][j][];//当前关口的总数
if(dir==) {
dp[i][j+][]+=dp[i][j][];//朝右j+1
dp[i+][j][]+=dp[i][j][];//朝下i+1
} else if(dir==-) {
dp[i+][j][]+=(sum+)>>;//先计算朝下的,i+1,状态0
dp[i][j+][]+=sum>>;//剩余的朝右j+1,状态1
} else if(dir==) {
dp[i][j+][]+=(sum+)>>;//先计算朝右的,j+1,状态1
dp[i+][j][]+=sum>>;//剩余的朝右i+1,状态0
}
}
}
printf("%lld\n",dp[n+][m][]);//由dp[n][m][0]->dp[n+1][m][0]
return ;
}
51Nod 1293 球与切换器 DP分类的更多相关文章
- 51nod 1293 球与切换器 | DP
51nod 1293 球与切换器 | DP 题面 有N行M列的正方形盒子.每个盒子有三种状态0, -1, +1.球从盒子上边或左边进入盒子,从下边或右边离开盒子.规则: 如果盒子的模式是-1,则进入它 ...
- 【51NOD-5】1293 球与切换器
[算法]DP [题解]f[i][j][0]表示在i,j位置往下走的球数,f[i][j][1]表示在i,j位置往右走的球数,经过i,j的球若为-1则(num+1)/2往下,其余往右.+1类似. 转移见代 ...
- 51nod 1293:球与切换器
1293 球与切换器 题目来源: Codility 基准时间限制:1 秒 空间限制:131072 KB 分值: 80 难度:5级算法题 收藏 取消关注 有N行M列的正方形盒子.每个盒子有三种状态0 ...
- KVM(多电脑切换器)
KVM:Keyboard Video Mouse的缩写.KVM 交换机通过直接连接键盘.视频和鼠标 (KVM) 端口,让您能够访问和控制计算机.KVM 技术无需目标服务器修改软件.这就意味着可以在 W ...
- C# 方法调用的切换器 Update 2015.02.02
在编写应用程序时,我们经常要处理这样的一组对象,它们的类型都派生自同一个基类,但又需要为每个不同的子类型应用不同的处理方法. 通常的做法,最简单的就是用很多 if-else 去判断各自的类型,如下面的 ...
- KVM切换器
所谓KVM,就是Keyboard.Video.Mouse的缩写,正式的名称为多计算机切换器.简单的说,就是一组键盘.显示器和鼠标,控制2台.4 台.8台.16台甚至到4096台以上的计算机主机. KV ...
- Android 自学之网格试图(GridView)和图片切换器(ImageSwitcher)功能和用法
网格试图(GridView)用于在界面上按行,列分布的方式来显示多个组件. GridView和ListView有共同的父类:AbsListView,因此GridView和ListView具有一定的相似 ...
- Android应用开发学习之图片切换器
作者:刘昊昱 博客:http://blog.csdn.net/liuhaoyutz 如果我们要实现类似Windows的照片查看器切换上一张下一张照片的效果,可以使用图片切换器ImageSwitcher ...
- 文本切换器(TextSwitcher)的功能和用法
TextSwitcher继承了ViewSwitcher,因此它具有与ViewSwitcher相同的特征:可以在切换View组件的同时使用动画效果.与ImageSwitcher相似的是,使用TextSw ...
随机推荐
- PHP设计模式二:单例模式
一.什么是单例模式 作为对象的创建模式,单例模式确保某一个类只有一个实例,并且对外提供这个全局实例的访问入口.它不会 创建实例副本,而是会向单例类内部存储的实例返回一个引用. 二.PHP单例模式三要素 ...
- 67、django之模型层(model)--查询补充及mookie
本篇导航: F查询与Q查询 cookie 一.F查询与Q查询 1.以Book表为例 class Book(models.Model) : title = models.CharField(max_le ...
- django 实现登录时候输入密码错误5次锁定用户十分钟
在学习django的时候,想要实现登录失败后,进行用户锁定,切记录锁定时间,在网上找了很多资料,但是都感觉不是那么靠谱, 于是乎,我开始了我的设计,其实我一开始想要借助redis呢,但是想要先开发一个 ...
- TCP协议的滑动窗口协议以及流量控制
参考资料 http://blog.chinaunix.net/uid-26275986-id-4109679.html http://network.51cto.com/art/201501/4640 ...
- Leetcode题解(29)
93. Restore IP Addresses 题目 分析:多重循环,判断小数点合适的位置 代码如下(copy网上) class Solution { public: vector<strin ...
- Android 开发笔记___SQLite__基本用法
SQLiteOpenHelper package com.example.alimjan.hello_world.dataBase; import android.content.ContentVal ...
- Nytro MegaRaid
Nytro MegaRaid简介 Dell R720xd,内存64G ,12块 SAS Dell R510xd,内存48G ,12块 SAS SSD+SAS SSD对于用户透明 raid会 ...
- java队列——queue详细分析
Queue: 基本上,一个队列就是一个先入先出(FIFO)的数据结构 Queue接口与List.Set同一级别,都是继承了Collection接口.LinkedList实现了Deque接 口. Q ...
- python 标准模块shlex
shlex模块为基于Uninx shell语法的语言提供了一个简单的lexer(也就是tokenizer) 举例说明: 有一个文本文件quotes.txt This string has embedd ...
- "虐待"过我的老师们,你们如今还好吗
当皇城脚下的民生问题都这么难做的时候,其他地方又该如何保障呢? 京城“红黄蓝”出名了,京城发生锅炉大爆炸了,京城发生火灾了…… 聊天中,有一好友突然蹦出了一句话:“你看在皇城脚下都不安全了”. 久久我 ...