首页 > 其他 > 详细

2021.3.21组队赛

时间:2021-03-28 17:51:58      阅读:14      评论:0      收藏:0      [点我收藏+]

本次组队赛我做出两个中等难度题目,属于较好的发挥。望再接再厉。

补提:a

a题是我的短板,我不擅长的字符串操作。a题题目不算难,但是考虑方法问题。此题结合了字符串和栈操作。

#include<bits/stdc++.h>
using namespace std;
int main()
{
int n;
cin>>n;
int num[n];
for(int i=0;i<n;i++)
{
char t;
cin>>t;
getchar();
if(t==‘T‘)num[i]=1;
if(t==‘F‘)num[i]=0;
}
string t1;
getline(cin,t1);
stack<int> s1;
for(int i=0;i<t1.size();i++)
{
if(t1[i]>=‘A‘&&t1[i]<=‘Z‘)
{
int n1=t1[i]-‘A‘;
int n2=num[n1];
//cout<<n2<<" ";
s1.push(n2);
}
else if(t1[i]!=‘ ‘)
{
if(t1[i]==‘*‘)
{
int m1=s1.top();
s1.pop();
int m2=s1.top();
s1.pop();
int m3=m1*m2;
//cout<<m3<<endl;
s1.push(m3);
}
if(t1[i]==‘+‘)
{
int m1=s1.top();
s1.pop();
int m2=s1.top();
s1.pop();
int m3=m1+m2;
if(m3>1)m3=1;
//cout<<m3<<endl;
s1.push(m3);
}
if(t1[i]==‘-‘)
{
int m1=s1.top();
s1.pop();
int m3;
if(m1==0)m3=1;
if(m1==1)m3=0;
//cout<<m3<<endl;
s1.push(m3);
}
}
}
int tt=s1.top();
//cout<<s1.size()<<endl;
if(tt==1)cout<<"T"<<endl;
else cout<<"F"<<endl;
}

k题:有点玄学,要求选择最多的不同字母组合方式,当时题意看了很长时间,看不懂是啥意思。

#include<bits/stdc++.h>
using namespace std;
#define ll long long
int p[30];
set<int> st[30];
int main()
{
string s;
cin>>s;
ll ans=0;
for(int i=0;i<s.size();i++)
{
int x=s[i]-‘a‘+1;
ans+=st[x].size();
cout<<ans<<endl;
for(int j=1;j<=26;j++)
st[j].insert(x);
st[x].clear();
}
cout<<ans<<endl;
return 0;
}

2021.3.21组队赛

原文:https://www.cnblogs.com/yyscn/p/14588263.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!