明天考完就可以放假咯,水一篇博客练练手
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