Hitachi Vantara Programming Contest 2024(AtCoder Beginner Contest 368)题解A~D
A - Cut
- 题意:
将数组的后k个字符移到前面 - 思路:
- 可以用rotate()函数让数组中的元素滚动旋转
rotate(v.begin(), v.begin() + n - k, v.end());
- 直接输出后k个元素,再输出前n-k个元素
for(int i=n-k;i<n;i++) write(v[i]);
for(int i=0;i<n-k;i++) write(v[i]);
- 可以用rotate()函数让数组中的元素滚动旋转
B - Decrease 2 max elements
- 题意:
每次令数组中最大的两个数-1,求多少次操作后只剩下一个数 - 思路:
注意到 2≤N≤100 , 1<=A[i]<=100
两眼一闭就是写,直接就上priority_queue,不带半点智慧和思考,题干怎么说就怎么写,怎么简单怎么来void solve()
{
priority_queue<int> q;
int n = read();
for(int i=0;i<n;i++) q.push(read()); int cnt = 0;
while(q.size()>1){
int t1 = q.top();
q.pop();
int t2 = 1;
if(q.size()) t2 = q.top();
q.pop();
if(t1 - 1) q.push(t1-1);
if(t2 - 1) q.push(t2-1);
cnt++;
}
cout<<cnt<<endl;
}
C - Triple Attack
- 题意:
从前往后遍历数组A, 每次操作 T+=1, T%3!=0 的时候 A[i]-=1, T%3==0 的时候 A[i]-=3; - 思路:
每轮 T += 3, A[i] -= 5 , 所以当 T%3==0 的时候直接将 A[i] 减到5以下,再逐次操作
code:int n = read();
vector<int> v;
for(int i = 0; i < n; i++) v.push_back(read()); int t = 1;
for(int i=0; i < n; i++){
while(v[i]>0){
if(t%3==0 && v[i]>0) v[i]-=3,t++;
else if(t%3!=0 && v[i]>0) v[i]-=1,t++;
if(t%3==0 && t>=3 && v[i]>=5) t+=v[i]/5*3,v[i]%=5;
}
} cout<<t-1<<endl;
D - Minimum Steiner Tree
- 题意:
给一个树,再给一些关键节点,求如果要保留这些关键节点则至少应该保留哪些节点 - 思路:
显然给出的关键节点必须保留,考虑到是树可以用dfs,而因为关键节点必须保留所以可以任意选一个关键节点当作根
从根往深处搜索,如果该节点为关键节点则该节点必然需要保留,标记此节点;
如果该节点往下的任一 一节点为关键节点,该节点同样不可或缺,标记节点;
可以根据dfs的返回值知道该节点往下的分支是否包含关键节点。int n, k;
vector<vector<int>> e;
unordered_map<int,int> mp,st,vis;
int dfs(int x){
int ret = 0;
vis[x] = 1; //记忆化搜索,搜过的就不再搜了
for(auto it:e[x]){
if(!vis[it]){
ret |= dfs(it); //按位或,如果返回值有1则ret为1
}
}
if(mp[x]) ret = 1;
if(ret) st[x] = 1;
return ret;
}
void solve()
{
n = read(), k = read();
e.resize(n+1);
for(int i=1;i<n;i++){
int u = read(), v = read();
e[u].push_back(v);
e[v].push_back(u);
}
int ed = 0;
for(int i=0;i<k;i++){
ed = read();
mp[ed] = 1; //记录该节点为关键节点
} dfs(ed);
int ans = 0;
for(auto it:st){
if(it.se) ans++;
}
cout<<ans<<endl;
}
Hitachi Vantara Programming Contest 2024(AtCoder Beginner Contest 368)题解A~D的更多相关文章
- M-SOLUTIONS Programming Contest 2021(AtCoder Beginner Contest 232) 题解
目录 G - Modulo Shortest Path H - King's Tour 因为偷懒就只写G和H的题解了. G - Modulo Shortest Path 首先可以观察到对于一条从点\( ...
- AtCoder Beginner Contest 076
A - Rating Goal Time limit : 2sec / Memory limit : 256MB Score : 100 points Problem Statement Takaha ...
- atcoder beginner contest 251(D-E)
Tasks - Panasonic Programming Contest 2022(AtCoder Beginner Contest 251)\ D - At Most 3 (Contestant ...
- AtCoder Beginner Contest 100 2018/06/16
A - Happy Birthday! Time limit : 2sec / Memory limit : 1000MB Score: 100 points Problem Statement E8 ...
- KYOCERA Programming Contest 2021(AtCoder Beginner Contest 200) 题解
KYOCERA Programming Contest 2021(AtCoder Beginner Contest 200) 题解 哦淦我已经菜到被ABC吊打了. A - Century 首先把当前年 ...
- AtCoder Beginner Contest 184 题解
AtCoder Beginner Contest 184 题解 目录 AtCoder Beginner Contest 184 题解 A - Determinant B - Quizzes C - S ...
- AtCoder Beginner Contest 255(E-F)
Aising Programming Contest 2022(AtCoder Beginner Contest 255) - AtCoder E - Lucky Numbers 题意: 给两个数组a ...
- AtCoder Beginner Contest 052
没看到Beginner,然后就做啊做,发现A,B太简单了...然后想想做完算了..没想到C卡了一下,然后还是做出来了.D的话瞎想了一下,然后感觉也没问题.假装all kill.2333 AtCoder ...
- AtCoder Beginner Contest 053 ABCD题
A - ABC/ARC Time limit : 2sec / Memory limit : 256MB Score : 100 points Problem Statement Smeke has ...
- AtCoder Beginner Contest 136
AtCoder Beginner Contest 136 题目链接 A - +-x 直接取\(max\)即可. Code #include <bits/stdc++.h> using na ...
随机推荐
- springboot 2.1.6.RELEASE整合Swagger2
一.引入依赖 1 <modelVersion>4.0.0</modelVersion> 2 <groupId>com.badcat</groupId> ...
- FastAPI 查询参数完全指南:从基础到高级用法 🚀
title: FastAPI 查询参数完全指南:从基础到高级用法 date: 2025/3/6 updated: 2025/3/6 author: cmdragon excerpt: 探讨 FastA ...
- django4.2 与python 最新对应关系表
- xpath 定位表格里面内容
向上找页面唯一元素,依次为: 表格体/第一行/第14列 实现代码 Xpath==//tbody/tr[1]/td[11]
- pandas 删除指定条件的行
inplace=True:不创建新的对象,直接对原始对象进行修改: inplace=False:对数据进行修改,创建并返回新的对象承载其修改结果. 删除工作日餐补为0的记录 row_index=df[ ...
- Swagger-交互式API文档
1. Swagger简介 前后端分离 前端 -> 前端控制层.视图层 后端 -> 后端控制层.服务层.数据访问层 前后端通过API进行交互 前后端相对独立且松耦合 产生的问题 前后端集成, ...
- H3C S520 V3 端口流量镜像
背景: 最近公司需要采集某工业PLC设备报文,临时查询了一下如何使用H3C交换机配置流量镜像. PLC地址: 192.168.3.213 MAC: e0:dc:a0:5c:47:2f (可通过ARP ...
- Laravel MongoDB
Laravel MongoDB This package adds functionalities to the Eloquent model and Query builder for MongoD ...
- 面试官:工作中优化MySQL的手段有哪些?
MySQL 是面试中必问的模块,而 MySQL 中的优化内容又是常见的面试题,所以本文来看"工作中优化MySQL的手段有哪些?". 工作中常见的 MySQL 优化手段分为以下五大类 ...
- 【Linux】5.2 Shell变量
Shell变量 1. shell变量简介 Linux Shell的变量分为,系统变量和用户自定义变量 系统变量: $HOME. $PWD. $SHELL. $USER等等 显示当前shell中所有变量 ...