思维训练4

news2024/9/30 5:31:27

题目描述1

Problem - A - Codeforces

题目分析

对于此题我们要求差值种类最大,故我们可以构造出相邻差值分别为1,2,3...由于n规定了最大的范围故我们增到一定的差值之后其差值必定为之前出现过的数字,但由于要保证数组呈递增趋势故可以在(n + i - k) 与 (a[i - 1] + i - 1)中取到最小的那个以保证可以在范围内。

#include<bits/stdc++.h>
using namespace std;
const int N = 2e5 + 10;
void solve()
{
	int k, n, d, a[N];
	cin >> k >> n;
	a[1] = 1;
	for(int i = 2; i <= k; i ++)
	{
		a[i] = min(n + i - k, a[i - 1] + i - 1);
	}
	for(int i = 1; i <= k; i ++)cout << a[i] << ' ';
	cout << '\n';
}
int main()
{
	ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
	int t;
	cin >> t;
	while(t --)
	{
		solve();
	}
	return 0;
}

题目描述2

Problem - B - Codeforces

题目分析

#include<bits/stdc++.h>
using namespace std;
const int N = 2e5 + 10;
typedef long long ll;
ll n, a[N], prefix[2][N];
void solve()
{
	cin >> n;
	for(int i = 1; i <= n; i ++)
	{
		cin >> a[i];
	}
	ll ans = 0, cnt1 = 0;
	for(int i = 1; i <= n; i ++)
	{
		if(a[i])cnt1 ++;
		else ans += cnt1;//逆序对数量 
		if(a[i] == 0)prefix[0][i] = prefix[0][i - 1] + 1;
		else prefix[0][i] = prefix[0][i - 1];
		if(a[i] == 1)prefix[1][i] = prefix[1][i - 1] + 1;
		else prefix[1][i] = prefix[1][i - 1];
	}
	ll sum = ans;
	for(int i = 1; i <= n; i ++)
	{
		if(a[i])//将1改为0 
		{
			ll d = prefix[1][i - 1] - (prefix[0][n] - prefix[0][i]);//左1减右0
			ans = max(ans, sum + d); 
		}
		else
		{
			ll d = (prefix[0][n] - prefix[0][i]) - prefix[1][i - 1];//右0减左1 
			ans = max(ans, sum + d);
		}
	}
	cout << ans << '\n';
}
int main()
{
	ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
	int t;
	cin >> t;
	while(t --)
	{
		solve();
	}
	return 0;
}

题目描述3

Problem - C - Codeforces

 题目分析

对于a和c的相对位置是不会发生变化的,其分别可以借助b向右移和左移。

本题确定三点:

1.a,c子序列相等

2.所有a仅右移

3.所有c仅左移

#include<bits/stdc++.h>
using namespace std;
const int N = 2e5 + 10;
int n, flag;
char s[N], t[N];
void solve()
{
	flag = 0;
	string ss = "", tt = "";
	cin >> n;
	cin >> s + 1 >> t + 1; 
	for(int i = 1; i <= n; i ++)
	{
		if(s[i] != 'b')ss += s[i];
		if(t[i] != 'b')tt += t[i];
	}
	if(ss != tt)flag = 1;
	if(flag)
	{
		cout << "NO" << '\n';
		return;
	}
	vector<int> sa, sc, ta, tc;
	for(int i = 1; i <= n; i ++)
	{
		if(s[i] == 'a')sa.push_back(i);
		if(s[i] == 'c')sc.push_back(i);
		if(t[i] == 'a')ta.push_back(i);
		if(t[i] == 'c')tc.push_back(i);
	}
	flag = 1;
	for(int i = 0; i < sa.size() && flag; i ++)
	{
		if(sa[i] > ta[i])flag = 0;	
	}
	for(int i = 0; i < sc.size() && flag; i ++)
	{
		if(sc[i] < tc[i])flag = 0;
	}
	if(!flag)cout << "NO" << '\n';
	else cout << "YES" << '\n';
}
int main()
{
	ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
	int t;
	cin >> t;
	while(t --)
	{
		solve();
	}
	return 0;
}

题目描述4

cnt[w] :  在w位的数的个数

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N = 2e5 + 10;
int a[N], cnt[N];
int getpos(int x)
{
	int res = 0;
	while(x)res ++, x >>= 1;
	return res;
}
void solve()
{
	int n;
	 cin >> n;
	 memset(cnt, 0, sizeof cnt);
	 for(int i = 1; i <= n; i ++)
	 {
	 	cin >> a[i];
	 }
	 ll ans = 0;
	 for(int i = 1; i <= n; i ++)
	 {
	 	int pos = getpos(a[i]);
	 	ans += cnt[pos] ++;
	 }
	 cout << ans << '\n';
}
int main()
{
	int t;
	cin >> t;
	while(t --)
	{
		solve();	
	} 
	return 0;
}

 题目描述5

