首页 > 其他分享 >Acwing 第 78 场周赛 ABC

Acwing 第 78 场周赛 ABC

时间:2022-12-15 20:35:23浏览次数:54  
标签:周赛 typedef ABC const LL 样例 cin 小朋友 78

明天考完就可以放假咯,水一篇博客练练手
https://www.acwing.com/activity/content/2622/
4719. 商品种类

题目大意:

货架中摆放着 n 件商品,每件商品都有两个属性:名称和产地。

当且仅当两件商品的名称和产地都相同时,两件商品才视为同一种商品。

请你统计,货架中一共有多少种不同的商品。
输入样例1:
5
b y
m r
b y
m y
m g
输出样例1:
4
输入样例2:
3
abc def
abc def
abc def
输出样例2:
1
  • string用map去重
#include<bits/stdc++.h>
using namespace std;
typedef long long LL;
typedef pair<LL,LL> PII;
const LL MAXN=1e18;
const LL N=500200,M=2002;
int main()
{
    cin.tie(0); cout.tie(0); ios::sync_with_stdio(false);
    LL T=1;
    //cin>>T;
    while(T--)
    {
        map<string,int> mp;
        int n,sum=0;
        cin>>n;
        for(int i=1;i<=n;i++)
        {
            string a,b;
            cin>>a>>b;
            string c=a+" "+b;
            mp[c]++;
            if(mp[c]==1) sum++;
        }
        cout<<sum<<endl;
    }
    return 0;
}

4720. 字符串

题目大意:

给定一个由小写字母构成的字符串 s。如果字符串中存在两个字母相同且相邻,则称它们为相同连续字母对。

我们不希望 s 中存在相同连续字母对。所以,每当在 s 中发现一个相同连续字母对时,就应当将这对字母从 s 中删除,如果删除某一对后,出现了新的相同连续字母对,则新的对也应当被删除。

总之,最终得到的字符串中不能存在相同连续字母对。输出最终得到的字符串。
输入样例1:
aabbcddddefggbbaa
输出样例1:
cef
输入样例2:
abcddcef
输出样例2:
abef
输入样例3:
abacabaabacabaa
输出样例3:
a
  • 随便找个相关的stl写写就行了
#include<bits/stdc++.h>
using namespace std;
typedef long long LL;
typedef pair<LL,LL> PII;
const LL MAXN=1e18;
const LL N=500200,M=2002;
int main()
{
    cin.tie(0); cout.tie(0); ios::sync_with_stdio(false);
    LL T=1;
    //cin>>T;
    while(T--)
    {
        string s;
        cin>>s;
        vector<char> st;
        for(int i=0;i<s.size();i++)
        {
            if(i==0||st.size()==0) st.push_back(s[i]);
            else
            {
                if(st.back()==s[i]) st.pop_back();
                else st.push_back(s[i]);
            }
        }
        for(int i=0;i<st.size();i++)
        {
            cout<<st[i];
        }
        cout<<endl;
    }
    return 0;
}

4721. 排队

题目大意:

n 个小朋友排成一排,从左到右依次编号为 1∼n。第 i 个小朋友的身高为 hi。

虽然队伍已经排好,但是小朋友们对此并不完全满意。对于一个小朋友来说,如果存在其他小朋友身高比他更矮,却站在他右侧的情况,该小朋友就会感到不满。

每个小朋友的不满程度都可以量化计算,具体来说,对于第 i 个小朋友:如果存在比他更矮且在他右侧的小朋友,那么他的不满值等于其中最靠右的那个小朋友与他之间的小朋友数量。

如果不存在比他更矮且在他右侧的小朋友,那么他的不满值为 −1。请你计算并输出每个小朋友的不满值。 
输入样例1:
6
10 8 5 3 50 45
输出样例1:
2 1 0 -1 0 -1
输入样例2:
7
10 4 6 3 2 8 15
输出样例2:
4 2 1 0 -1 -1 -1 
输入样例3:
5
10 3 1 10 11
输出样例3:
1 0 -1 -1 -1 
  • 题目不难,模拟题,想清楚就行
    (还好当时做的时候成功卡出了智慧数据,不然真就寄了)
    【下面是赛时的代码,比较繁琐】
