【AcWing】第 62 场周赛 【2022.07.30】
AcWing 4500. 三个元素
题目描述
给定一个长度为 \(n\) 的数组 \(r\_1,r\_2,…,r\_n\)。
请你找到其中的三个元素 \(r\_a,r\_b,r\_c\),使得 \(r\_a < r\_b < r\_c\) 成立。
输入格式
第一行包含整数 \(n\)。
第二行包含 \(n\) 个整数 \(r\_1,r\_2,…,r\_n\)。
输出格式
共一行,输出 \(a,b,c\)。
注意,题目要求输出的是元素的下标。
如果方案不唯一,输出任意合理方案均可。
如果无解,则输出 -1 -1 -1。
数据范围
前三个测试点满足 $ 3≤n≤10 $。
所有测试点满足 $3≤n≤3000 $ ,$1≤ri≤109 $。
输入样例1:
6
3 1 4 1 5 9
输出样例1:
4 1 3
输入样例2:
5
1 1000000000 1 1000000000 1
输出样例2:
-1 -1 -1
输入样例3:
9
10 10 11 10 10 10 10 10 1
输出样例3:
9 8 3
算法
找出最大值和最小值,然后for循环找出比最大值小的,比最小值大的值,
C++ 代码
#include <iostream>
#include <cstring>
#include <cstdio>
#include <cmath>
#include <algorithm>
using namespace std;
const int N = 3010;
int a[N];
int main()
{
int n;
cin >> n;
int maxval = -2e9 , maxadd;
int minval = 0x3f3f3f3f , minadd;
for(int i = 1;i <= n;i ++)
{
cin >> a[i];
if(a[i] > maxval)
{
maxval = a[i];
maxadd = i;
}
if(a[i] < minval)
{
minval = a[i];
minadd = i;
}
}
bool flag = false;
int ans;
for(int i = 1;i <= n;i ++)
{
if(i == maxadd || i == minadd)
continue;
if(a[i] > minval && a[i] < maxval)
{
ans = i;
flag = true;
break;
}
}
if(!flag || ans == 0)
cout << "-1 -1 -1" << endl;
else
cout << minadd << " " << ans << " " << maxadd << endl;
return 0;
}
4501. 收集卡牌【补】
题目描述
某干脆面厂商在每包面中都放置有一张武将卡。
武将卡共分为 \(n\) 种,编号 \(1 - n\)。
当集齐 \(1 - n\) 号武将卡各一张时,就可以拿它们去换大奖。
为了换大奖,李华先后购买了 \(m\) 包该品牌的干脆面。
其中第 \(i\) 包面中包含的武将卡的编号为 \(a\_i\)。
每当买完一包面,得到该面赠送的武将卡后,李华都会审视一遍自己手中的全部卡牌。
如果此时自己现有的卡牌能够凑齐全部武将卡,那么他就会立即将每种武将卡都拿出一张,并将拿出的卡牌寄给厂商,用来换奖。
请你分析李华购买干脆面的整个过程并计算购买完每一包面后,李华能否凑齐全部武将卡用来换奖。
注意,每次换奖都需要消耗卡牌,消耗掉的卡牌就不属于他了。
输入格式
第一行包含两个整数 \(n,m\)。
第二行包含 \(m\) 个整数 \(a\_1,a\_2,…,a\_m\)。
输出格式
输出一个长度为 \(m\) 的 \(01\) 字符串,如果买完第 \(i\) 包面后,李华能够凑齐全部武将卡用来换奖,则第 \(i\) 位字符为 \(1\),否则为 \(0\)。
数据范围
前 \(5\) 个测试点满足 $ 1≤n,m≤20 $。
所有测试点满足 $ 1≤n,m≤105 \(,\) 1≤ai≤n $。
输入样例1:
3 11
2 3 1 2 2 2 3 2 2 3 1
输出样例1:
00100000001
输入样例2:
4 8
4 1 3 3 2 3 3 3
输出样例2:
00001000
算法
模拟解决,但需要使用tot记录总数,如果tot达到n时,可以兑换,否则不可以兑换,需要注意兑换后需要判断哪些数--后会变成0,tot--
C++ 代码
#include <iostream>
#include <cstring>
#include <cstdio>
#include <cmath>
#include <algorithm>
using namespace std;
const int N = 1e5+10;
int cnt[N];
int main()
{
int n , m;
scanf("%d%d",&n,&m);
int tot = 0;
string s;
while(m --)
{
int x;
scanf("%d",&x);
if(cnt[x] == 0)
tot ++;
cnt[x] ++;
if(tot == n)
{
s += '1';
for(int i = 1;i <= n;i ++)
if(-- cnt[i] == 0)
tot --;
}
else
s += '0' ;
}
cout << s << endl;
return 0;
}
【AcWing】第 62 场周赛 【2022.07.30】的更多相关文章
- AcWing 第11场周赛题解
计算abc 首先 \(0<=a<=b<=c\) 会随机给出 \(a+b,a+c,b+c,a+b+c\)的值 因为\(a,b,c\)都为正整数,所以\(a+b+c\)一定为最大值 然后 ...
- LeetCode-第 166 场周赛
LeetCode-第 166 场周赛 1281.subtract-the-product-and-sum-of-digits-of-an-integer 1282.group-the-people-g ...
- LeetCode 第 165 场周赛
LeetCode 第 165 场周赛 5275. 找出井字棋的获胜者 5276. 不浪费原料的汉堡制作方案 5277. 统计全为 1 的正方形子矩阵 5278. 分割回文串 III C 暴力做的,只能 ...
- LeetCode--第180场周赛
LeetCode--第180场周赛 1380. 矩阵中的幸运数 class Solution { public: vector<int> luckyNumbers (vector<v ...
- Leetcode第 217 场周赛(思维量比较大)
Leetcode第 217 场周赛 比赛链接:点这里 做完前两题我就知道今天的竞赛我已经结束了 这场比赛思维量还是比较大的. 1673. 找出最具竞争力的子序列 题目 给你一个整数数组 nums 和一 ...
- 第二场周赛(递归递推个人Rank赛)——题解
很高兴给大家出题,本次难度低于上一场,新生的六个题都可以直接裸递归式或者裸递推式解决,对于老生的汉诺塔3,需要找出一般式,后两题分别为裸ST算法(或线段树)/线性DP. 正确的难度顺序为 种花 角谷定 ...
- LeetCode第151场周赛(Java)
这是我第一次写周赛的题目,而且还是虚拟的.从这次起,以后就将所有错过的题目都写到博客来.当然既然是我错的,那代码肯定不是我自己的.我会注明来源.并且我会自己敲一遍.多总结总是没坏处的. 另外比较糟糕的 ...
- Leetcode 第133场周赛解题报告
今天参加了leetcode的周赛,算法比赛,要求速度比较快.有思路就立马启动,不会纠结是否有更好的方法或代码可读性.只要在算法复杂度数量级内,基本上是怎么实现快速就怎么来了. 比赛时先看的第二题,一看 ...
- LeetCode第152场周赛(Java)
这算是我第一次正式参加 LeetCode 的周赛吧.通过两道题.意料之中(通过上次模拟可以看出来).总的来说,脑袋还是不太灵光.想的有点慢.全球第一名 0:10:19 就全部通过...感觉我的智商被狠 ...
随机推荐
- 陈胡:Apache SeaTunnel实现 非CDC数据抽取实践
导读: 随着全球数据量的不断增长,越来越多的业务需要支撑高并发.高可用.可扩展.以及海量的数据存储,在这种情况下,适应各种场景的数据存储技术也不断的产生和发展.与此同时,各种数据库之间的同步与转化的需 ...
- 分布式下Session一致性问题
一.Session一致性问题 1.1 什么是Session 用户使用网站的服务,基本上需要浏览器和web服务器进行多次交互,web服务器如何知道哪些请求是来自哪个会话的? 具体方式为:在会话开始时,分 ...
- linux篇-linux iptables配置
1 iptables默认系统自带 setup 2重启防火墙 /etc/init.d/iptables restart 3接受端口 Vi /etc/sysconfig/iptables -A INPUT ...
- webpack基础知识介绍
1.开发模式 开发模式顾名思义就是我们开发代码时使用的模式 webpack默认只处理js文件,对样式是没办法处理的.因此要处理css资源需要引入CSS-loader 处理CSS资源 如果要使用 css ...
- Fast-Rcnn学习笔记
Fast-Rcnn学习笔记 paper code Fast-RCNN总览 step1:图片先放进卷积层 step2:再卷积层的特征图谱上回映射出对应的感兴趣区域 step3:集过一层ROI Pooli ...
- 面试突击54:MySQL 常用引擎有哪些?
MySQL 有很多存储引擎(也叫数据引擎),所谓的存储引擎是指用于存储.处理和保护数据的核心服务.也就是存储引擎是数据库的底层软件组织.在 MySQL 中可以使用"show engines& ...
- React简单教程-1-组件
前言 React,Facebook开发的前端框架.当时Facebook对市面上的前端框架都不满意,于是自己捣鼓出了React,使用后觉得特别好用,于是就在2013年开源了. 我也用React开发了一个 ...
- 2.如何正确理解古典概率中的条件概率《zobol的考研概率论教程》
写本文主要是帮助粉丝理解考研中的古典概率-条件概率的具体定义. "B事件发生的条件下,A事件发生的概率"? "在A集合内有多少B的样本点"? "在B约 ...
- orcal恢复delete误删除的数据
orcal的删除有3种:delete.truncate.drop. delete可以手动提交和回滚,且可以使用where:而truncate.drop执行即对表数据进行了修改,且不能使用where. ...
- 158_模型_Power BI 使用 DAX + SVG 打通制作商业图表几乎所有可能
158_模型_Power BI 使用 DAX + SVG 打通制作商业图表几乎所有可能 一.背景 最近对 Power BI 中使用 SVG 比较感兴趣,今天我们使用 DAX + SVG 复刻一下 Ze ...