Codeforces Round #839 (Div. 3)题解

news2024/11/25 1:04:53

A. A+B?

直接读入字符串然后把下标0和2的数字提取出来就行

// Problem: A. A+B?
// Contest: Codeforces - Codeforces Round #839 (Div. 3)
// URL: https://codeforces.com/contest/1772/problem/A
// Memory Limit: 512 MB
// Time Limit: 2000 ms
// 
// Powered by CP Editor (https://cpeditor.org)

// #pragma GCC optimize(2)
#include <bits/stdc++.h>
using namespace std;
// #define int long long
#define endl '\n'
#define all(a) a.begin(),a.end()
#define rall(a) a.rbegin(),a.rend()
#define C2(n) (n * (n - 1) >> 1)
#define ll long long
#define ull unsigned long long 
#define PII pair<int, int>
#define vint vector<int>
#define pb push_back
#define fi first
#define se second
#define inf 0x3f3f3f3f
#define eqs 1e-6
// const int mod = 
// const int N = 

void solve()
{
	string s;
	cin >> s;
	int a = s[0] - '0',b = s[2] - '0';
	cout << a + b<< endl;
}

signed main()
{
    ios::sync_with_stdio(false);
    cin.tie(0);

	int t = 1;
	cin >> t;
	while(t--)
		solve();
    
    return 0;
}

B. Matrix Rotation

最大值和最小值处在对角线上时即为YES,或者像我这样列举所有情况

// Problem: B. Matrix Rotation
// Contest: Codeforces - Codeforces Round #839 (Div. 3)
// URL: https://codeforces.com/contest/1772/problem/B
// Memory Limit: 512 MB
// Time Limit: 2000 ms
// 
// Powered by CP Editor (https://cpeditor.org)

// #pragma GCC optimize(2)
#include <bits/stdc++.h>
using namespace std;
// #define int long long
#define endl '\n'
#define all(a) a.begin(),a.end()
#define rall(a) a.rbegin(),a.rend()
#define C2(n) (n * (n - 1) >> 1)
#define ll long long
#define ull unsigned long long 
#define PII pair<int, int>
#define vint vector<int>
#define pb push_back
#define fi first
#define se second
#define inf 0x3f3f3f3f
#define eqs 1e-6
// const int mod = 
// const int N = 

vector<int> get(vector<int> a)
{
	int k = min({a[0],a[1],a[2],a[3]});
	vint b = a;
	if(a[1] == k)
		b[0] = a[1],b[1] = a[3],b[2] = a[0],b[3] = a[2];
	else if(a[2] == k)
		b[0] = a[2],b[1] = a[0],b[2] = a[3],b[3] = a[1];
	else if(a[3] == k)
		b[0] = a[3],b[1] = a[2],b[2] = a[1],b[3] = a[0];
	return b;
}

void solve()
{
	vint a(4);
	cin >> a[0] >> a[1] >> a[2] >> a[3];
	a = get(a);
	if(a[0] < a[1] && a[2] < a[3] && a[0] < a[2] && a[1] < a[3])
		puts("YES");
	else
		puts("NO");
}

signed main()
{
    ios::sync_with_stdio(false);
    cin.tie(0);

	int t = 1;
	cin >> t;
	while(t--)
		solve();
    
    return 0;
}

C. Different Differences

先从小到大标记:1、2、4、7……,不足的在从大到小标记

// Problem: C. Different Differences
// Contest: Codeforces - Codeforces Round #839 (Div. 3)
// URL: https://codeforces.com/contest/1772/problem/C
// Memory Limit: 512 MB
// Time Limit: 2000 ms
//
// Powered by CP Editor (https://cpeditor.org)

// #pragma GCC optimize(2)
#include <bits/stdc++.h>
using namespace std;
// #define int long long
#define endl '\n'
#define all(a) a.begin(), a.end()
#define rall(a) a.rbegin(), a.rend()
#define C2(n) (n * (n - 1) >> 1)
#define ll long long
#define ull unsigned long long
#define PII pair<int, int>
#define vint vector<int>
#define pb push_back
#define fi first
#define se second
#define inf 0x3f3f3f3f
#define eqs 1e-6
// const int mod =
// const int N =

