美文网首页
csp模测3

csp模测3

作者: 大家好我是阿凉 | 来源:发表于2020-07-08 20:01 被阅读0次

A

image.png

分析:

就是签到题orz,遇到和前一个不一样的数,answer就++;

#include<iostream>
using namespace std;
int main()
{
    int k;cin>>k;
    int c;cin>>c;
    int temp;
    int sum=1;
    for(int i=1;i<k;i++)
    {
        temp=c;
        cin>>c;
        if(c!=temp) sum++;
    }
    cout<<sum<<endl;
    return 0;
 } 

B

image.png

思路:

分开横竖去判断两轮,最后合在一起,其实就是个模拟的过程

#include<iostream>
using namespace std;
int kl[35][35];
int xiao1[35][35];
int xiao2[35][35];
int main()
{
    int n,m;cin>>n>>m;
    for(int i=1;i<=n;i++)
    {
        for(int j=1;j<=m;j++)
        {
            cin>>kl[i][j];
            xiao1[i][j]=1;
            xiao2[i][j]=1;
        }   
    }
    int left1;int right1;
    int left2;int right2;
    for(int i=1;i<=n;i++)
    {
        left1=right1=1;
        left2=right2=1;
        for(int j=2;j<=m;j++)
        {
            if(kl[i][j]==kl[i][j-1])
            {
                right1++;
            }
            if(kl[i][j]!=kl[i][j-1])
            {
            //  cout<<"he"<<endl;
                if((right1-left1+1)>=3)
                {
                //  cout<<i<<"as "<<j<<endl;
                    for(int p=left1;p<=right1;p++) xiao1[i][p]=0;
                }
                left1=right1=j;
            }
            if(kl[j][i]==kl[j-1][i])
            {
                right2++;
            }
            if(kl[j][i]!=kl[j-1][i])
            {
                if((right2-left2+1)>=3)
                {
                //  cout<<i<<" au"<<j<<endl;
                    for(int p=left2;p<=right2;p++) xiao2[p][i]=0;
                }
                left2=right2=j;
            }
            if(j==m)
            {
                if((right2-left2+1)>=3)
                {
                    //cout<<i<<" au"<<j<<endl;
                    for(int p=left2;p<=right2;p++) xiao2[p][i]=0;
                }
                if((right1-left1+1)>=3)
                {
                //  cout<<i<<"as "<<j<<endl;
                    for(int p=left1;p<=right1;p++) xiao1[i][p]=0;
                }
            }
        }
    }
    for(int i=1;i<=n;i++)
    {
        for(int j=1;j<=m;j++)
        {
            if(xiao1[i][j]==0||xiao2[i][j]==0) kl[i][j]=0;
            //if(xiao1[i][j]==0) kl[i][j]=-1;
            //if(xiao2[i][j]==0) kl[i][j]=-2;
            cout<<kl[i][j];
            if(j!=m)
            {
                cout<<" ";
            }
        }
        cout<<endl; 
    }
    return 0;
}
image.png
image.png

这个题就比较麻烦了。开始写的模拟居然爆0 QAQ。
其实考虑一下,不满足条件的字段就是AB ABBBB。。。 BA BAAAA。。然后全部的子串数量是有公式算出来
然后为了减少时间复杂度。需要在代码种一次循环找到所有的这些子串数量。
代码如下

#include<iostream>
#include<string>
#include<string.h>
#include<cstring>
using namespace std;
int c[2000000][2];
string x;
int w=0;
bool panduan(int x1,int y1)
{
    bool ok=1;
    int middle=(x1+y1)/2;
    int cs=0;
    for(int i=x1;i<=middle;i++)
    {
        if(x[x1]!=x[y1-cs]) 
        {
            ok=0;break;
        }
    }
    if(ok)
    {
        c[w][0]=x1;c[w][1]=y1;
        w++;
    }
    else return 0;
}
int main()
{
    int n;
    cin>>n; 
    cin>>x;
    int left=0;int right=1;
    while(left<n)
    {
        if(right==left) right++;
        if(panduan(left,right)) 
        {
            left++;right=left+1;
        }
        else
        {
            right++;
        }
        if(right>n-1)
        {
            left++;
            right=left+1;
        }
    }
    int sum=0;
    

    int lf,rt;
    for(int i=0;i<w;i++)
    {
        sum++;
        lf=c[i][0];rt=c[i][1];
        for(int j=i+1;j<w;j++)
        {
            if(c[j][0]<=rt+1&&c[j][1]>rt) 
            {
                sum++;
                rt=c[j][1];
            }
            else break;
        }
    }
    cout<<sum<<endl;
    return 0;
}

相关文章

  • csp模测3

    A 分析: 就是签到题orz,遇到和前一个不一样的数,answer就++; B 思路: 分开横竖去判断两轮,最后合...

  • csp 模测4

    A 分析 其实。。这题很迷惑。k的数据范围。不过也不影响,只是判断每个数字的每一位的值在0-9中占几个。上代码 B...

  • 模测模测

    A HRZ的序列 题目 相较于咕咕东,瑞神是个起早贪黑的好孩子,今天早上瑞神起得很早,刷B站时看到了一个序列aaa...

  • 第六十章 CSP的常见问题 - 如何结束CSP会话,CSP会话超

    第六十章 CSP的常见问题 - 如何结束CSP会话,CSP会话超时 如何结束CSP会话? 若要结束CSP会话,请在...

  • Go基础——channel

    CSP 要想理解 channel 要先知道 CSP 模型。CSP 是 Communicating Sequenti...

  • go基本语法

    一、总结 1、Go没有对象,没有继承多台,没有泛型,没有try/catch2、Go有接口,函数式编程,csp并发模...

  • 第九章 CSP 架构 - CSP 应用程序设置

    第九章 CSP 架构 - CSP 应用程序设置 CSP 应用程序设置 当 CSP 服务器接收到传入的 HTTP 请...

  • 第十七章 CSP 中的 HTTP 请求 - %CSP.Respo

    第十七章 CSP 中的 HTTP 请求 - %CSP.Response 对象和 OnPreHTTP 方法 %CSP...

  • 3月30日——准备省考、毕设

    今天完成了: 1.清明扫墓(>_<) 2.粉笔:行测第15季模考讲解 3.申论模考讲解2小时,余下1.5小时 4....

  • 3月25日——准备省考、毕设

    今天完成了: 1.行测一直在加油 2.粉笔:行测模考并完成总结 3.背记申论 4.墨墨背单词打卡 5.行测、申论四...

网友评论

      本文标题:csp模测3

      本文链接:https://www.haomeiwen.com/subject/rvogtktx.html