#include<bits/stdc++.h>
using namespace std;
typedef long long LL;
typedef pair<LL,LL> PII;
const LL MAXN=1e18;
const LL N=500200,M=2002;
struct node
{
    LL x,idx,minn;
}a[N];
LL ans[N];
bool cmp(node l,node r)
{
    if(l.x!=r.x) return l.x<r.x;
    else return l.idx<r.idx;
}
bool cmp2(node l,node r)
{
    return l.idx<r.idx;
}
int main()
{
    cin.tie(0); cout.tie(0); ios::sync_with_stdio(false);
    LL T=1;
    //cin>>T;
    while(T--)
    {
        LL n;
        cin>>n;
        for(LL i=1;i<=n;i++)
        {
            cin>>a[i].x;
            a[i].idx=i;
            ans[i]=a[i].x;
        }
        sort(a+1,a+1+n,cmp);
        for(LL i=1;i<=n;i++)
        {
            //cout<<a[i].x<<" "<<a[i].idx<<endl;
            if(i==1) a[i].minn=a[i].idx;
            else a[i].minn=max(a[i-1].minn,a[i].idx);
        }
        sort(a+1,a+1+n,cmp2);
        for(int i=1;i<=n;i++)
        {
            //cout<<a[i].x<<" "<<a[i].idx<<" "<<a[i].minn<<endl;
            if(a[i].idx==a[i].minn) cout<<"-1 ";
            else cout<<a[i].minn-a[i].idx-1<<" ";
        }
        cout<<endl;
    }
    return 0;
}
/*
13
18 9 8 9 23 20 18 18 33 25 31 37 36

2 0 -1 -1 2 1 0 -1 1 -1 -1 0 -1

2 0 -1 -1 2 1 -1 -1 1 -1 -1 0 -1
*/

标签:周赛,typedef,ABC,const,LL,样例,cin,小朋友,78
From: https://www.cnblogs.com/Vivian-0918/p/16985957.html

相关文章

  • 【221215-1】三角形ABC中,AB=BC,角C=40,延伸BC至D,令BD=AC。求:角ADC的角度?(一道辅助线很刁
    写在印度侵袭我藏南领土之际,希望印度能收敛士兵,不要继续蚕食。END......
  • Mac 下删除自带的 ABC输入法
    关闭SIP(SystemIntegrityProtection系统完整性保护)#重启时按下command+R进入恢复模式#上方系统工具进入终端运行csrutildisable下载安装PlisteditPr......
  • LC978 Long Turbulent Subarray
    题目https://leetcode.cn/problems/longest-turbulent-subarray/Givenanintegerarrayarr,returnthelengthofamaximumsizeturbulentsubarrayofarr.Asubar......
  • Codeforces Round #655 (Div. 2) ABCDEF题解
    题号博客链接cf分数算法标签A​​https://blog.nuoyanli.com/2020/07/14/codeforces-round-655-div-2-a/​​800简单B​​https://blog.nuoyanli.com/2020/07/14/codeforces......
  • 【787】mac 查看、修改文件权限的命令
    参考:mac查看、修改文件权限的命令查看文件/文件夹权限:1、查看某个文件权限的命令ls-l+要查看文件的文件名2、查看某个文件夹里所有文件/文件夹的权限ls-l+文件......
  • 【788】Oracle Cloud Computing配置步骤
    2022年12月13日-OracleCloud 创建VCN按照向导操作即可 创建Instances 一个public的,一个private的 然后create 修改privatekey的权限 l......
  • 第三次双周赛
    第三次双周赛T1map的简单运用,或者读进来再一个一个判断就行。#include<bits/stdc++.h>usingnamespacestd;map<char,int>m;inta[9];intmain(){m['1']=......
  • 双周赛3
    1.打字题目链接:题目详情-7-1打字(pintia.cn)纯模拟枚举签到题1#include<bits/stdc++.h>2usingnamespacestd;3intl_y,l_b,l_g,l_r;4intr_r,r_g,r_b......
  • WPF TabControl 简单样式自定义
    WPFTabControl 简单样式自定义,覆写控件模版,在此记录下1<!--SimpleStyles:TabControl-->2<StyleTargetType="{x:TypeTabControl}">......
  • P3378 【模板】堆
    P3378【模板】堆题目简述给定三个操作,求数列中最小的数,删除数列中最小的数,插入一个新的数思路板子题没什么好说,用stl自带的优先队列很好写,但手写的也要掌握。建议......