AtCoder Beginner Contest 147 E. Balanced Path
思路:
dp,使用了bitset优化。
实现:
#include <bits/stdc++.h>
using namespace std;
const int N = ;
const int INF = 0x3f3f3f3f;
int a[N][N], b[N][N];
bitset<N * N * > dp[N][N]; int main()
{
int h, w;
while (cin >> h >> w)
{
for (int i = ; i < h; i++)
{
for (int j = ; j < w; j++)
{
cin >> a[i][j];
}
}
for (int i = ; i < h; i++)
{
for (int j = ; j < w; j++)
{
cin >> b[i][j];
}
}
for (int i = ; i < h; i++)
{
for (int j = ; j < w; j++)
{
dp[i][j].reset();
}
}
dp[][][a[][] - b[][] + N * N * ] = ;
dp[][][b[][] - a[][] + N * N * ] = ;
for (int i = ; i < h; i++)
{
for (int j = ; j < w; j++)
{
int tmp = abs(a[i][j] - b[i][j]);
if (j)
{
dp[i][j] |= dp[i][j - ] << tmp;
dp[i][j] |= dp[i][j - ] >> tmp;
}
if (i)
{
dp[i][j] |= dp[i - ][j] << tmp;
dp[i][j] |= dp[i - ][j] >> tmp;
}
}
}
int res = INF;
for (int i = ; i < N * N * ; i++)
{
if (dp[h - ][w - ][i]) res = min(res, abs(i - N * N * ));
}
cout << res << endl;
}
return ;
}
AtCoder Beginner Contest 147 E. Balanced Path的更多相关文章
- AtCoder Beginner Contest 147
A - Blackjack #include <bits/stdc++.h> int main() { int a, b, c; scanf("%d%d%d", &am ...
- AtCoder Beginner Contest 177 题解
AtCoder Beginner Contest 177 题解 目录 AtCoder Beginner Contest 177 题解 A - Don't be late B - Substring C ...
- AtCoder Beginner Contest 100 2018/06/16
A - Happy Birthday! Time limit : 2sec / Memory limit : 1000MB Score: 100 points Problem Statement E8 ...
- AtCoder Beginner Contest 052
没看到Beginner,然后就做啊做,发现A,B太简单了...然后想想做完算了..没想到C卡了一下,然后还是做出来了.D的话瞎想了一下,然后感觉也没问题.假装all kill.2333 AtCoder ...
- AtCoder Beginner Contest 053 ABCD题
A - ABC/ARC Time limit : 2sec / Memory limit : 256MB Score : 100 points Problem Statement Smeke has ...
- AtCoder Beginner Contest 136
AtCoder Beginner Contest 136 题目链接 A - +-x 直接取\(max\)即可. Code #include <bits/stdc++.h> using na ...
- AtCoder Beginner Contest 137 F
AtCoder Beginner Contest 137 F 数论鬼题(虽然不算特别数论) 希望你在浏览这篇题解前已经知道了费马小定理 利用用费马小定理构造函数\(g(x)=(x-i)^{P-1}\) ...
- AtCoder Beginner Contest 076
A - Rating Goal Time limit : 2sec / Memory limit : 256MB Score : 100 points Problem Statement Takaha ...
- AtCoder Beginner Contest 079 D - Wall【Warshall Floyd algorithm】
AtCoder Beginner Contest 079 D - Wall Warshall Floyd 最短路....先枚举 k #include<iostream> #include& ...
随机推荐
- pt
https://www.hdarea.co/torrents.php http://hdhome.org/torrents.php https://ourbits.club/torrents.php ...
- 模板 - 数据结构 - 线段树/SegmentTree
区间求加法和: 单点修改的,普通线段树. struct SegmentTree { #define ls (o<<1) #define rs (o<<1|1) static c ...
- C#中的线程之Abort陷阱
.简介 C#中通常使用线程类Thread来进行线程的创建与调度,博主在本文中将分享多年C#开发中遇到的Thread使用陷阱. Thread调度其实官方文档已经说明很详细了.本文只简单说明,不做深入探讨 ...
- CFD计算过程发散诸多原因分析【转载】
转载自: http://blog.sina.com.cn/s/blog_5fdfa7e601010rkx.html 今天探讨引起CFD计算过程中发散的一些原因.cfd计算是将描述物理问题的偏微分方程转 ...
- JavaWeb之问题集(1) —— Tomcat启动闪退
1. 问题描述 环境: System:Windows 10 Professional JDK:1.8.0.212 Tomcat:9.0.22 原本可以正常的启动和关闭,后来突然的就无法使用了,无法启动 ...
- angr工具的安装
一.安装 python2 或 python3: pip install angr 目前官方不再维护python2版本,所以python2装的版本偏低,且很可能没有后续更新. 如果你选择python2版 ...
- Flutter扫码识别二维码内容
前面一篇写了生成二维码图片,这篇来写使用相机扫描识别二维码 识别二维码需要用到插件 barcode_scan 首先在 pubspec.yaml 文件中添加以下依赖,添加依赖后在 pubspec.yam ...
- tail -f 加过滤功能
实时查看日志 通过-f参数,我们可以实时查看文件的新增内容: $ tail -f itbilu.log 注意:使用-f参数时不会中断文件监视,需要通过ctrl+c手动结束. 实时日志查看与grep过滤 ...
- 如何选题?| 什么样的科学问题 | 研究项目才是有意义的?| scientific method
搞科研,尤其是生命科学,经常会觉得自己做的东西是坨屎,没有任何意义. 在硕博的时候这种感觉会非常强烈,一个是自己思考能力不足:二是你的项目不是你设计的,不懂个中缘由,只执行的话就会很无聊,找不到意义感 ...
- 第十二章 Python文件操作【转】
12.1 open() open()函数作用是打开文件,返回一个文件对象. 用法格式:open(name[, mode[, buffering[,encoding]]]) -> file obj ...