码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • AcWing_第 78 场周赛


    AcWing 4719. 商品种类_set

    4719. 商品种类

    •    题目
    •    提交记录
    •    讨论
    •    题解
    •    视频讲解

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

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

    请你统计,货架中一共有多少种不同的商品。

    输入格式

    第一行包含整数 nn。

    接下来 nn 行,每行包含两个字符串,分别表示一件商品的名称和产地。

    输入字符串的长度范围为 [1,10][1,10],且仅包含小写字母。

    输出格式

    一个整数,表示商品种类数量。

    数据范围

    前 44 个测试点满足 1≤n≤51≤n≤5。
    所有测试点满足 1≤n≤1001≤n≤100。

    输入样例1:

    1. 5
    2. b y
    3. m r
    4. b y
    5. m y
    6. m g

    输出样例1:

    4
    

    输入样例2:

    1. 3
    2. abc def
    3. abc def
    4. abc def

    输出样例2:

    1

    1. // AcWing 4719. 商品种类_set
    2. #include
    3. using namespace std;
    4. const int N=111;
    5. struct A
    6. {
    7. string a,b;
    8. bool operator < ( const A& in ) const
    9. {
    10. return ( in.a == a ) ? ( in.b < b ) : ( in.a < a ) ;
    11. }
    12. };
    13. set st;
    14. // set< pair > st;
    15. int main()
    16. {
    17. string a,b;
    18. int n,i;
    19. scanf("%d",&n );
    20. for( i=1;i<=n;i++ )
    21. {
    22. cin>>a>>b;
    23. st.insert( (A){ a,b } );
    24. // st.insert( make_pair( a,b ) );
    25. }
    26. cout<size()<
    27. return 0;
    28. }
    29. // set具有天然的排序与去重功能,
    30. // 结构体不是基本类型(基本类型有默认的排序准则),因此需要重载 < 运算符。
    31. //(相当于给自定义类型一个排序准则)。
    32. // bool operator <(const HolePos & a)const ;运算符重载必须是const。


    AcWing 4720. 字符串_栈

    4720. 字符串

    •    题目
    •    提交记录
    •    讨论
    •    题解
    •    视频讲解

    给定一个由小写字母构成的字符串 ss。

    如果字符串中存在两个字母相同且相邻,则称它们为相同连续字母对。

    我们不希望 ss 中存在相同连续字母对。

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

    总之,最终得到的字符串中不能存在相同连续字母对。

    输出最终得到的字符串。

    可以证明,不论按何种顺序删除相同连续字母对,最终得到的字符串都是一样的。

    输入格式

    共一行,一个由小写字母构成的字符串 ss。

    输出格式

    输出最终得到的字符串。

    保证结果不为空。

    数据范围

    前 55 个测试点满足 1≤|s|≤201≤|s|≤20。
    所有测试点满足 1≤|s|≤2×1051≤|s|≤2×105。

    输入样例1:

    aabbcddddefggbbaa
    

    输出样例1:

    cef
    

    输入样例2:

    abcddcef
    

    输出样例2:

    abef
    

    输入样例3:

    abacabaabacabaa
    

    输出样例3:

    a

    1. // AcWing 4720. 字符串_栈
    2. #include
    3. using namespace std;
    4. const int N=1e6+7;
    5. char ans[N];
    6. int main()
    7. {
    8. string s;
    9. int i,pos;
    10. cin>>s;
    11. pos=0;
    12. for( i=0;isize();i++ )
    13. {
    14. ans[++pos]=s[i];
    15. if( pos>=2 && ans[pos-1]==ans[pos] ) pos-=2;
    16. }
    17. for( i=1;i<=pos;i++ ) putchar( ans[i] );
    18. return 0;
    19. }


    acwing 4721. 排队_单调队列

    4721. 排队

    •    题目
    •    提交记录
    •    讨论
    •    题解
    •    视频讲解

    nn 个小朋友排成一排,从左到右依次编号为 1∼n1∼n。

    第 ii 个小朋友的身高为 hihi。

    虽然队伍已经排好,但是小朋友们对此并不完全满意。

    对于一个小朋友来说,如果存在其他小朋友身高比他更矮,却站在他右侧的情况,该小朋友就会感到不满。

    每个小朋友的不满程度都可以量化计算,具体来说,对于第 ii 个小朋友:

    • 如果存在比他更矮且在他右侧的小朋友,那么他的不满值等于其中最靠右的那个小朋友与他之间的小朋友数量。
    • 如果不存在比他更矮且在他右侧的小朋友,那么他的不满值为 −1−1。

    请你计算并输出每个小朋友的不满值。

    注意,第 11 个小朋友和第 22 个小朋友之间的小朋友数量为 00,第 11 个小朋友和第 44 个小朋友之间的小朋友数量为 22。

    输入格式

    第一行包含整数 nn。

    第二行包含 nn 个整数 h1,h2,…,hnh1,h2,…,hn。

    输出格式

    共一行,输出 nn 个整数,第 ii 个整数为第 ii 个小朋友的不满值。

    数据范围

    前 55 个测试点满足 2≤n≤52≤n≤5。
    所有测试点满足 2≤n≤1052≤n≤105,1≤hi≤1091≤hi≤109。

    输入样例1:

    1. 6
    2. 10 8 5 3 50 45

    输出样例1:

    2 1 0 -1 0 -1
    

    输入样例2:

    1. 7
    2. 10 4 6 3 2 8 15

    输出样例2:

    4 2 1 0 -1 -1 -1 
    

    输入样例3:

    1. 5
    2. 10 3 1 10 11

    输出样例3:

    1 0 -1 -1 -1 

    1. // acwing 4721. 排队_单调队列
    2. #include
    3. using namespace std;
    4. const int N=1e5+6;
    5. int in[N],sk[N],ans[N];
    6. int main()
    7. {
    8. int n,i,top,x,y,mid;
    9. scanf("%d",&n );
    10. for( i=1;i<=n;i++ ) scanf("%d",&in[i] );
    11. memset( ans,-1,sizeof( ans ) );
    12. sk[n]=n; // sk[] 存的是下标
    13. top=n;
    14. for( i=n-1;i;i-- ) // 从后往前遍历
    15. {
    16. // 出现相等的数字 因为需要满足严格小于 所以当前 数字下标放进单调队列 不进入二分
    17. if( in[i]<=in[sk[top]] ) { sk[--top]=i; continue; } // 遇到小的 保留 放进栈里
    18. x=top,y=n; // 二分 找到答案
    19. while( x// 找到小的最大值
    20. {
    21. mid=( x+y+1 )>>1;
    22. if( in[sk[mid]]// 比他更矮 严格小于
    23. else y=mid-1;
    24. }
    25. // cout<
    26. ans[i]=sk[x]-i-1;
    27. }
    28. for( i=1;i<=n;i++ )
    29. {
    30. if( i!=1 ) putchar(' ');
    31. printf("%d",ans[i] );
    32. }
    33. putchar('\n');
    34. return 0;
    35. }

  • 相关阅读:
    Alkyne-PEG-Silane,炔烃PEG硅烷,Alkyne-PEG-SIL
    完全背包转化为多重背包
    《大数据之路:阿里巴巴大数据实践》-第1篇 数据技术篇 -第4章 离线数据开发
    Android Parcelable反序列化漏洞分析与利用
    234. 回文链表
    【C语言】进阶——结构体+枚举+联合
    “的修“报修工单管理系统有哪些功能和作用?
    企业应用架构研究系列二十八:身份认证 Beginning Out With IdentityServer4
    基于Swagger的接口自动化测试
    浅析 Vue3 响应式原理
  • 原文地址:https://blog.csdn.net/qq_63173957/article/details/127953332
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号