AtCoder Beginner Contest 337 A - E

A - Scoreboard

大意

高桥队和青木队进行了n场比赛,给出每场比赛中高桥队和青木队的积分,问最后谁总分更高或平局。

思路

统计总分比较即可。

代码

#include<iostream>
using namespace std;
int main(){int n, a=0, b=0;cin >> n;while(n--){int x, y;cin >> x > >y;a += x, b += y;}if(a < b) cout << "Aoki" << endl;else if(a == b) cout << "Draw" << endl;else cout << "Takahashi" << endl;return 0;
}

B - Extended ABC

大意

给定一个字符串,问是否形如AA\cdots BB\cdots CC \cdotsA、B和C的数量可以为零。

思路

遍历字符串判断是否有序即可。

代码

#include<iostream>
using namespace std;
int main(){string s;cin >> s;char cur = s[0];for(auto i: s){if(cur == i) continue;if(i < cur){cout << "No" << endl;return 0;}if(i > cur) cur = i;}cout << "Yes" << endl;return 0;
}

C - Lining Up 2

大意

有 n人在排队。

给你一个长度为n的序列A来排列这些人。

A_i(1 \le i \le n) 表示以下信息:

  • 如果A_i = -1 ,则i排在队伍的最前面;
  • 如果A_i \ne 1,则 i紧跟在A_i 后面。

从前面到后面打印一行人的编号。

思路

设置数组X_i表示第i个人的后面是X_i,读入A_i时,如果不为-1,则令X_{A_i}=i

否则,确定第一个人。

确定队首后,根据X数组推出队伍。

代码

#include <iostream>
using namespace std;
const int N = 3e5 + 9;
int a[N], b[N];
int main() {int n;cin >> n;for (int i = 1; i <= n; i++) {int x; cin >> x;if (x == -1) b[1] = i;else a[x] = i;}int cur = b[1];for (int i = 2; i <= n; i++) {b[i] = a[cur];cur = b[i];}for (int i = 1; i <= n; i++) cout << b[i] << " ";return 0;
}

D - Cheating Gomoku Narabe

大意

给定h\times w的二维网格,格子上有 xo.三种之一。

问最少进行的操作数,使得网格有连续k(水平或垂直)个格子都是 o

操作为:将一个为.的格子改为o

思路

因此可以枚举这连续k个格子的左端点 ,然后往右的k个格子里,不能有x,然后对.的数量取个最小值。事先预处理一下关于x和.数量的前缀和。(为了方便,可以将x设为极大值)

水平计算一次后,旋转九十度再计算一次即可。

代码

#include <iostream>
#include <vector>
#include <climits>
#include <unordered_map>
using namespace std;
vector<string> grid, T;
#define int long longint solve(const vector<string>& grid, int k) {int h = grid.size();int w = grid[0].size();unordered_map<char, int> mp;mp['.'] = 1;mp['x'] = INT_MAX;mp['o'] = 0;vector<vector<int>> pref(h, vector<int>(w));int ans = INT_MAX;for (int i = 0; i < h; i++) {for (int j = 0; j < w; j++) {if (j == 0) pref[i][j] = mp[grid[i][j]];else pref[i][j] = pref[i][j - 1] + mp[grid[i][j]];if (j >= k - 1) {ans = min(ans, pref[i][j] - (j == k - 1 ? 0 : pref[i][j - k]));}}}return ans;
}signed main() {int h, w, k;ios::sync_with_stdio(0);cin.tie(0), cout.tie(0);cin >> h >> w >> k;for (int i = 0; i < h; i++) {string s;cin >> s;grid.push_back(s);}int ans = solve(grid, k);T.assign(w, string(h, 'w'));for (int i = 0; i < h; i++)for (int j = 0; j < w; j++) T[j][i] = grid[i][j];ans = min(ans, solve(T, k));cout << (ans < INT_MAX ? ans : -1) << endl;return 0;
}

E - Bad Juice

大意

n瓶果汁,其中有一瓶变质了,喝了变质的果汁会拉肚子,但你不知道哪瓶变质了。

你需要找最少的朋友,然后给他们一些果汁喝。一瓶果汁可以给多个朋友喝,一个朋友也可以喝多瓶果汁。

