AcWing_第 78 场周赛
admin
2024-02-03 14:47:34

AcWing 4719. 商品种类_set

4719. 商品种类

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

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

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

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

输入格式

第一行包含整数 nn。

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

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

输出格式

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

数据范围

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

输入样例1:

5
b y
m r
b y
m y
m g

输出样例1:

4

输入样例2:

3
abc def
abc def
abc def

输出样例2:

1

// 	AcWing 4719. 商品种类_set
#include
using namespace std;const int N=111;
struct A
{string a,b;bool operator < ( const A& in ) const{return ( in.a == a ) ? ( in.b < b ) : ( in.a < a ) ;}
};
set st;
// set< pair > st;	int main()
{string a,b;int n,i;scanf("%d",&n );for( i=1;i<=n;i++ ){cin>>a>>b;st.insert( (A){ a,b } );// st.insert( make_pair( a,b ) );}cout<


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

// 	AcWing 4720. 字符串_栈
#include
using namespace std;const int N=1e6+7;
char ans[N];int main()
{string s;int i,pos;cin>>s;pos=0;for( i=0;i=2 && ans[pos-1]==ans[pos] ) pos-=2;}for( i=1;i<=pos;i++ ) putchar( ans[i] ); return 0;
}


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:

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 

// acwing 4721. 排队_单调队列
#include
using namespace std;const int N=1e5+6;
int in[N],sk[N],ans[N];int main()
{int n,i,top,x,y,mid;scanf("%d",&n );for( i=1;i<=n;i++ ) scanf("%d",&in[i] );memset( ans,-1,sizeof( ans ) );sk[n]=n;				// sk[] 存的是下标 top=n;for( i=n-1;i;i-- )      // 从后往前遍历{// 出现相等的数字 因为需要满足严格小于 所以当前 数字下标放进单调队列 不进入二分  if( in[i]<=in[sk[top]] ) { sk[--top]=i; continue; } 	// 遇到小的 保留 放进栈里x=top,y=n;          // 二分 找到答案while( x>1;if( in[sk[mid]]

相关内容

热门资讯

原创 夏... 夏天湿热重、脾胃易虚寒,这4道汤健脾祛湿、暖胃护胃、清热不伤阳,适合连续两个月常喝,步骤清晰、做法简...
明日四月十六,记得“吃4样,做... 明日农历四月十六,记得“吃4样,做1事”五谷丰登迎福气,老传统别丢! 时光如梭,转眼间来到了农历四月...
今年目标全国销售网点突破200... 5月16日下午6点,贵阳市吾茶白·贵茶潮饮烘焙概念店里排起小队。 “就要这款,上次喝完一直惦记着。”...
原创 淄... 很多人认识淄博只靠烧烤但真正撑起淄博饮食底蕴的从来不是网红热度而是一代代扎根老城的老字号烟火。这些老...
原创 夏... “赤日炎炎似火烧”,这话一到夏天,可算是说到大家心坎里去了。天热起来,不光人没精神,连胃口也跟着变差...