void solve()
{
    int n, m;
    cin >> n >> m;
    int res = 0;
    vint a(m + 1, 0),ans;
    for (int i = 1; i <= m; res++)
    {
        if (res == n)
            break;
        a[i] = true;
        i += res + 1;
    }
    for (int i = m; i; --i)
    {
        if (res == n)
            break;
        if (!a[i])
        {
            a[i] = true;
            res++;
        }
    }
    for(int i = 1;i <= m;++i)
    {
    	if(a[i])
    		cout << i << ' ';
    }
    cout << endl;
}

signed main()
{
    ios::sync_with_stdio(false);
    cin.tie(0);

    int t = 1;
    cin >> t;
    while (t--)
        solve();

    return 0;
}

D. Absolute Sorting

我是撒比,这题开始用二分答案来写,卡了一个半小时。正确解法是枚举相邻两位的差来确定取值范围即可

// Problem: D. Absolute Sorting
// Contest: Codeforces - Codeforces Round #839 (Div. 3)
// URL: https://codeforces.com/contest/1772/problem/D
// Memory Limit: 512 MB
// Time Limit: 2000 ms
//
// Powered by CP Editor (https://cpeditor.org)

// #pragma GCC optimize(2)
#include <bits/stdc++.h>
using namespace std;
#define int long long
#define endl '\n'
#define all(a) a.begin(), a.end()
#define rall(a) a.rbegin(), a.rend()
#define C2(n) (n * (n - 1) >> 1)
#define ll long long
#define ull unsigned long long
#define PII pair<int, int>
#define vint vector<int>
#define pb push_back
#define fi first
#define se second
#define inf 0x3f3f3f3f
#define eqs 1e-6
// const int mod =
// const int N =

void solve()
{
    int n;
    cin >> n;
    vint a(n);
    for (int i = 0; i < n; ++i)
        cin >> a[i];

    int l = 0, r = inf;
    for (int i = 1, c; i < n; ++i)
    {
        if (a[i - 1] < a[i])
        {
            c = (a[i - 1] + a[i]) / 2;
            r = min(r, c);
        }
        else if (a[i - 1] > a[i])
        {
            c = (a[i - 1] + a[i] + 1) / 2;
            l = max(l, c);
        }
    }
    if (l <= r)
        cout << l << endl;
    else
        cout << -1 << endl;
}

signed main()
{
    ios::sync_with_stdio(false);
    cin.tie(0);

    int t = 1;
    cin >> t;
    while (t--)
        solve();

    return 0;
}	

E. Permutation Game

这题的题意有点含糊,其大意是,两个操作,将一个红色染成蓝色, 或者将蓝色的位置之间任意排序。如:

此时可以选择3或者5将其染成蓝色,这里不做演示。也能对已经染成蓝色的进行重新排布,如:

当然也可以选择不操作

上述例子中,后手想要赢的话,只要将3、4、5都染成蓝色, 那么他就可以将这三个数从新排布得到降序的数组;而先手想要赢的话,就要将所有的都染成蓝色, 所以后手赢。

所以这题的重点在于染色上而不是排序上。我们可以将数分为三类,一类是只有先手想要染的(数量为a),第二类是只有后手想要染的(数量为b),第三类是两者都要染的(数量为c)。

所以当

  1. a + c <= b时,先手胜(由于是先手,所以可以取等于)
  2. b + c < a时,后手胜
  3. 平局
// Problem: E. Permutation Game
// Contest: Codeforces - Codeforces Round #839 (Div. 3)
// URL: https://codeforces.com/contest/1772/problem/E
// Memory Limit: 256 MB
// Time Limit: 4000 ms
// 
// Powered by CP Editor (https://cpeditor.org)

// #pragma GCC optimize(2)
#include <bits/stdc++.h>
using namespace std;
// #define int long long
#define endl '\n'
#define all(a) a.begin(),a.end()
#define rall(a) a.rbegin(),a.rend()
#define C2(n) (n * (n - 1) >> 1)
#define ll long long
#define ull unsigned long long 
#define PII pair<int, int>
#define vint vector<int>
#define pb push_back
#define fi first
#define se second
#define inf 0x3f3f3f3f
#define eqs 1e-6
// const int mod = 
// const int N = 

void solve()
{
	int n;
	cin >> n;
	int num[3]{0,0,0};
	for(int i = 1,j = n,c;i <= n;++i,--j)
	{
		cin >> c;
		num[1] += (c != i);
		num[2] += (c != j);
		num[0] += (c != i && c != j);
	}
	if(num[1] <= num[2] - num[0])
		puts("First");
	else if(num[2] < num[1] - num[0])
		puts("Second");
	else
		puts("Tie");
}

