Codeforces Round 835 (Div. 4) Tutorial (zh)

news2025/1/19 23:09:15

题目链接

A. Medium Number

在这里插入图片描述
题意:

给三个数 a , b , c a,b,c a,b,c,找出中间的那个数
eg. a ≤ b ≤ c a \leq b \leq c abc 输出 b b b

Example
input

9
5 2 6
14 3 4
20 2 1
1 2 3
11 19 12
10 8 20
6 20 3
4 1 3
19 8 4

output

5
4
2
2
12
10
6
3
8

题解:

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

void sove(void){
    int a[3];
    cin>>a[0]>>a[1]>>a[2];
    sort(a,a+3);
    cout<<a[1]<<endl;
}

int main(void){
    int _=1;
    cin>>_;
    while(_--)sove();

    return 0;
}

B. Atilla’s Favorite Problem

在这里插入图片描述
Example
input

5
1
a
4
down
10
codeforces
3
bcf
5
zzzzz

output

1
23
19
6
26

题意:

找出字符串中在字母序中最大的,并输出其在字母序中的位置

题解:

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

void sove(void){
    int t;cin>>t;

    string s;
    cin>>s;
    int ans=0;
    for(int i=0;i<s.size();i++)if(s[i]-'a'>ans)ans=s[i]-'a';
    cout<<ans+1<<'\n';
}

int main(void){
    int _=1;
    cin>>_;
    while(_--)sove();

    return 0;
}

C. Advantage

在这里插入图片描述
Example
input

5
4
4 7 3 5
2
1 2
5
1 2 3 4 5
3
4 9 4
4
4 4 4 4

output

-3 2 -4 -2 
-1 1 
-4 -3 -2 -1 1 
-5 5 -5 
0 0 0 0 

题意:

依此输出当前数字和在数组中除本身的最大数的差值

题解:

个人认为,先排序更好,然后再排序回来

#include <iostream>
#include <algorithm>
using namespace std;
const int N = 2*1e5+10;
struct node{
    int x,i;
    int cha;
};
node a[N];
inline bool cmp(node x,node y){
    return x.x<y.x;
}
inline bool cmp2(node x,node y){
    return x.i<y.i;
}
void sove(void){
    int n;cin>>n;
    for(int i=1;i<=n;i++){cin>>a[i].x;a[i].i=i;}
    sort(a+1,a+n+1,cmp);
    for(int i=1;i<n;i++){
        a[i].cha=a[i].x-a[n].x;
    }
    a[n].cha=a[n].x-a[n-1].x;
    sort(a+1,a+n+1,cmp2);
    for(int i=1;i<=n;i++)cout<<a[i].cha<<' ';
    cout<<'\n';
}

int main(void){
    int _=1;
    cin>>_;
    while(_--)sove();

    return 0;
}

By Hhaarrsshhiitt:

#include<bits/stdc++.h>
using namespace std;
int t;
int main()
{
	cin>>t;
	while(t--)
	{
		int n;
		cin>>n;
		int a[n+1],b[n+1];
		for(int i=0;i<n;i++)
			cin>>a[i],b[i]=a[i];
		sort(a,a+n);
		for(int i=0;i<n;i++)
			cout<<b[i]-a[n-1-bool(b[i]==a[n-1])]<<" ";
		cout<<endl;
	}
}

D. Challenging Valleys

在这里插入图片描述
Example
input

6
7
3 2 2 1 2 2 3
11
1 1 1 2 3 3 4 5 6 6 6
7
1 2 3 4 3 2 1
7
9 7 4 6 9 9 10
1
1000000000
8
9 4 4 5 9 4 9 10

output

YES
YES
NO
YES
YES
NO

题意:

给一个数组,定义”山谷“为子数组 [ l , r ] [l,r] [l,r]
并且满足以下四个条件

  1. 0 ≤ l ≤ r ≤ n − 1 0\leq l \leq r \leq n-1 0lrn1
    2. a l = . . . = a r a_l=...=a_r al=...=ar(具体看上图)
    3. l = = 0 ∣ ∣ a [ l − 1 ] > a [ l ] l==0 || a[l-1]>a[l] l==0∣∣a[l1]>a[l]
    4. a [ r + 1 ] > a [ r ] ∣ ∣ r = = n − 1 a[r+1]>a[r]||r==n-1 a[r+1]>a[r]∣∣r==n1
    如果该数组恰好有一个山谷,那么输出"YES"否则输出"NO"

