T7315 yyy矩阵折叠(长)
题目背景
全场基本暴零
题目描述
输入输出格式
输入格式:
如图
输出格式:
如图
输入输出样例
- 2 2
- 1 -2
- 3 -4
- 4
- 2 5
- 1 -2 -3 4 -5
- 6 -7 -8 9 -10
- 20
说明
如图
DFS行,状压DP列
- #include<iostream>
- #include<cstdio>
- #include<cstring>
- #include<cmath>
- #include<algorithm>
- #include<queue>
- #include<stack>
- #include<cstdlib>
- using namespace std;
- const int maxn=0x7fffff;
- inline void read(int &n)
- {
- char c='+';int x=;bool flag=;
- while(c<''||c>''){c=getchar();if(c=='-')flag=;}
- while(c>=''&&c<='')
- x=(x<<)+(x<<)+c-,c=getchar();
- flag==?n=-x:n=x;
- }
- int n,m;
- int a[][];
- int ans=-maxn;
- int cur[];
- int pos2(int x)
- {
- return (<<x);
- }
- int dp(int zt)
- {
- memset(cur,,sizeof(cur));
- int ou,ji;
- for(int i=;i<=n;i++)
- if(zt&pos2(i))
- for(int j=;j<=m;j++)
- cur[j]+=a[i][j];
- bool flag=;
- for(int i=;i<=m;i++)
- if(cur[i]>)
- {
- flag=;
- break;
- }
- if(flag)
- return -maxn;
- ou=;ji=;
- for(int i=;i<=m;i++)
- {
- if(i&)
- {
- int x=cur[i]+ou;
- ji=max(ji,x);
- }
- else
- {
- int x=cur[i]+ji;
- ou=max(ou,x);
- }
- }
- return max(ou,ji);
- }
- void dfs(int pos,int last,int zt)
- {
- if(pos==n+)
- {
- ans=max(ans,dp(zt));
- return ;
- }
- if(last==-||(pos-last)&)
- dfs(pos+,pos,zt|pos2(pos));
- dfs(pos+,last,zt);
- }
- int main()
- {
- read(n);read(m);
- for(int i=;i<=n;i++)
- for(int j=;j<=m;j++)
- {
- read(a[i][j]);
- ans=max(ans,a[i][j]);
- }
- if(ans<)
- cout<<ans;
- else
- {
- dfs(,-,);
- printf("%d",ans);
- }
- return ;
- }
T7315 yyy矩阵折叠(长)的更多相关文章
- 【杨氏矩阵+勾长公式】POJ 2279 Mr. Young's Picture Permutations
Description Mr. Young wishes to take a picture of his class. The students will stand in rows with ea ...
- 现在有一个城市销售经理,需要从公司出发,去拜访市内的商家,已知他的位置以及商家的位置,但是由于城市道路交通的原因,他只能在左右中选择一个方向,在上下中选择一个方向,现在问他有多少种方案到达商家地址。给定一个地图map及它的长宽n和m,其中1代表经理位置,2代表商家位置,-1代表不能经过的地区,0代表可以经过的地区,请返回方案数,保证一定存在合法路径。保证矩阵的长宽都小于等于10。
include "stdafx.h" #include<iostream> #include<vector> #include<algorithm&g ...
- [matlab] 矩阵操作
>_<:矩阵构造 1.简单矩阵构造 最简单的方法是采用矩阵构造符“[]”.构造1´n矩阵(行向量)时,可以将各元素依次放入矩阵构造符[]内,并且以空格或者逗号分隔:构造m´n矩阵时,每行如 ...
- bzoj4165: 矩阵
Description 定义和谐矩阵为长不小于 Mina 且宽不小于 Minb 的矩阵,矩阵的权值为整个矩阵内所有数的和.给定一个长为 N ,宽为 M 的矩阵 A,求它的所有和谐子矩阵中权值第 K 小 ...
- 1007 正整数分组 1010 只包含因子2 3 5的数 1014 X^2 Mod P 1024 矩阵中不重复的元素 1031 骨牌覆盖
1007 正整数分组 将一堆正整数分为2组,要求2组的和相差最小. 例如:1 2 3 4 5,将1 2 4分为1组,3 5分为1组,两组和相差1,是所有方案中相差最少的. Input 第1行:一个 ...
- Wannafly模拟赛 A.矩阵(二分答案+hash)
矩阵 时间限制:1秒 空间限制:131072K 题目描述 给出一个n * m的矩阵.让你从中发现一个最大的正方形.使得这样子的正方形在矩阵中出现了至少两次.输出最大正方形的边长. 输入描述: 第一行两 ...
- [jdoj1090]矩阵_区间dp
矩阵 jdoj-1910 题目大意:给你连续的n个矩阵的长和宽,保证每连续的两个相邻矩阵满足相乘的条件,不能改变题目中矩阵的位置,求将这些矩阵相乘为一个矩阵的最小乘法次数. 注释:1<=n< ...
- 1050. 螺旋矩阵(25) pat乙级题
本题要求将给定的N个正整数按非递增的顺序,填入“螺旋矩阵”.所谓“螺旋矩阵”,是指从左上角第1个格子开始,按顺时针螺旋方向填充.要求矩阵的规模为m行n列,满足条件:m*n等于N:m>=n:且m- ...
- 牛客练习赛1 A - 矩阵
链接:https://www.nowcoder.com/acm/contest/2/A来源:牛客网 题目描述 给出一个n * m的矩阵.让你从中发现一个最大的正方形.使得这样子的正方形在矩阵中出现了至 ...
随机推荐
- 谈谈c++中继承中的虚函数
c++继承中的虚函数 c++是一种面向对象的编程语言的一个很明显的体现就是对继承机制的支持,c++中继承分很多种,按不同的分类有不同分类方法,比如可以按照基类的个数分为多继承和单继承,可以按照访问 ...
- 【Oracle】闪回技术
1.闪回技术描述 2.数据库的准备: --undo表空间要设置成AUTO,设置合适的保存时间.undo表空间: SYS@ENMOEDU> show parameter undo NAME TYP ...
- LINUX 环境安装 jdk-tomcat安装
linux版本两种安装方式 卸载自带jdk $rpm -qa | grep java $ rpm -e --nodeps java-**-openjdk-*$ rpm -e --nodeps java ...
- aspnet_regiis加密文件提示路径中具有非法字符
加密结果受当前目录影响,不知道是不是哪里操作错误,mark. Web.config文件位置:E:\Web\Surgery 加密成功,上图命令最后有个".",表示web.conf ...
- 07 --C语言字符串函数
1)字符串操作 复制 strcpy(p, p1) 复制字符串 strncpy(p, p1, n) 复制指定长度字符串 strdup(char *str) 将串拷贝到新建的位置处 ...
- CorelDRAW购物节福利开奖 | “剁手节”前的攻略来了,请查收!
距离“剁手节” 还有不到两周的时间 相信一些线上.线下.微商.电商...都拿出了看家本领进行市场混战 一场没有硝烟的战争开始啦!! …… 当然,我也不例外 你们谁都别拦着,我要打广告了 让你变成了不折 ...
- img-responsive class图片响应式
在BootStrap中,给<img>添加 .img-responsive样式就可以实现图片响应式. 1 <img src="..." class="im ...
- 从U盘安装CentOS7.3教程(转载)
0.准备工作: 一台没系统的普通电脑u盘一个(大于1G,最小安装的话不超过1G,根据选择系统大小匹配U盘即可) CentOS7.3 iso文件一个UltraISO工具 1.制作U盘 ①使用UltraI ...
- 【udacity】机器学习-波士顿房价预测
import numpy as np import pandas as pd from Udacity.model_check.boston_house_price import visuals as ...
- 关闭浏览器 清除session
捕获关闭浏览器的事件 关于关闭IE清空session的总结 Session过期会清楚session 还可以手动清除session实现关闭浏览器时清除session的方法