首页 > 其他分享 >8.8~8.13总结

8.8~8.13总结

时间:2022-08-15 10:16:46浏览次数:80  
标签:总结 ch 8.8 海浪 wave leq 涨潮 序列 8.13

8.9

wave

【题目描述】 海浪分为前浪和后浪,分别用数字 0 和数字 1 表示。 现在给定一天中 n 个时段的海浪序列,第 i 个序列包含 $m_i$ 个海浪。 全天海浪序列是 n 个时段的海浪序列按照任意的一种次序顺次拼接而成的序列。 一个涨潮定义为海浪序列的一个子序列(不必连续),满足这个子序列中的任何一个前浪 都出现在任何一个后浪之前。涨潮的强度定义为其中包含的海浪个数。 请你求出所有可能的全天海浪序列中,强度最大的涨潮的强度最大值。
【输入格式】 从文件 wave.in 中读入数据。 第一行一个正整数 n,表示序列个数。 接下来 n 行,第 i + 1 行一个正整数 $m_i$,其后紧随 $m_i$ 个数字 0 或 1,描述了一个海浪 序列。
【输出格式】 输出到文件 wave.out 中。 第一行一个正整数,表示强度最大的涨潮的强度。

\(solution\)

考虑每一个海浪序列全是1或者全是0所提供的最大贡献,与这个序列在中间的最大涨潮度相比较,保证所有序列的贡献加起来最大

AC Code
#include<bits/stdc++.h>
using namespace std;

inline int read()
{
	int x=0,f=1;
	char ch=getchar();
	while(ch<'0'||ch>'9')
	{
		if(ch=='-')f=-1;
		ch=getchar();
	}
	while(ch>='0'&&ch<='9')
	{
		x=x*10+ch-'0';
		ch=getchar();
	}
	return x*f;
}

const int N=5e5+5;
int n,sum[N],s[N],sum1[N],ans=0;
int m0[N],m1[N],sum2[N];

int main()
{
//	freopen("wave.in","r",stdin);
//	freopen("wave.out","w",stdout);
	n=read();
	for(int i=1;i<=n;i++)
	{
		sum[i]=read();sum[i]+=sum[i-1];
		for(int j=sum[i-1]+1;j<=sum[i];j++)
		{
			s[j]=read();
			if(s[j]==0)m0[j]=m0[j-1]+1,m1[j]=m1[j-1];
			else m1[j]=m1[j-1]+1,m0[j]=m0[j-1];
		}
		sum1[i]=max(m0[sum[i]]-m0[sum[i-1]],m1[sum[i]]-m1[sum[i-1]]);
		sum2[i]=sum2[i-1]+sum1[i];
		int tmp=0;
		ans=max(ans,m0[sum[i]]-m0[sum[i-1]]-sum1[i]);
		for(int j=sum[i];j>sum[i-1];j--)
		{
			if(s[j]==1)tmp++;
			ans=max(ans,tmp+m0[j-1]-m0[sum[i-1]]-sum1[i]);
		}
	}
	printf("%d\n",ans+sum2[n]);
	return 0;
}

scientist


\(solution\)
50pts:
枚举通知的据点 T,那么第 i 个据点的人会在 \(f_{T (i)} = a_i + |T − i|\) 分钟结束时到达道路上。所以当j > fT (j)时,送货的人会被挡住。

又因为送货的人可能在被挡住之前,他的左右两侧都有人,所以目标达成的时间为:

\[max(min_{1\leq i < j}{f_{T(i)}},min_{j\leq i \leq n}{f_{T(i)}}) \]

rain

标签:总结,ch,8.8,海浪,wave,leq,涨潮,序列,8.13
From: https://www.cnblogs.com/mkik/p/16587068.html

相关文章

  • 上周热点回顾(8.8-8.14)
    热点随笔:· 如何在BI中增加“路线地图”并进行数据分析? (葡萄城技术团队)· 程序员的悲哀 (林子er)· 学长告诉我,大厂MySQL都是通过SSH连接的 (咔咔-)· 【Maui正......
  • CMS垃圾收集器总结
    CMS:1. 初始标记  CMSinitialmark:         标记GCRoots直接关联对象,不用Tracing,速度很快2. 并发标记  CMSconcurrentmark    ......
  • 实时数据仓库==(总结)
    实时数据仓库(总结)1.开源实时数仓和离线数仓的区别API计算引擎离线数据仓库主要使用hivesql和sparksql进行开发实时数据仓库主要是使用flinksql开发数据存储......
  • 1007 公交线路 dijkstra板子+总结
     链接:https://ac.nowcoder.com/acm/contest/26077/1007来源:牛客网题目描述P市有n个公交站,之间连接着m条道路。P市计划新开设一条公交线路,该......
  • 10天了,总结一下我好像什么也没有做。
    忽然发现我写博客都写了10天了,我这10天回过头来看看啥也没有做啊。 以后我每天都做了什么应该也记录一下,看看我是否是真正的成长了 我得赶快崛起,离开lm这个傻逼、浪......
  • 第9天,8-14这几天开始玩游戏了,应该总结一下
    首先,我肯定错了。我想深究一下这里面错误的原因,那么可以不可以以后都不再犯?我觉得可以不再犯,但是能不能达到举一反三的地步? 我觉得理论上是可以的,但是现实中比较难,因为......
  • 【博学谷学习记录】超强总结,用心分享|狂野架构师IO常用知识点三
    目录BIO模型同步阻塞IONIO模型同步非阻塞IOAIO模型异步非阻塞IOReactor模型NIO下单Reactor-单线程NIO下单Reactor-多线程主从Reactor-多线程主从Reactor工作模式主从React......
  • Flink总结
    Flink总结从头儿过一遍书,做了些摘要。SQL那里还没仔细复习。一、初始Flink核心目标:数据流上的有状态计算具体定位:以内存执行速度(速度快)和任意规模来执行计算(可扩......
  • Ansible语法学习与总结
    【强烈推荐】Ansible自动化运维入门实战点击关注......
  • Linux网络命令总结
    我常用Linux网络命令总结回顾原创 入门小站 入门小站 2022-07-3022:00 发表于湖北收录于合集#Linux478个#网络命令1个哥常用的几个网络命令ip命令if......