[cf1219G]Harvester
分类讨论(以下仅考虑行,列的情况):
1.4行的,求出每一行的和后找到4个最大值即可;
2.3行1列,枚举列,再将每一行最大值减去那一列的值后取3个最大值得和即可;
3.2行2列,发现行和列是等价的,因此可以通过旋转使得$m\le n$,又因为$nm\le 10^5$,所以$m\le \sqrt{10^5}$,枚举两列后用同样的做法求出最大值即可
最终复杂度$o(nm\codt \min(n,m))$,也就是根号的复杂度

1 #include<bits/stdc++.h>
2 using namespace std;
3 #define N 100005
4 #define ll long long
5 int n,m;
6 ll ans,b[N],s1[N],s2[N];
7 vector<int>a[N];
8 bool cmp(ll x,ll y){
9 return x>y;
10 }
11 ll qu(ll *a,int n,int k){
12 if (n<k)return 0;
13 ll x;
14 for(int i=1;i<=k;i++)b[i]=0;
15 for(int i=1;i<=n;i++){
16 x=a[i];
17 for(int j=1;j<=k;j++)
18 if (x>b[j])swap(x,b[j]);
19 }
20 x=0;
21 for(int i=1;i<=k;i++)x+=b[i];
22 return x;
23 }
24 int main(){
25 scanf("%d%d",&n,&m);
26 for(int i=1;i<=n;i++){
27 a[i].push_back(0);
28 for(int j=1;j<=m;j++){
29 scanf("%lld",&ans);
30 a[i].push_back(ans);
31 s1[i]+=a[i][j];
32 s2[j]+=a[i][j];
33 }
34 }
35 ans=max(qu(s1,n,4),qu(s2,m,4));
36 for(int i=1;i<=n;i++){
37 for(int j=1;j<=m;j++)s2[j]-=a[i][j];
38 ans=max(ans,s1[i]+qu(s2,m,3));
39 for(int j=1;j<=m;j++)s2[j]+=a[i][j];
40 }
41 for(int j=1;j<=m;j++){
42 for(int i=1;i<=n;i++)s1[i]-=a[i][j];
43 ans=max(ans,s2[j]+qu(s1,n,3));
44 for(int i=1;i<=n;i++)s1[i]+=a[i][j];
45 }
46 if (n<=m)
47 for(int i=1;i<n;i++)
48 for(int j=i+1;j<=n;j++){
49 for(int k=1;k<=m;k++)s2[k]-=a[i][k]+a[j][k];
50 ans=max(ans,s1[i]+s1[j]+qu(s2,m,2));
51 for(int k=1;k<=m;k++)s2[k]+=a[i][k]+a[j][k];
52 }
53 else
54 for(int i=1;i<m;i++)
55 for(int j=i+1;j<=m;j++){
56 for(int k=1;k<=n;k++)s1[k]-=a[k][i]+a[k][j];
57 ans=max(ans,s2[i]+s2[j]+qu(s1,n,2));
58 for(int k=1;k<=n;k++)s1[k]+=a[k][i]+a[k][j];
59 }
60 printf("%lld",ans);
61 }
[cf1219G]Harvester的更多相关文章
- ★Kali信息收集~ 5.The Harvester:邮箱挖掘器
官网:http://www.edge-security.com 安装:apt-get install theHarvester 运行:终端输入 theharvester (小写) 用法+参数:(返回邮 ...
- 逆天Kali带你游遍大江南北~安全之前人铺路!
0.Linux基础学习(基本指令) http://www.cnblogs.com/dunitian/p/4822807.html 1.Kali安装到移动硬盘或者U盘中~Linux系列通用方法(包括An ...
- ★Kali信息收集★8.Nmap :端口扫描
★Kali信息收集~ 0.Httrack 网站复制机 http://www.cnblogs.com/dunitian/p/5061954.html ★Kali信息收集~ 1.Google Hackin ...
- 安装 log.io 实时监控 php_error 日志
Log.io 实时监控 php_error.log 日志 开启 php_error 实时监控日志的第一步,要首先开启 php_error 的功能. vi php.ini 修改 PHP 配置文件,将 ; ...
- Kali信息收集系列:(都是我以前的笔记整理了一下,就没加水印,习惯就好)
好几天没发微信公众号了,今天一起发下.(最近有点事情) 前些天老业界的一位朋友问我一些Safe新时代信息收集的问题 逆天虽然好多年不干老本行,但隔段时间都会关注一下 于是就花了点时间整理了一下,你们就 ...
- [爬虫资源]各大爬虫资源大汇总,做我们自己的awesome系列
大数据的流行一定程序导致的爬虫的流行,有些企业和公司本身不生产数据,那就只能从网上爬取数据,笔者关注相关的内容有一定的时间,也写过很多关于爬虫的系列,现在收集好的框架希望能为对爬虫有兴趣的人,或者 ...
- kali linux 渗透测试视频教程 第五课 社会工程学工具集
第五课 社会工程学工具集 文/玄魂 教程地址:http://edu.51cto.com/course/course_id-1887.html 目录 第五课社会工程学工具集 SET SET的社会工程 ...
- backtrack5渗透 笔记
目录 1.信息收集 2.扫描工具 3.漏洞发现 4.社会工程学工具 5.运用层攻击msf 6.局域网攻击 ...
- NodeJS无所不能:细数10个令人惊讶的NodeJS开源项目
在几年的时间里,NodeJS逐渐发展成一个成熟的开发平台,吸引了许多开发者.有许多大型高流量网站都采用NodeJS进行开发,像PayPal,此外,开发人员还可以使用它来开发一些快速移动Web框架. 除 ...
随机推荐
- JVM学习笔记——方法区
方法区 Method Area 方法区在逻辑上属于堆的一部分,但可以看做是一块独立于 Java 堆的内存空间.所有的字段和方法字节码,以及一些特殊的方法,如构造函数,接口代码在此定义.所有定义方法的信 ...
- WinForm 控件 DataGridView 常用操作
1.取消列自动生成 在窗体load事件里面设置表格dataGridView的AutoGenerateColumns为 false dataGridView.AutoGenerateColumns = ...
- 洛谷3628 APIO2010特别行动队(斜率优化)
考虑最普通的\(dp\) \[dp[i]=max(dp[j]+a*(sum[i]-sum[j])^2+b*(sum[i]-sum[j])+c \] qwq 由于演算纸扔掉了 qwq 所以直接给出最后的 ...
- DFS与BFS题解:[kaungbin]带你飞 简单搜索 解题报告
DFS and BFS 在解题前我们还是大致讲一下dfs与bfs的.(我感觉我不会bfs) 1.DFS dfs(深度优先算法) 正如其名,dfs是相当的深度,不走到最深处绝不回头的那种. 深度优先搜 ...
- Java(3)基本数据类型及其类型转换
作者:季沐测试笔记 原文地址:https://www.cnblogs.com/testero/p/15201501.html 博客主页:https://www.cnblogs.com/testero ...
- sql常用的统计公式
hivesql中max,min函数不能作用于多列,因此在有上下门限区间限制时多用公式直接计算. max(x,y)=(x+y+ABS(x-y))/2 min(x,y)=(x+y-ABS(x-y))/2 ...
- 【c++ Prime 学习笔记】第9章 顺序容器
一个容器是特定类型对象的集合 顺序容器中元素的顺序与其加入容器的位置对应 关联容器中元素的顺序由其关联的关键字决定,关联容器分为有序关联容器和无序关联容器 所有容器类共享公有接口,不同容器按不同方式扩 ...
- 整数划分为k份
题目 将整数n分成k份,且每份不能为空,任意两个方案不能相同(不考虑顺序). 例如:n=7,k=3,下面三种分法被认为是相同的. 1,1,5; 1,5,1; 5,1,1; 问有多少种不同的分法. 输入 ...
- Coursera Deep Learning笔记 改善深层神经网络:优化算法
笔记:Andrew Ng's Deeping Learning视频 摘抄:https://xienaoban.github.io/posts/58457.html 本章介绍了优化算法,让神经网络运行的 ...
- Java多线程中的死锁
Java多线程中的死锁 死锁产生的原因 线程死锁是指由两个以上的线程互相持有对方所需要的资源,导致线程处于等待状态,无法往前执行. 当线程进入对象的synchronized代码块时,便占有了资源,直到 ...