第二天,朋友们会告诉你他们是否不舒服,你需要据此找到变质的果汁。

思路

考虑对果汁编号0n-1,考虑其二进制。对于坏的果汁x,我们需要确定x的二进制下,哪些数位是1。

把 0n-1中,所有二进制下第 i位为1的都给第i个朋友喝,如果它第二天肚子疼了,说明 x的第 i位为1。

需要\lceil \log_2 n\rceil个朋友来试毒。

代码

#include<iostream>
#include<vector>
using namespace std;
int main(){ios::sync_with_stdio(0);cin.tie(0), cout.tie(0);int n;cin >> n;int m = 0;while((1 << m) < n) m++;cout << m << endl;for(int i = 0; i < m; i++){vector<int> c;for(int j = 0; j < n; j++)if((j >> i) & 1) c.push_back(j);cout << c.size() << " ";for(auto x: c) cout << x + 1 << " ";cout << endl;}string s;cin >> s;int ans = 0;for(int i = 0; i < s.size(); i++)if(s[i] == '1') ans += (1 << i);cout << ans + 1 << endl;return 0;
}

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

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

相关文章

介绍部署esxi8.0产品的方式

什么是esxi esxi的中文叫裸机虚拟机管理器 ESXi是由VMware公司开发的一种裸机虚拟机管理器&#xff0c;全称为VMware ESXi。 ESXi是一种虚拟化技术&#xff0c;专门设计用于在物理服务器上运行虚拟机&#xff0c;它的主要特点是能够最大限度地降低硬件配置要求并简化部署过程…

184. 部门工资最高的员工