signed main()
{
    ios::sync_with_stdio(false);
    cin.tie(0);

	int t = 1;
	cin >> t;
	while(t--)
		solve();
    
    return 0;
}

c;
num[1] += (c != i);
num[2] += (c != j);
num[0] += (c != i && c != j);
}
if(num[1] <= num[2] - num[0])
puts(“First”);
else if(num[2] < num[1] - num[0])
puts(“Second”);
else
puts(“Tie”);
}

signed main()
{
ios::sync_with_stdio(false);
cin.tie(0);

int t = 1;
cin >> t;
while(t--)
	solve();

return 0;

}


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

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

相关文章

还在堆人力处理工单?找准耗时源头才是关键!

对于提供企业级服务的公司来说&#xff0c;服务质量与效率日益受到关注。服务质量的本质是整体团队的效能&#xff0c;重中之重则是站在客户视角的工单解决效率。 当下很多这个领域的企业都会设立客户成功中心&#xff0c;其中就有专门对接客户工单处理的职责&#xff1b;而随…

Lifelong Embedding Learning and Transfer for Growing Knowledge Graphs

摘要 现有的知识图谱(KG)嵌入模型主要关注静态KG,但真实世界的KG并不是静态的,而是随着KG应用程序的发展而发展和增长。因此,新的事实和以前看不到的实体和关系不断出现,需要一个嵌入模型,可以通过增长快速学习和转移新知识。基于此,本文研究了KG嵌入的一个扩展领域,即…

96.第十九章 MySQL数据库 -- 多表查询(六)

3.7.2 多表查询 多表查询,即查询结果来自于多张表 子查询:在SQL语句嵌套着查询语句,性能较差,基于某语句的查询结果再次进行的查询 联合查询:UNION,表和表的纵向合并 交叉连接:笛卡尔乘积 内连接: 等值连接:让表之间的字段以“等值”建立连接关系 不等值连接 自然连接…

python数据清洗的三个常用的处理方式!

关于python数据处理过程中三个主要的数据清洗说明&#xff0c;分别是缺失值/空格/重复值的数据清洗。 这里还是使用pandas来获取excel或者csv的数据源来进行数据处理。若是没有pandas的非标准库需要使用pip的方式安装一下。 pip install pandas准备一下需要处理的脏数据&…

【愚公系列】2022年12月 .NET CORE工具案例-PLG轻量级日志可视化服务

文章目录前言1.Serilog简介2.Grafana简介3.Loki是什么一、Serilog对接Grafana轻量级日志可视化服务1.Grafana部署2.Loki部署3.promtail部署4.测试.NET Core写入日志效果5.测试查询日志总结前言 日志功能是几乎所有程序或系统都必备的一个功能。该文章通过使用LokiGrafana来实现…

算法题:N个元素之和

做题思路&#xff1a; 1&#xff09;首先对数组进行排序 2&#xff09;创建一个for循环&#xff1a; 第一个元素指向for循环 3&#xff09;然后创建一个while循环&#xff1b;第二个元素指向for循环的下一个元素&#xff0c;第三个元素指向最后一个元素 4&#xff09;如果三个元…

Java基础之《netty(15)—HTTP服务》

一、使用netty开发一个简单的http服务 1、netty服务器在6668端口监听&#xff0c;浏览器发出请求http://localhost:6668/ 在写netty的http server的例子过程中&#xff0c;发现浏览器使用端口号6668一直无法连接&#xff0c;报错ERR_UNSAFE_PORT。改成7000就可以了。 2、服务器…

2018年高职组——信息评估与管理赛题(解析)

这篇文章为2018年赛题第一阶段DCRS解析 都是自己的想法(仅供参考)不对请指正评论 先来张拓扑养养眼: 2018年拓扑 接下来是IP地址规划表: IP地址的配置就不用我再多赘述了吧,接下来是DCRS的题目 23、DCRS 为接入交换机,为终端产生防止 MAC 地址防洪攻击,请配置端口安全,…

【嵌入式Linux】开发环境搭建

一、概述 在进行某一个芯片平台开发前&#xff0c;一般都需要在电脑上安装一系列软件&#xff0c;然后在这些软件上阅读、编写、编译和调试在该平台上运行的代码&#xff0c;最后将编写好的代码通过某种方式烧录到该芯片的对应地址运行。在电脑上安装的这一系列软件的过程&…

