【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 就全部通过...感觉我的智商被狠 ...
随机推荐
- 理解 Object.defineProperty
理解 Object.defineProperty 本文写于 2020 年 10 月 13 日 Object.defineProperty 用于在一个对象上定义新的属性或修改现有属性并返回该对象. 什么 ...
- 706. Design HashMap - LeetCode
Question 706. Design HashMap Solution 题目大意:构造一个hashmap 思路:讨个巧,只要求key是int,哈希函数选择f(x)=x,规定key最大为100000 ...
- 修改Docker容器默认时区
运行docker容器默认时区为0区 # 运行一个nginx服务器 docker run -d -p 80:80 --name nginx nginx # 进入容器shell docker exec - ...
- java框架--快速入门
spring快速入门 1.创建项目 1.1创建项目文件夹 1.2启动idea ->文件->打开->点击创建的项目文件夹 1.3右键创建 ...
- webpack.config.js和vue.config.js的区别
webpack.config.js是webpack的配置文件,所有使用webpack作为打包工具的项目都可以使用,vue的项目可以使用,react的项目也可以使用. vue.config.js是vue ...
- “摆地摊“都找不到全栈工程师?JNPF帮你分分钟搞定!
大街上捕捉野生程序员 都这样了还找不到全栈工程师 全栈工程师(Full-Stack Engineer)图鉴: 全栈工程师,也叫全端工程师(同时具备前端和后台能力),英文Full Stack deve ...
- PostMan 快快走开, ApiFox 来了, ApiFox 强大的Api调用工具
简介 为什么要用ApiFox呢, 一般现在程序员开发测试, 一般都是PostMan, PostWoman等Api调用工具, 我之前也是一直在用, 但是今天我发现了一款相比于Postman更加好用的工具 ...
- 华为云发布桌面IDE-CodeArts
摘要:华为伙伴暨开发者大会2022,发布华为云桌面IDE-CodeArts. 本文分享自华为云社区<华为云发布桌面IDE-CodeArts,让连接更简单.编码更智能>,作者: Huawei ...
- Javaweb_Tomcat配置
1.基本概念 1.1 前言 web开发: web,网页的意思 静态web html,css 提供给所有人看的数据始终不会发生改变 动态web 淘宝,几乎所有的网站 提供给所有人看的数据始终会发生变化, ...
- Vue.js CLI4 Vue.config.js标准配置 (最全注释)
前言: Vue.js CLI工具 不知不觉发展到了4.0时代,CLI给人最直白的感受是没有了build文件夹跟config文件夹,所有的配置都在Vue.config.js完成.那么该文件的配置至关重要 ...