题解:

根据题目来就行,这里使用了双指针的做法
如果有符合山谷条件的就+1,最后判断是否恰好为1个即可

#include <iostream>
#include <algorithm>
//#define int long long
using namespace std;
const int N = 2*1e5+10;

int a[N];

void sove(void){
    int n;cin>>n;
    for(int i=1;i<=n;i++)cin>>a[i];
    int l=1,r=1;
    int sum=0;
    while(r<=n){
        while(a[l]!=a[r])l++;
        if((l==1||a[l-1]>a[l])&&(r==n||a[r+1]>a[r]))sum++;
        r++;
    }
    if(sum==1)cout<<"YES\n";
    else cout<<"NO\n";
}

signed main(void){
    int _=1;
    cin>>_;
    while(_--)sove();

    return 0;
}
//1
//6
//10 10 8 10 10 4

E. Binary Inversions

在这里插入图片描述

Example
input

5
4
1 0 1 0
6
0 1 0 0 1 0
2
0 0
8
1 0 1 1 0 0 0 1
3
1 1 1

output

3
7
1
13
2

题解:

直接分情况讨论,偶数个最简单,再分两种情况,从前往后和从后往前的。直接贪心,
最佳情况就是前1后0(分前半段和后半段)
最后取最大值即可
时间复杂度都是线性的

#include <iostream>
#include <algorithm>
#define int long long
using namespace std;
const int N = 2*1e5+10;

bool a[N];
bool b[N];
void sove(void){
    int n;
    cin>>n;
    if(n&1){
        int flag=1,flag2=1;
        int ling=0,ling2=0;
        for(int i=1;i<=n;i++){cin >> a[i];b[i]=a[i];}
        for(int i=1;i<=n;i++) {

            if (flag && ((i <= n / 2 && (!a[i])) || (i > n / 2 && a[i]))) {
                a[i] ^= 1;
                flag--;
            }
            if(!a[i])ling++;

            int j=n-i+1;
            if (flag2 && ((j <= n / 2 && (!b[j])) || (j > n / 2 && b[j]))) {
                b[j] ^= 1;
                flag2--;
            }
            if(!b[j])ling2++;

        }

        int ans1=0,ans2=0;
        for(int i=1;i<=n;i++){
            if(a[i]){
                ans1+=ling;
            }
            else ling--;
            if(b[i]){
                ans2+=ling2;
            }
            else ling2--;
        }

        cout<<max(ans1,ans2)<<'\n';
    }
    else {
        int flag=1,flag2=1;
        int ling=0,ling2=0;
        for(int i=1;i<=n;i++){cin >> a[i];b[i]=a[i];}
        for(int i=1;i<=n;i++) {

            if (flag && ((i <= n / 2 && (!a[i])) || (i > n / 2 && a[i]))) {
                a[i] ^= 1;
                flag--;
            }
            if(!a[i])ling++;

            int j=n-i+1;
            if (flag2 && ((j <= n / 2 && (!b[j])) || (j > n / 2 && b[j]))) {
                b[j] ^= 1;
                flag2--;
            }
            if(!b[j])ling2++;
        }

        int ans1=0,ans2=0;
        for(int i=1;i<=n;i++){
            if(a[i]){
                ans1+=ling;
            }
            else ling--;
            if(b[i]){
                ans2+=ling2;
            }
            else ling2--;
        }

        cout<<max(ans1,ans2)<<'\n';
    }

}

signed main(void){
    int _=1;
    cin>>_;
    while(_--)sove();

    return 0;
}
//1
//6
//10 10 8 10 10 4

F. Quests

在这里插入图片描述
Example
input

6
2 5 4
1 2
2 20 10
100 10
3 100 3
7 2 6
4 20 3
4 5 6 7
4 100000000000 2022
8217734 927368 26389746 627896974
2 20 4
5 1

output

2
Infinity
Impossible
1
12
0

official:

#include <bits/stdc++.h>

using namespace std;

const int MAX = 200007;
const int MOD = 1000000007;

