【gmoj7184】【7.17提高B组模拟赛】有趣的家庭菜园4【差分+贪心】

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

分析

之前居然不知道有差分这东西¿¿
原来就是前缀和的逆,但是通常配合前缀和一起使用,多用于区间修改。先创建一个差分数组b,每次操作是对 ( l , r ) (l, r) (l,r)区间加上 c c c,就可以转换成对 b [ l ] + = c , b [ r + 1 ] − = c b[l] += c, b[r + 1] -= c b[l]+=c,b[r+1]=c,然后再对b数组求一次前缀和,即可得到修改后的数组。

这题要枚举k
对于整个同侧的区间修改相对高度是不改变的,但是如果跨越k是可以作用于两侧的。
利用这一特性求差分进行贪心,差分是便于修改值。

上代码

#include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std;

int n,a[200010],b[200010];
long long x[200010],y[200010]; 
 
int main()
{
	cin>>n;
	for(int i=1;i<=n;i++)
	{
		scanf("%d",&a[i]);
	}
	for(int i=2;i<=n;i++)
	{
		b[i]=a[i]-a[i-1];//差分 
	}
	for(int i=2;i<=n;i++)
	{
		if(b[i]<=0) x[i]=x[i-1]-(b[i]-1);
		else x[i]=x[i-1];
	}
	for(int i=n;i>=2;i--)
	{
		if(b[i]>=0) y[i]=y[i+1]+(b[i]+1);
		else y[i]=y[i+1]; 
	}
	long long ans=1e18;
	for(int i=1;i<=n;i++)
	{
		ans=min(ans,max(x[i],y[i+1]));
	}
	cout<<ans;
	return 0;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Elasticsearch 7.17.4的安装步骤如下: 1. 下载Elasticsearch 在官网 https://www.elastic.co/cn/downloads/elasticsearch 下载Elasticsearch的压缩包,选择适合自己操作系统的版本。下载完成后解压到任意目录。 2. 修改配置文件 进入Elasticsearch的config目录,修改elasticsearch.yml文件。比如: ``` # 设置集群名称 cluster.name: my-cluster # 设置节点名称 node.name: my-node # 设置数据存储路径 path.data: /path/to/data # 设置日志文件路径 path.logs: /path/to/logs ``` 3. 启动Elasticsearch 在终端中进入Elasticsearch的bin目录,执行以下命令启动Elasticsearch: ``` ./elasticsearch ``` 如果一切顺利,你应该能看到类似以下的输出: ``` [2022-02-24T11:23:10,394][INFO ][o.e.n.Node ] [my-node] version[7.17.4], pid[12345], build[default/tar/123abc/2022-01-25T17:34:29.218660Z], OS[Linux/4.14.143-89.123.amzn1.x86_64/amd64], JVM[AdoptOpenJDK/OpenJDK 64-Bit Server VM/16.0.2/16.0.2+7] [2022-02-24T11:23:10,396][INFO ][o.e.n.Node ] [my-node] JVM arguments [-Xms1g, -Xmx1g, -XX:+UseG1GC, -XX:G1ReservePercent=25, -XX:InitiatingHeapOccupancyPercent=30, -Djava.awt.headless=true, -Dfile.encoding=UTF-8, -Djna.nosys=true, -Djdk.io.permissionsUseCanonicalPath=true, -Dio.netty.noUnsafe=true, -Dio.netty.noKeySetOptimization=true, -Dio.netty.recycler.maxCapacityPerThread=0, -Dlog4j.shutdownHookEnabled=false, -Dlog4j2.disable.jmx=true, -Djava.locale.providers=SPI,COMPAT, -Xms512m, -Xmx512m, -Des.path.home=/path/to/elasticsearch-7.17.4, -Des.path.conf=/path/to/elasticsearch-7.17.4/config, -Des.distribution.flavor=default, -Des.distribution.type=tar, -Des.bundled_jdk=true] [2022-02-24T11:23:19,999][INFO ][o.e.p.PluginsService ] [my-node] loaded module [aggs-matrix-stats] [2022-02-24T11:23:19,999][INFO ][o.e.p.PluginsService ] [my-node] loaded module [analysis-common] [2022-02-24T11:23:19,999][INFO ][o.e.p.PluginsService ] [my-node] loaded module [geo] [2022-02-24T11:23:19,999][INFO ][o.e.p.PluginsService ] [my-node] loaded module [ingest-common] ... [2022-02-24T11:23:20,000][INFO ][o.e.p.PluginsService ] [my-node] loaded module [transport-netty4] [2022-02-24T11:23:20,000][INFO ][o.e.p.PluginsService ] [my-node] no plugins loaded [2022-02-24T11:23:23,123][INFO ][o.e.x.s.a.s.FileRolesStore] [my-node] parsed [0] roles from file [/path/to/elasticsearch-7.17.4/config/roles.yml] [2022-02-24T11:23:24,456][INFO ][o.e.i.g.GatewayService ] [my-node] recovered [0] indices into cluster_state [2022-02-24T11:23:27,521][INFO ][o.e.c.r.a.AllocationService] [my-node] Cluster health status changed from [RED] to [YELLOW] (reason: [shards started [[my-index][0]]]). ``` 这表示Elasticsearch已经成功启动。你可以通过访问`http://localhost:9200`来验证Elasticsearch是否运行正常。 4. 安装插件 Elasticsearch提供了很多插件,可以根据自己的需求进行安装。比如,安装kopf插件: ``` ./bin/elasticsearch-plugin install lmenezes/elasticsearch-kopf/2.1.2 ``` 5. 配置Elasticsearch作为服务 如果你想将Elasticsearch作为服务在后台运行,可以参考官方文档:https://www.elastic.co/guide/en/elasticsearch/reference/current/starting-elasticsearch.html。 希望这个安装教程能够帮助到你。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值