知行之桥2022版本升级之页面变化以及监控邮件答疑

近期有些客户将知行EDI系统升级到了我们最新知行之桥2022版本&#xff0c;升级过程或者升级后对于新版本的使用会有些疑问&#xff0c;根据近期协助大家进行知行EDI系统升级遇到的问题&#xff0c;我们的运维团队整理了一些Q&A&#xff0c;将分为上下两篇分享给大家&#x…

深度学习入门(六十二)循环神经网络——双向循环神经网络

深度学习入门&#xff08;六十二&#xff09;循环神经网络——双向循环神经网络前言循环神经网络——双向循环神经网络课件未来很重要双向RNN推理总结教材1 隐马尔可夫模型中的动态规划2 双向模型2.1 定义2.2 模型的计算代价及其应用3 双向循环神经网络的错误应用4 小结前言 核…

排序算法之直接选择排序(图文详解)

文章目录一、选择排序思想二、排序过程详解2.1 排序的次数2.2 排序演示三、代码范例3.1 SelectSort函数3.2 整体代码实现3.3 结果展示四、选择排序分析4.1 稳定性4.2 复杂度4.3适用场景五、选泽排序优化总结一、选择排序思想 选择排序&#xff08;Selection sort&#xff09;是…

ABBYY15免费版直接编辑PDF格式文件

日常生活中&#xff0c;我们常常使用PDF格式的文件。其优点就是PDF的文本内容不会随着软件版本、电脑字体的变化而变化&#xff0c;保证了其完整性。但也正因为这一点&#xff0c;如果没有源文件&#xff0c;我们就很难对PDF文档的内容进行编辑了。今天&#xff0c;我就向大家展…

前端一面必会vue面试题(边面边更)

为什么要使用异步组件 节省打包出的结果&#xff0c;异步组件分开打包&#xff0c;采用jsonp的方式进行加载&#xff0c;有效解决文件过大的问题。核心就是包组件定义变成一个函数&#xff0c;依赖import() 语法&#xff0c;可以实现文件的分割加载。 components:{ AddCustom…

关于GitHub的.gitignore无法忽略 “default-2021.dwlt“ 文件的问题

问题描述 我在使用sourcetree往github提交工程时&#xff0c;UserSettings/Layouts/default-2021.dwlt文件无缘无故每次都被暂存。 尽管我在.gitignore文件中反复修改忽略路径&#xff0c;该文件始终无法被屏蔽。如下图 解决办法 在网上找了很多资料&#xff0c;最终找到了…

Qt扫盲-QListWidget理论总结

QListWidget理论总结1. 概念2. 添加列表项3. 列表其他属性4. 常用信号5. 槽函数6. QListWidgetItem 简述1. 概念 QListWidget 是一个继承自 QListView 的类&#xff0c;其实就是 QListView 的一个很经典的 列表 交互控件&#xff0c;在QListWidget 里面提供了非常方便的基于 每…

银树开花精美甘特图:VARCHART_XGantt_5.2_167_ActiveX

增强您的计划用户体验 使用交互式甘特图提供惊人的视觉调度体验 与时间和资源相关的计划数据&#xff08;例如工作、任务、订单、活动和能力&#xff09;最好显示在甘特图中。 在智能甘特图中&#xff0c;计划人员可以随手采取纠正措施。 加快您的开发并 创建引人入胜、易于使用…

爬虫学习-深入了解爬虫

爬虫深入 使用场景分类 通用爬虫&#xff1a;抓取系统的重要组成部分&#xff0c;抓取的是一整张页面数据聚焦爬虫&#xff1a;建立在通用爬虫的基础之上&#xff0c;抓取的是页面中特定的局部内容增量式爬虫&#xff1a;检测网站中数据更新的情况&#xff0c;只会抓取网站中最…

一起学习用Verilog在FPGA上实现CNN----(三)激活层设计

1 激活层设计 LeNet-5网络的激活函数是双曲正切函数(TanH)&#xff0c;项目中tanh函数模块由完整的层UsingTheTanh构成&#xff0c;该层由较小的处理单元HyperBolicTangent组成 1.1 HyperBolicTangent 处理单元HyperBolicTangent&#xff0c;对每个输入执行Tanh操作&#xf…

jsp+ssm计算机毕业设计动物救助平台【附源码】

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; JSPSSM mybatis Maven等等组成&#xff0c;B/S模式 Mave…