动态规划-多维DP
1.最大正方形
我的瞎猜分析:





我的瞎猜算法:
#include <stdio.h>
#include <memory.h>
#include <math.h>
#include <string>
#include <vector>
#include <set>
#include <stack>
#include <queue>
#include <algorithm>
#include <map> #define I scanf
#define OL puts
#define O printf
#define F(a,b,c) for(a=b;a<c;a++)
#define FF(a,b) for(a=0;a<b;a++)
#define FG(a,b) for(a=b-1;a>=0;a--)
#define LEN 101
#define MAX 1<<30
#define V vector<int> using namespace std; int dp[LEN][LEN][LEN];
int a[LEN][LEN]; int main(){
freopen("D:/CbWorkspace/动态规划/最大正方形.txt","r",stdin);
int n,m,i,j,v,k;
I("%d%d",&n,&m);
F(i,,n+) F(j,,m+) {
I("%d",&a[i][j]);
if(a[i][j]) dp[i][j][]=;
}
int ans=;
for(v=;v<n;v++){
for(i=;i+v<=n;i++){
for(j=;j+v<=m;j++){
dp[i][j][v+]=dp[i][j][v];
if(dp[i][j][v]==v){
bool flag=;
for(k=j;k<=j+v;k++){ //横向侧边
if(!a[i+v][k]){
flag=;
break;
}
}
if(flag) for(k=i;k<i+v;k++){ //纵向侧边
if(!a[k][j+v]){
flag=;
break;
}
}
if(flag){
dp[i][j][v+]++;
}
}
ans=max(ans,dp[i][j][v+]);
}
}
}
printf("%d",ans);
return ;
}
我的瞎猜算法:
#include <stdio.h>
#include <memory.h>
#include <math.h>
#include <string>
#include <vector>
#include <set>
#include <stack>
#include <queue>
#include <algorithm>
#include <map> #define I scanf
#define OL puts
#define O printf
#define F(a,b,c) for(a=b;a<c;a++)
#define FF(a,b) for(a=0;a<b;a++)
#define FG(a,b) for(a=b-1;a>=0;a--)
#define LEN 101
#define MAX 1<<30
#define V vector<int> using namespace std; int dp[LEN][LEN][LEN];
int a[LEN][LEN]; int main(){
freopen("D:/CbWorkspace/动态规划/最大正方形.txt","r",stdin);
int n,m,i,j,v,k;
I("%d%d",&n,&m);
F(i,,n+) F(j,,m+) {
I("%d",&a[i][j]);
if(a[i][j]) dp[i][j][]=;
}
int ans=;
for(v=;v<n;v++){
for(i=;i+v<=n;i++){
for(j=;j+v<=m;j++){
dp[i][j][v+]=dp[i][j][v];
if(dp[i][j][v]==v){
bool flag=;
for(k=j;k<=j+v;k++){ //横向侧边
if(!a[i+v][k]){
flag=;
break;
}
}
if(flag) for(k=i;k<i+v;k++){ //纵向侧边
if(!a[k][j+v]){
flag=;
break;
}
}
if(flag){
dp[i][j][v+]++;
}
}
ans=max(ans,dp[i][j][v+]);
}
}
}
printf("%d",ans);
return ;
}
动态规划-多维DP的更多相关文章
- 榨取kkksc03 多维dp
榨取kkksc03 多维dp 题面:洛谷 P1855 榨取kkksc03 一道简单的动态规划,背包再加一维费用,首先可以易得三维动态规划转移方程 \[ dp[i][j][w]=\left\{ \beg ...
- 动态规划-Dynamic Programming(DP)
动态规划 动态规划方法心得 动态规划是一般的面试.笔试中的高频算法题,熟练掌握必要的.动态规划的中心思想是在解决当前问题时,可以由之前已经计算所得的结果并结合现在的限制条件递推出结果.由于此前的计 ...
- 悦动达人 (多维dp)
悦动达人 Description 一个游戏,在屏幕上有5个格子形成一行,每一秒都会有一个格子闪烁,格子闪烁时你需要保证至少有一只手指在格子上面, 现在我们已经知道第i秒时,第xi个格子会闪烁,我们假设 ...
- POJ - 1170 Shopping Offers (五维DP)
题目大意:有一个人要买b件商品,给出每件商品的编号,价格和数量,恰逢商店打折.有s种打折方式.问怎么才干使买的价格达到最低 解题思路:最多仅仅有五种商品.且每件商品最多仅仅有5个,所以能够用5维dp来 ...
- luogu 4401 矿工配餐 多维dp
五维dp,记忆化搜索会MLE超内存,所以用滚动数组,十分经典 五维dp #include <bits/stdc++.h> using namespace std; ; ][][][],la ...
- 洛谷p1732 活蹦乱跳的香穗子 二维DP
今天不BB了,直接帖原题吧 地址>>https://www.luogu.org/problem/show?pid=1732<< 题目描述 香穗子在田野上调蘑菇!她跳啊跳,发现 ...
- 洛谷 P1006 传纸条 多维DP
传纸条详解: 蒟蒻最近接到了练习DP的通知,于是跑来试炼场看看:发现有点难(毕竟是蒟蒻吗)便去翻了翻题解,可怎么都看不懂.为什么呢?蒟蒻发现题解里都非常详细的讲了转移方程,讲了降维优化,但这题新颖之处 ...
- Blocks POJ - 1390 多维dp
题意:有一排box,各有不同的颜色.你可以通过点击某个box使得与其相邻的同色box全部消掉,然后你可以得到的分数为消去长度的平方,问怎样得到最高分? 题解:考虑用一维dp,/*dp[i]为1~i个b ...
- 【洛谷】【动态规划(二维)】P1508 Likecloud-吃、吃、吃
[题目描述:] 正处在某一特定时期之中的李大水牛由于消化系统比较发达,最近一直处在饥饿的状态中.某日上课,正当他饿得头昏眼花之时,眼前突然闪现出了一个n*m(n and m<=200)的矩型的巨 ...
随机推荐
- 一个 Java 正则表达式例子
今天在项目里看到用 Python 正则表达式的时候,用到 group,没有仔细看.正好学习 Java 正则表达式,对 group 多留意了一下. 上代码: import java.util.regex ...
- http的GET方法参数中不能传列表,接收端的key会变
如下 async initTable() { await getHostAttributesForUser({'username': this.username}).then(response =&g ...
- spring框架学习(一)——IOC/DI
什么是Spring框架: Spring是一个基于IOC和AOP的结构J2EE系统的框架: IOC 反转控制 是Spring的基础,Inversion Of Control,简单说就是创建对象由以前的程 ...
- 使用别的电脑连接另一台电脑当中的虚拟机中的kylin项目
环境说明: 本机A的ip:192.168.0.242 服务器B的ip:192.168.0.125 服务器上的虚拟机C的ip:192.168.43.129 目前状态: B上面能访问C上的站点kylin站 ...
- 【开发笔记】-CentOS配置Java环境变量
如果开发java应用,经常需要配置JAVA_HOME路径,如果是通过yum安装的jdk(一般系统会自带open-jdk),下面讲述配置过程: A 定位JDK安装路径 1. 终端输入: which ja ...
- 含有动态未知字段的 JSON 反序列化
一般来说,正常的 json 长这个模样: { 'Name': 'Bad Boys', 'ReleaseDate': '1995-4-7T00:00:00', 'Genres': [ 'Action', ...
- 财产PROPRETIE英语PROPRETIE房地产
property Alternative forms propretie English English Wikipedia has articles on: Property (disambigua ...
- 为 Linux 应用程序编写 DLL
插件和 DLL 通常是用来无须编写整个新应用程序而添加功能的极好方法. 在 Linux 中,插件和 DLL 是以动态库形式实现的. 电子商务顾问兼设计师 Allen Wilson 介绍了动态库,并且向 ...
- YUV视频格式详解(翻译自微软文档)
原文: https://docs.microsoft.com/en-us/previous-versions/aa904813(v=vs.80) YUV视频格式详解(翻译自微软文档)https://b ...
- tensorflow提示:No module named ''tensorflow.python.eager".
版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/qq_27921205/articl ...