Problem - E - Codeforces

题目分析 

题意为将相加为t的两个数字尽量分在不同的组中,如果两个数相加为t的只能放在一组的时候,尽量将其平均放置

#include<bits/stdc++.h>
using namespace std;
void solve()
{
	int n, t, x;
	cin >> n >> t;
	for(int i = 1, j = 0; i <= n; i ++)
	{
		cin >> x;
		if((1 + t) / 2 > x)cout << 1 << ' ';
		else if(t / 2 < x) cout << 0 << ' ';
		else cout << j << ' ', j ^= 1; 
	}
	cout << '\n';
}
int main()
{
	int t;
	cin >> t;
	while(t --)
	{
		solve();
	}
	return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1181079.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

java项目之线上教学平台(springboot框架)

项目简介 线上教学平台实现了以下功能&#xff1a; 管理员&#xff1a;首页、个人中心、学员管理、资料类型管理、学习资料管理、交流论坛、我的收藏管理、试卷管理、留言板管理、试题管理、系统管理、考试管理。学员&#xff1a;首页、个人中心、我的收藏管理、留言板管理、…

优思学院|APQP(先期产品质量规划)简介

在汽车行业&#xff0c;APQP Advanced Product Quality Planning&#xff08;先期产品质量规划&#xff09;&#xff0c;是一种常用的质量规划指南和工具&#xff0c;但它同样适用于其他行业。APQP是汽车国际行动组织&#xff08;AIAG&#xff09;提出的一种方法&#xff0c;用…

百数低代码与AI:实现业务智能化的新途径

今年6月&#xff0c;咨询机构麦肯锡发布了的一份题为《生成式人工智能的经济潜力》的研究报告&#xff0c;在报告中&#xff0c;分析师们通过对47个国家及地区的850种职业&#xff08;全球80%以上劳动人口&#xff09;的研究&#xff0c;探讨了在AI成指数级发展背后&#xff0c…

【云原生】使用nginx反向代理后台多服务器

背景 随着业务发展&#xff0c; 用户访问量激增&#xff0c;单台服务器已经无法满足现有的访问压力&#xff0c;研究后需要将后台服务从原来的单台升级为多台服务器&#xff0c;那么原来的访问方式无法满足&#xff0c;所以引入nginx来代理多台服务器&#xff0c;统一请求入口…

在idea命令行,or linux 终端执行命令,快速获取通过脚本上证指数、创业板实时行情

脚本编写 编写shell脚本如下,并保存命名为stock curl http://hq.sinajs.cn/list=s_sh000001 -H User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:70.0) Gecko/20100101 Firefox/70.0 -H Accept: */* -H Accept-Language: en-US,en;q=0.5 --compressed -H Referer…

SIEM 体系结构的组件

安全信息和事件管理&#xff08;SIEM&#xff09;软件可帮助 IT 安全专业人员保护其企业网络免受网络攻击&#xff0c;SIEM 解决方案从组织中的所有基础结构组件收集日志数据&#xff0c;为安全专业人员提供实时数据和对网络活动的见解。 网络的内部视图可以帮助您识别和预防威…

热像仪:使用 ESP32 和 MLX90640 传感器设计您自己的红外成像设备

本文详细介绍如何设计一款基于ESP32的热成像仪,文末包含完整的原理图,PCB,3D文件,程序源码的免费下载链接 使用 ESP32 和 MLX90640 传感器 DIY 热像仪 热像仪广泛应用于各种工业应用,例如热性能监控、检测温度异常、热基准测试等。我们甚至将热成像用于国防和军事应用。我…

Python教程:Pandas删除数据的4种情况

大家早好、午好、晚好吖 ❤ ~欢迎光临本文章 如果有什么疑惑/资料需要的可以点击文章末尾名片领取源码 开始之前&#xff0c;pandas中DataFrame删除对象可能存在几种情况 1、删除具体列 2、删除具体行 3、删除包含某些数值的行或者列 4、删除包含某些字符、文字的行或者列…

2023-11-07 android 编译的时候出现 unused variable ‘temp0‘ [-Werror,-Wunused-variable]

一、android 编译的时候出现 unused variable temp0 [-Werror,-Wunused-variable] 二、解决方法&#xff1a;在android.mk里面添加 LOCAL_CFLAGS -Wno-unused-parameter -Wno-unused-variable 三、解释 -Woption 让编译器给出option指定的编译警告&#xff0c;常用的一些如…

CSS实现文本左右对齐

因为文本里面有中午符号&#xff0c;英文&#xff0c;英文符号等&#xff0c;导致设置宽度以后右侧凌乱&#xff0c;可以通过以下代码设置样式&#xff0c;让文本工整对齐。 让我们看一下设置前和设置后的对比图片&#xff1a; 效果图如下&#xff1a;&#xff08;左边是设置…

揭秘Spring框架:模块装配的奥秘与实战技巧 【Spring|Java】

⭐简单说两句⭐ 作者&#xff1a;后端小知识&#xff0c;CSDN后端领域新星创作者|阿里云专家博主 CSDN个人主页&#xff1a;后端小知识 &#x1f50e;GZH&#xff1a;后端小知识 &#x1f389;欢迎关注&#x1f50e;点赞&#x1f44d;收藏⭐️留言&#x1f4dd; 揭秘Spring框架…

Cocos 进度条物体跟随效果

话不多说上代码&#xff0c;记录一下初学cocos解决的问题&#xff0c;实用小功能。 import { _decorator, Button, Component, Node, ProgressBarComponent, Sprite, UITransform, Vec3 } from cc; const { ccclass, property } _decorator;ccclass(game_scene1) export clas…

容联七陌携手岚时科技,解决医美机构回访3大痛点

近日&#xff0c;岚时科技研发中心联合容联七陌发布了全新的智能呼叫中心系统&#xff0c;5大功能模块解决了医美机构回访过程中的3大难题&#xff1a;客户资产保全困难、客户回访技术被卡脖子、回访人员&#xff08;客服、咨询&#xff09;效率管理困难。 “智能呼叫中心”通过…

ZKP8.1 Polynomial-IOP and Polynomial Commitment Schemes

ZKP学习笔记 ZK-Learning MOOC课程笔记 Lecture 8: FRI-based Polynomial Commitments and Fiat-Shamir (Justin Thaler) 8.1 Polynomial-IOP and Polynomial Commitment Schemes Recall: build an efficient SNARK Recall: Polynomial-IOP P’s first message in the pro…

Freeswitch代码

1.引入依赖 Freeswitch依赖版本 <dependency><groupId>org.freeswitch.esl.client</groupId><artifactId>esl-client</artifactId><version>0.10.1</version> </dependency> 2.代码 import org.freeswitch.esl.client.inbound…

分享导致vcruntime140_1.dll丢失的原因,以及vcruntime140_1.dll的解决办法

电脑中缺失vcruntime140_1.dll文件的问题&#xff0c;是常有的问题&#xff0c;不仅仅是vcruntime140_1.dll文件&#xff0c;还会有很多的其他的dll文件都会出现这样的问题。今天就和大家聊聊vcruntime140_1.dll文件丢失的情况&#xff0c;和什么原因导致的丢失vcruntime140_1.…

【波形图】在波形图上显示相对时间并将原点设置为零

默认情况下&#xff0c;波形图有一个定义的窗口来显示 X 轴。当X值达到该窗口的上限时&#xff0c;图表开始滚动以显示最新值的窗口。为了防止这种情况&#xff0c;请通过右键单击图表并选择X Scale Autoscale X将 X 轴设置为自动缩放。此操作还将增加窗口的大小以显示从 0 到…

基于SSM的智慧作业试题管理系统(有报告)。Javaee项目。

演示视频&#xff1a; 基于SSM的智慧作业试题管理系统&#xff08;有报告&#xff09;。Javaee项目。 项目介绍&#xff1a; 采用M&#xff08;model&#xff09;V&#xff08;view&#xff09;C&#xff08;controller&#xff09;三层体系结构&#xff0c;通过Spring Sprin…

样式问题解决

1.深度样式选择器 1.vue2中 原生css >>> .el-card__header saas\scss ::v-deep .el-card__header less /deep/ .el-card__header 2.vue3中 :deep() { //styles } ::deep() { //styles } 2.修改element.style样式

【uniapp】解决在H5谷歌浏览器下 u-input 标签 设置只读后,click事件不生效

【问题描述】 谷歌浏览器更新后&#xff0c;h5模式下原本的input外层view中的click事件不触发了?? 但是更换浏览器后就可以&#xff0c;打包app也是正常可以触发的&#xff0c;本来是没打算兼容h5&#xff0c;既然遇到了就记录一下~ 【解决办法】 使u–input里写上readonly&…