来着蒟蒻的文章

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;

}

上一篇:字符串——明文加密


下一篇:c++ 输入与缓冲区