void solve() {
	int n, d;
	long long c;
	cin >> n >> c >> d;
	long long a[n];
	for (int i = 0; i < n; i++) {
		cin >> a[i];
	}
	sort(a, a + n, greater<long long>());
	int l = 0, r = d + 2;
	while (l < r) {
		int m = l + (r - l + 1) / 2;
		long long tot = 0;
		int curr = 0;
		for (int i = 0; i < d; i++) {
			if (i % m < n) {tot += a[i % m];}
		}
		if (tot >= c) {
			l = m;
		}
		else {
			r = m - 1;
		}
	}
	if (l == d + 2) {cout << "Infinity\n"; return;}
	if (l == 0) {cout << "Impossible\n"; return;}
	cout << l - 1 << '\n';
}

int main() {
	ios::sync_with_stdio(false);
	cin.tie(nullptr);
	int tt; cin >> tt; for (int i = 1; i <= tt; i++) {solve();}
	// solve();
}

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

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

相关文章

[Nacos] Nacos Client获取调用服务的提供者列表 (四)

文章目录 1.Nacos Client获取调用服务的提供者列表1.1 从Ribbon的负载均衡入手到Nacos Client获取调用服务的提高者列表1.2 getServers方法返回分析1.3 通过selectInstances方法查找Instances实例1.4 获取到要调用服务的serviceInfo Nacos Client 从Ribbon负载均衡调用服务。 …

无公网IP,SSH远程连接Linux CentOS

转载自cpolar内网穿透的文章&#xff1a;无公网IP&#xff0c;SSH远程连接Linux CentOS【内网穿透】 本次教程我们来实现如何在外公网环境下&#xff0c;SSH远程连接家里/公司的Linux CentOS服务器&#xff0c;无需公网IP&#xff0c;也不需要设置路由器。 视频教程 【SSH远程…

汇编十二、定时/计数器

1、功能 定时器/计数器的核心部件是一个加法(也有减法)的计数器&#xff0c;其本质是对脉冲进行计数。只是计数脉冲来源不同&#xff1a;如果计数脉冲来自系统时钟&#xff0c;则为定时方式&#xff0c;此时定时器/计数器每12个时钟周期或者每6个时钟周期得到一个计数脉冲&…

Sentinel简介和安装

1.Sentinel简介 官方Github 官方中文文档Github 官方文档 1.1.Sentinel 是什么&#xff1f; 随着微服务的流行&#xff0c;服务和服务之间的稳定性变得越来越重要。Sentinel 以流量为切入点&#xff0c;从流量控制、熔断降级、系统负载保护等多个维度保护服务的稳定性。 …

HTB-Agile

HTB-Agile 信息收集80端口漫长的兔子洞之旅 立足www-data -> corumcorum -> edwardsedwards -> root 信息收集 80端口 漫长的兔子洞之旅 我注意到系统为我分配了一个session&#xff0c;是以eyj开头的。 拿去jwt.io看看。 额&#xff0c;可能后面会用先留在这&#…

实验5 单选多选、进度条、图像显示等组件使用

实验内容和步骤 以下习题需要自己设计界面内容&#xff0c;尽量丰富&#xff0c;并且突出创新和亮点&#xff0c;不可简单仿照例题。 1.设计并实现音乐播放器的进度条界面。 2.设计并实现含有多选控件的界面。 3.设计并实现含有单选控件的界面。 4.设计并实现含有图像显示的界…

华为OD机试真题 Java 实现【去除多余空格】【2023Q1 200分】

一、题目描述 去除文本多余空格&#xff0c;但不去除配对单引号之间的多余空格。给出关键词的起始和结束下标&#xff0c;去除多余空格后刷新关键词的起始和结束下标。 条件约束&#xff1a; 不考虑关键词起始和结束位置为空格的场景&#xff1b;单词的的开始和结束下标保证…

springboot项目:瑞吉外卖 前后端 代码、思路 详细分析 part6

part1 part2 part3 part4 part5 part6(本页) 7. 菜品展示、购物车、下单 功能开发 7.1 导入用户地址簿相关功能代码 7.2 菜品展示 7.3 购物车 7.4 下单 7.1 导入用户地址簿相关功能代码 7.1.1 整体分析 需求分析 数据模型需要开发的模块&#xff1a;新增收获地址、设置默认…

【Mysql】初识 Mysql

文章目录 【Mysql】初识 Mysql数据库初识主流关系型数据库理解数据库mysql基本操作连接服务器理解服务器&#xff0c;数据库&#xff0c;表关系小案例数据逻辑存储 mysql架构sql分类存储引擎 【Mysql】初识 Mysql 数据库初识 数据库概念 数据库是“按照数据结构来组织、存储和…

