题目

不得不说这个题非常毒瘤。

简化题意

这个题的暴力还是非常好想的,完全可以过\(50\%\)的数据。但是\(100\%\)就很难想了。

因为数据很大,所以我们需要用\(O(\sqrt n)\)的时间求出每个时间的前面第一个跟它满足均衡区间的时间。

此时我们会很快速的想到\(Hash\)或\(Map\),他们的时间复杂度是小于\(O(\sqrt n)的\)所以满足要求,因此一般看到寻找相同得值的时候,最好还是想想怎么优化吧

\(Code\)

#include <iostream>
#include <cstring>
#include <algorithm>
#include <cstdio>
#include <cmath>
#include <map>
#include <vector>
using namespace std;
int n, m, a, ans;
map <vector <int>, int>dp;//表示每个数组所对应的第一次出现的天数。
signed main()
{
scanf("%d%d", &n, &m);
vector <int> sum(m + 3);//sum[j]表示j这个数的能力值和1这个数的能力值差值。
dp[sum] = 0;
for (int i = 1; i <= n; i++)
{
scanf("%d", &a);
for (int j = 1; j <= m; j++)
if (a & (1 << (j - 1)))
sum[j]++;
if (a % 2 == 1)//如果该能力提升数字增加了一这个数,那所有sum值都减少1。
for (int j = 1; j <= m; j++)//这里用来保证状态有可能会有重复的,
sum[j]--;
for (int i = 1; i <= m; i++)
printf("%d ", sum[i]);
if (dp.count(sum))
ans = max(ans, i - dp[sum]);
// printf("%d %d\n", i, dp[sum]);
else dp[sum] = i;
}
printf("%d", ans);
}
/*
7 3
7
6
7
2
5
4
2
*/

洛谷P1360 [USACO07MAR]黄金阵容均衡题解的更多相关文章

  1. 洛谷P1360 [USACO07MAR]黄金阵容均衡Gold Balanced L…

    P1360 [USACO07MAR]黄金阵容均衡Gold Balanced L… 题目描述 Farmer John's N cows (1 ≤ N ≤ 100,000) share many simi ...

  2. 洛谷 P1360 [USACO07MAR]黄金阵容均衡Gold Balanced L…

    P1360 [USACO07MAR]黄金阵容均衡Gold Balanced L… 题目描述 Farmer John's N cows (1 ≤ N ≤ 100,000) share many simi ...

  3. 洛谷 P1360 [USACO07MAR]Gold Balanced Lineup G (前缀和+思维)

    P1360 [USACO07MAR]Gold Balanced Lineup G (前缀和+思维) 前言 题目链接 本题作为一道Stl练习题来说,还是非常不错的,解决的思维比较巧妙 算是一道不错的题 ...

  4. [USACO07MAR]黄金阵容均衡Gold Balanced L…(洛谷 1360)

    题目描述 Farmer John's N cows (1 ≤ N ≤ 100,000) share many similarities. In fact, FJ has been able to na ...

  5. [USACO07MAR]黄金阵容均衡Gold Balanced L…

    https://www.luogu.org/problem/show?pid=1360 题目描述 Farmer John's N cows (1 ≤ N ≤ 100,000) share many s ...

  6. [USACO07MAR]黄金阵容均衡Gold Balanced L… map

    题目描述 Farmer John's N cows (1 ≤ N ≤ 100,000) share many similarities. In fact, FJ has been able to na ...

  7. [luoguP1360] [USACO07MAR]黄金阵容均衡Gold Balanced L…

    传送门 真的骚的一个题,看了半天只会个前缀和+暴力.. 纯考思维.. 良心题解 #include <cstdio> #include <cstring> #include &l ...

  8. 洛谷P1854 花店橱窗布置 分析+题解代码

    洛谷P1854 花店橱窗布置 分析+题解代码 蒟蒻的第一道提高+/省选-,纪念一下. 题目描述: 某花店现有F束花,每一束花的品种都不一样,同时至少有同样数量的花瓶,被按顺序摆成一行,花瓶的位置是固定 ...

  9. [LuoguP1360][USACP07MAR]黄金阵容均衡

    [LuoguP1360][USACP07MAR]黄金阵容均衡(Link) 每天会增加一个数\(A\),将\(A\)二进制分解为\(a[i]\),对于每一个\(i\)都增加\(a[i]\),如果一段时间 ...

随机推荐

  1. Dockerfile centos7_tomcat7.0.64_jdk7u80

    FROM centos:7 MAINTAINER jiangzhehao WORKDIR /tmp RUN yum -y install net-tools ADD jdk-7u80-linux-x6 ...

  2. pip3 升级失败的解决方法!亲测有效

    pip3 --default-timeout=10000 install -U pip 注意:由于防火长城的存在,会导致更新失败,如果你加上--default-timeout=10000  这个就ok ...

  3. 05Hadoop 概论

    Hadoop的思想之源:Google Google搜索引擎,Gmail,安卓,AppspotGoogle Maps,Google earth,Google 学术,Google翻译,Google+,下一 ...

  4. MySQL分页时统计总记录行数并使用limit返回固定数目的记录

    需求很简单:假设有一个user表,表中实际上有10000条数据,但是我不知道有多少条,我要从数据库中每次取20条数据显示,那么怎么完成呢? 方案一: 首先执行一个 select count(*) as ...

  5. shell脚本--操作MySQL数据库

    其实就是一个很简单的套路,和其他语言差不多,首先连接数据库,然后在进行其他操作. 套路如下: #!/bin/bash mysql="mysql -uroot -proot" #连接 ...

  6. CentOS查看和修改PATH环境变量的方法 profile

    https://blog.csdn.net/dongheli/article/details/83987092

  7. telnet总结

    telnet是经常使用的客户端链接工具,总结一下常用的telnet的使用方法 1) 连接 telnet //链接swoole 2)退出当前连接 ctrl + ] 回车 3)查看常用的一些命令 ? 回车 ...

  8. IdentityServer4【Introduction】之术语

    术语 在规范.文档和对象模型中使用了一些你应该了解的术语. IdentityServer IdentityServer是一个OpenID Connect的提供者,它实现了OpenID Connect和 ...

  9. [转帖]迎战AMD 7nm 64核EPYC 英特尔至强也玩起了胶水以及性价比

    迎战AMD 7nm 64核EPYC 英特尔至强也玩起了胶水以及性价比 Intel 最强CPU 从最开始的双核 到现在的 28核 发展迅猛. https://www.cnbeta.com/article ...

  10. checkbox保存和赋值

    //货物信息中的表格内容 $.each(trG.find('td input,td select'),function(i,inp){ if($(inp).attr('type')=='checkbo ...