2019牛客暑期多校第二场题解FH
F.Partition problem
题意:有2n个人,分两组,每组n个,要求sum(vij)最大值。
题解:n并不大我们可以枚举每个人是在1组还是2组爆搜。
代码:
#include <bits/stdc++.h>
#define ll long long
using namespace std;
const int N = + ;
int n,a[N],b[N];
ll v[N][N],ans = ,cnt1=,cnt2=;
void dfs(int x,ll sum) {
if (cnt1>n||cnt2>n) return;
if (cnt1==n&&cnt2==n) {
ans = max(ans,sum);
return;
}
if (cnt1 < n) {
a[++cnt1] = x;
for (int i = ; i <= cnt2; i++)
sum += v[x][b[i]];
dfs(x+,sum);
for (int i = ; i <= cnt2; i++)
sum -= v[x][b[i]];
cnt1--;
}
if (cnt2 < n) {
b[++cnt2] = x;
for (int i = ; i <= cnt1; i++)
sum += v[x][a[i]];
dfs(x+,sum);
for (int i = ; i <= cnt1; i++)
sum -= v[x][a[i]];
cnt2--;
}
}
int main() {
scanf("%d",&n);
for (int i = ; i <= *n; i++)
for (int j = ; j <= *n; j++)
scanf("%lld",&v[i][j]);
dfs(,);
printf("%lld\n", ans);
return ;
}
H.Second Large Rectangle
题意:给你一个n*m的01矩阵,问全为1的第二大的矩阵大小。
题解:这题相当于从第1行到第n行,以当前行为底求直方图的第二大面积。我们知道怎么求直方图的最大面积(不知道的点这里)。我们可以用单调栈来做。不过要注意第二大不一定是用求最大的方法找到的第二大,也可能是最大的减去一行或者一列的大小。(因为没注意到这个WA了)。
代码:
#include <bits/stdc++.h>
#define ll long long
using namespace std;
const int N = 1e3 + ;
char s[N];
int dp[N][N];
int main() {
int n,m;
scanf("%d%d",&n,&m);
int max1 = ,max2 = ,area;
for (int i = ; i <= n; i++) {
scanf("%s",s);
stack<int> v;
for (int j = ;j <= m; j++) {
if(j == m) dp[i][j] = -;
else {
dp[i][j] = s[j]==''?:;
dp[i][j] += dp[i][j]*dp[i-][j];
}
if (v.empty() || dp[i][j] > dp[i][v.top()])
v.push(j);
else {
int now = v.top();
v.pop();
if (v.empty()) area = j * dp[i][now];
else area = (j - v.top() - ) * dp[i][now];
if(area > max1) {
max2 = max1;
max1 = area;
//注意这里
if (v.empty())
max2 = max(max2,max(area - dp[i][now],area-j));
else max2 = max(max2,max(area - dp[i][now],area-(j - v.top() - )));
}else if (area > max2) max2 = area;
j--;
}
}
}
printf("%d\n", max2);
return ;
}
2019牛客暑期多校第二场题解FH的更多相关文章
- 2019 牛客暑期多校 第二场 H Second Large Rectangle (单调栈)
题目:https://ac.nowcoder.com/acm/contest/882/H 题意:一个大的01矩阵,然后现在要求第二大的全一矩阵是多少 思路:在这里我们首先学习一下另一个东西,怎么求直方 ...
- 2019牛客暑期多校第一场题解ABCEFHJ
A.Equivalent Prefixes 传送门 题意:给你两个数组,求从第一个元素开始到第p个元素 满足任意区间值最小的元素下标相同的 p的最大值. 题解:我们可以从左往右记录到i为止每个区间的最 ...
- 2019 牛客暑期多校 第一场 H XOR (线性基)
题目:https://ac.nowcoder.com/acm/contest/881/H 题意:求一个集合内所有子集异或和为0的长度之和 思路:首先集合内异或和,这是线性基的一个明显标志,然后我们不管 ...
- 【2019牛客暑期多校第一场】E题ABBA
题目链接 大致题意 有(n+m)(n + m)(n+m)个字母A和(n+m)(n + m)(n+m)个字母B,组成一个长度为 2∗(n+m)2*(n + m)2∗(n+m)的字符串,并且使得字符串中有 ...
- 2019牛客暑期多校训练营(第五场)G - subsequeue 1 (一题我真的不会的题)
layout: post title: 2019牛客暑期多校训练营(第五场)G - subsequeue 1 (一题我真的不会的题) author: "luowentaoaa" c ...
- 2019牛客暑期多校训练营(第二场)F.Partition problem
链接:https://ac.nowcoder.com/acm/contest/882/F来源:牛客网 Given 2N people, you need to assign each of them ...
- 2019牛客暑期多校训练营(第八场)-A All-one Matrices (单调栈+前缀和)
题目链接:https://ac.nowcoder.com/acm/contest/888/A 题意:给n×m的01矩阵,求出其中全为1的矩阵个数(不被其它全1矩阵包括). 思路:和第二场多校的次大子矩 ...
- 2019牛客暑期多校训练营(第一场)A Equivalent Prefixes(单调栈/二分+分治)
链接:https://ac.nowcoder.com/acm/contest/881/A来源:牛客网 Two arrays u and v each with m distinct elements ...
- 2019牛客暑期多校训练营(第九场)A:Power of Fibonacci(斐波拉契幂次和)
题意:求Σfi^m%p. zoj上p是1e9+7,牛客是1e9: 对于这两个,分别有不同的做法. 前者利用公式,公式里面有sqrt(5),我们只需要二次剩余求即可. 后者mod=1e9,5才 ...
随机推荐
- js获取dom节点
var s= document.getElementById("test");del_ff(s); //清理空格var chils= s.childNodes; //得到s的全部子 ...
- OP_REQUIRES failed at conv_ops.cc:386 : Resource exhausted: OOM when allocating tensor with shape..
tensorflow-gpu验证准确率是报错如上: 解决办法: 1. 加入os.environ['CUDA_VISIBLE_DEVICES']='2' 强制使用CPU验证-----慢 2.'batch ...
- Android Button点击效果(按钮背景变色、文字变色)
一. 说明 Android Button的使用过程中,我们会需要为Button添加点击效果,不仅仅按钮的背景色需要变化,而且有时,我们连文字的颜色都希望变化,我们可以使用StateListDrawab ...
- Python--day46--mysql触发器
触发器:当对某张表做:增删改操作时,可以使用触发器自定义关联行为 1,为什么需要创建mysql触发器? 比如说我往tb1表里面插入一条数据的时候,同时需要往日志表tb2中插入这条数据,这时候就需要创造 ...
- 基于@AspectJ注解配置切面与基于XML配置切面
1. Waiter目标类 package com.smart.aop.advice.pointcut; public class Waiter { public void greetTo(String ...
- HDU 2871"Memory Control"(线段树区间和并+set.lower_bound)
传送门 •题意 有 n 个内存单元(编号从1开始): 给出 4 种操作: (1)Reset :表示把所有的内存清空,然后输出 "Reset Now". (2)New x :表示申请 ...
- 2018-8-10-如何入门-C++-AMP-教程
title author date CreateTime categories 如何入门 C++ AMP 教程 lindexi 2018-08-10 19:16:51 +0800 2018-2-13 ...
- P1073 奇数还是偶数
题目描述 给你 \(N(1 \le N \le 1000)\) 个数,你需要判断每个数是奇数还是偶数. 输入格式 输入的第一行包含一个整数 \(N(1 \le N \le 1000)\) . 接下来 ...
- 解决 el-autocomplete 不显示及没数据时闪一下的问题
项目中用到了elementUI中的远程搜索即 el-autocomplete 组件,估计首次使用的都会遇到一些小问题,只要你能认真看完并且耐心理解,保证能帮到你,效果图如下: 组件代码: <el ...
- tomcat下的work目录和temp目录
1. tomcat下的work目录 1 用tomcat作web服务器的时候,部署的程序在webApps下,这些程序都是编译后的程序(发布到tomcat的项目里含的类,会被编译成.class后才发 ...