v-model使用及原理

关于v-model&#xff0c;vue2与vue3用法不一致&#xff0c;本文学习采用了vue3官网文档。与vue2区别写在本文末尾。一、为什么使用v-model&#xff1f; v-model指令可以在表单input、textarea以及select元素上创建双向数据绑定。它会根据控件类型自动选取正确的方法来更新元素…

马哈鱼SQLFLow直接数据流介绍

直接数据流介绍 本文将介绍一些生成直接数据流的SQL元素&#xff0c;这些元素是生产数据流的主要原型。 1、Select 示例语句&#xff1a; SELECT a.empName "eName" FROM scott.emp a Where sal > 1000目标列“eName”的数据来自scott.emp.empName列&#xff…

【安卓源码】安卓app应用进程启动原理

目录 0. 应用app 调用 startActivity 1. AMS 调用 startActivity 方法 2. zygote socket 通信,通知 zygote 创建应用进程 1-1&#xff09; 去fork 一个子进程 Zygote.forkAndSpecialize 1-2&#xff09;执行子进程方法 handleChildProc 1-3&#xff09;执行父进程方法 ha…

用户管理 ---MySQL总结(七)

用户管理 对于MySQL的用户也是需要进行管理&#xff0c;这里的东西类似与Linux的多用户管理&#xff0c;基本相同 用户属性 MySQL的用户都是储存在数据库mysql的user之中。 这里使用desc table_name;查看user表的属性。 desc user;//下面的就是输出的结果host:登陆限制 user…

chatgpt赋能Python-python_ai_app

用Python编写AI应用程序 Python是目前最受欢迎的编程语言之一&#xff0c;被广泛用于各种应用程序的开发。其中&#xff0c;人工智能&#xff08;AI&#xff09;应用程序成为Python编程人员最感兴趣和热门的领域之一。这篇文章将重点介绍用Python编写AI应用程序的好处&#xf…

从零开始Vue3+Element Plus后台管理系统(16)——组合式函数hook二次封装el-table

终于写到组合式函数了&#xff0c;它类似vue2的mixin&#xff0c;但优于mixin&#xff0c;用好了可以事半功倍。 在 Vue 应用的概念中&#xff0c;“组合式函数”(Composables) 是一个利用 Vue 的组合式 API 来封装和复用有状态逻辑的函数。 官方文档&#xff1a;https://cn.vu…

chatgpt赋能Python-python_chan

Python的Channel模块&#xff1a;优化你的并发控制 Python是一门优秀的编程语言&#xff0c;在众多优秀的模块中&#xff0c;Channel模块是一个备受喜爱的模块。它是Python并发控制的建议之一&#xff0c;可以被用来在多个协程之间传递和传输消息。这个模块不仅仅是Python 3.5…

chatgpt赋能Python-python_cal

Python编程的神器——Cal 随着人工智能、机器学习等技术的发展&#xff0c;Python语言成为了最热门的编程语言之一。Python可以帮助程序员快速实现自己的想法&#xff0c;让程序的编写变得更加简单和容易。在Python中&#xff0c;有许多高效好用的工具和库&#xff0c;而其中最…

chatgpt赋能Python-python_chi2

Python中的Chi-Squared测试&#xff1a;一种用于统计分析的重要方法 数据分析是当今商业和科学中最重要的工具之一&#xff0c;它可以帮助人们了解他们的业务和科学领域。其中数据分析的技术以Python为代表的编程语言越来越受到欢迎&#xff0c;这些方法可以用于分类、回归、聚…

《数据可视化》课程期末项目_地理交通数据可视化

2022年上海疫情爆发期间交通数据可视化分析 《数据可视化》课程期末项目报告-选题&#xff1a;地理数据可视化 GitHub源码地址(如果有用点个 star 吧~谢谢&#xff01;) 文章目录 1.0 项目简介2.0 数据简介2.1 航线数据2.2 公交路线数据2.1 项目流程 3.0 数据处理3.1 航线数据…

【面试题】如何实现vue虚拟列表,纵享丝滑

大厂面试题分享 面试题库 前后端面试题库 &#xff08;面试必备&#xff09; 推荐&#xff1a;★★★★★ 地址&#xff1a;前端面试题库 web前端面试题库 VS java后端面试题库大全 前言 最近在工作中遇到了一个列表的需求&#xff0c;因为做的是C端&#xff0c;所以对性能…