文章目录 题意思路代码 题意 题目链接 查出每个部门最高工资 思路 子查询group by 代码 select b.name as Department,a.name as Employee,salary from Employee as a left joinDepartment as b ona.departmentId b.id where(a.departmentId, salary) in(select departme…

C++迈向精通:学习笔记:类属性与类方法

类属性与类方法 注意&#xff1a;这不是教程&#xff0c;是学习笔记&#xff0c;不适合初学者阅读&#xff01;&#xff01; 类属性与方法 成员属性与成员方法 在类中定义的方法与属性&#xff0c;就叫做成员属性与方法。 类属性与类方法 依然在类里面&#xff0c;但区别…

vcf文件可以用excel打开吗?四种解决方案

vcf文件可以用excel打开吗&#xff1f; 当然可以。 一、VCF文件简介 VCF&#xff08;vCard&#xff09;文件是一种用于存储联系人信息的文件格式。它通常包含姓名、电话号码、电子邮件地址、地址等详细信息。VCF文件在多种设备和操作系统中广泛使用&#xff0c;特别是在电子邮…

字节流 字符流回顾

字节流&#xff1a;字节流以字节为单位进行数据传输。这种流适用于处理二进制数据&#xff0c;例如图片、音频、视频等文件。在Java中&#xff0c;字节流由InputStream和OutputStream类及其子类实现。常见的字节流类包括FileInputStream、FileOutputStream、等。 字符流&#…

2024全国水科技大会【高峰对话】北京排水集团(附部分报告题目)

北京排水集团坚持“服务社会、造福百姓、企业利益与公众利益高度一致”的宗旨&#xff0c;充分认知自身在地区经济发展中的社会责任&#xff0c;以满足政府与公众对公用事业企业服务的需求为首要任务&#xff0c;通过“现代化的队伍、现代化的手段、现代化的设备和现代化的管理…

springBoot+ureport报表引擎

UReport是一款基于单元格迭代模型的纯Java中式报表引擎。它架构于Spring之上&#xff0c;因此与企业应用具有良好的集成能力。UReport提供了基于Eclipse插件与基于网页的两种报表模版设计方式&#xff0c;采用类Excel报表模版设计风格&#xff0c;简单、易上手&#xff0c;可在…

数据结构和算法:搜索

二分查找 二分查找&#xff08;binary search&#xff09; 是一种基于分治策略的高效搜索算法。它利用数据的有序性&#xff0c;每轮缩小一半搜索范围&#xff0c;直至找到目标元素或搜索区间为空为止。 给定一个长度为 &#x1d45b; 的数组 nums &#xff0c;元素按从小到大…

django orm DateTimeField 6位小数精度问题

from django.db.backends.mysql.base import DatabaseWrapperDatabaseWrapper.data_types[DateTimeField] "datetime"意思就是重写源码里面的DateTimeField字段

如何在家中使用手机平板电脑 公司iStoreOS软路由实现远程桌面

文章目录 简介一、配置远程桌面公网地址二、家中使用永久固定地址 访问公司电脑**具体操作方法是&#xff1a;** 简介 软路由是PC的硬件加上路由系统来实现路由器的功能&#xff0c;也可以说是使用软件达成路由功能的路由器。 使用软路由控制局域网内计算机的好处&#xff1a…

《1w实盘and大盘基金预测 day12》

昨天预测大错特错&#xff0c;大盘也破位了。 昨天预测&#xff1a; 3006-3043-3053 震荡反弹&#xff0c;冲高回落 主要关注证券、保险等金融板块&#xff0c;是否能带大盘到新高&#xff1f; 吐槽一下医疗&#xff0c;真lj。吐了 科技可能还要调整&#xff0c;明显感觉资金…

CloudCompare 二次开发(29)——最小二乘拟合平面

目录 一、概述二、代码集成三、结果展示一、概述 使用CloudCompare实现的最小二乘拟合平面。具体计算原理见:PCL 最小二乘拟合平面。 二、代码集成 1、mainwindow.h文件public中添加: void doActionPCLLeastSquareFitPlane(); // 最小二乘拟合平面2、mainwindow.cpp文件…

keyStore类处理

加载公钥证书, 成为keyStore public static void main(String[] args) {Security.addProvider(new BouncyCastleProvider());String certFilePath "C:\\alipayRootCert.crt";String certType "X.509";String provider "BC";try (FileInputSt…

mybatis一键配置

mybaits起步依赖<!-- mybatis的起步依赖 --><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId></dependency><!-- mysql驱动 --><dependency><groupId&…

2024年【起重机械指挥】考试报名及起重机械指挥免费试题

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 起重机械指挥考试报名考前必练&#xff01;安全生产模拟考试一点通每个月更新起重机械指挥免费试题题目及答案&#xff01;多做几遍&#xff0c;其实通过起重机械指挥模拟考试题库很简单。 1、【多选题】严禁吊车超负…

凯撒加密.

题目描述 给定一个单词&#xff0c;请使用凯撒密码将这个单词加密 凯撒密码是一种替换加密的技术&#xff0c;单词中的所有字母都在字母表上向后偏移3位后被替换成密文。即a变为 d&#xff0c;变为e.&#xff0c;w 变为z&#xff0c;2 变为a&#xff0c;y变为 6&#xff0c;z变…

Java——注解和注释

0 注解和注释的区别 在博主刚开始学习java语言的时候&#xff0c;经常把注释和注解搞混淆&#xff0c;误认为这两个是类似的东西&#xff0c;其实它们完全不是一个东西。 注释&#xff1a; 注释是程序员在代码中添加的说明性文字&#xff0c;用于解释代码的功能、目的或实现…

每日五道java面试题之springboot篇(二)

目录&#xff1a; 第一题. 你如何理解 Spring Boot 配置加载顺序&#xff1f;第二题. Spring Boot 中如何解决跨域问题 ?第三题. 什么是 CSRF 攻击&#xff1f;第四题. 比较一下 Spring Security 和 Shiro 各自的优缺点 ?第五题. bootstrap.properties 和 application.proper…

在python中记录log

只记录log&#xff0c;不同步打印到控制台 import logging import os from datetime import datetime# 获取当前日期 date datetime.now().strftime(%Y-%m-%d)# 获取当前文件的目录 current_path os.path.dirname(os.path.abspath(__file__)) log_path os.path.join(curren…

[AIGC] 对比MySQL全文索引,RedisSearch,和Elasticsearch的详细区别

全文搜索是数据库和搜索引擎的重要功能。这个功能能在一个或多个列中查找用户查询的文本&#xff0c;这对诸如电子商务网站和检索大量文本数据的应用是必需的。在这篇文章中&#xff0c;我们将详细对比三种主流全文搜索技术&#xff1a; MySQL全文索引&#xff0c;Redis的Redis…