2021牛客寒假算法基础集训营签到题
提示:谁让我是蒟蒻 当时一题没做出来
签到题因为不会如何输入 用空格隔开的字符来存进字符串。
提示:记录下 。
文章目录
前言
提示:大佬别看了 玷污你们的双眼
提示:以下是本篇文章正文内容,下面案例可供参考
一、直接上题目
1.引入库
后来AC代码如下:
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n;
string a,b;
int jishu=0;
cin>>n;
char ch=getchar();
getline(cin,a,'\n');
getline(cin,b,'\n');
for(int i=0;i<2*n-1;i+=2)
{
if(a[i]==b[i])
jishu++;
}
cout<<jishu+n<<" "<<0;
return 0;
}
2.读入数据
代码如下(示例):
cin>>n;
char ch=getchar();
getline(cin,a,'\n');
getline(cin,b,'\n');
就是因为这步不会 才导致了爆0
所以我是爆0战士。
总结
提示:这里对文章进行总结:
这题是思维题 运用了贪心算法
最大值为a数组和b数组的字符相同的数量加上n的大小(选择题的数量)。
最小值一定为0。
输入的两个点:
1、关于getline的使用。
详细内容:getline()与cin.getline()函数用法详解(搬运)
2、char ch=getchar()这一步的必要性。
如果没有这步就会把输入n之后输入的回车当字符串输入了。
标程代码如下
#include <string>
#include <iostream>
#include <algorithm>
using namespace std;
#define ll long long
int n;
int main(){
int i,j;
string a,b;
cin>>n;
cin.get();
getline(cin, a, '\n');
getline(cin, b, '\n');
a.erase(remove_if(a.begin(), a.end(), ::isspace), a.end());
b.erase(remove_if(b.begin(), b.end(), ::isspace), b.end());
int cnt=0;
for(i=0;i<n;i++)if(a[i]==b[i])cnt++;
cout<<n+cnt<<" "<<0;
}