codeforces#238_div2_B Domino Effect

来源:互联网 发布:二手拆车座椅淘宝 编辑:程序博客网 时间:2024/06/05 06:11

题目地址:戳这里

简单的模拟

从左到右扫一遍,注意维护一下,temp 表示积累没有操作的 Domino数目,每次操作后要对temp 清零  

然后是维护上一个操作的操作类型和位置,要注意的是,初始值应该设置为一个取不到的,比如‘#’,这样知道是不是第一次遇到操作

然后就是顺着逻辑顺序往后走了,应该注意走到第n+1 项,只要lastone!=‘R’ 就把temp加进去吧

R....L  这种类型应该是L的index-R的index 是偶数的时候会对ans贡献1


代码:

#include<iostream>#include<vector>using namespace std;char p[3005];vector<char>  v;int  main(){    int  n;    cin>>n;        char ch;    for(int i=0;i<n;i++)    {        cin>>p[i];           }    //    for(int i=0;i<n;i++)//    {//        v.push_back(p[i]);//        if(p[i]=='L')//        {//           //        }//    }    char lastone='#';    int  lastindex=0;        int   ans=0;    int  temp=0;        p[n]='$';    for(int i=0;i<n+1;i++)    {                 if(i==n)         {                          if(lastone!='R')             {                 ans+=temp;                               }                          break;         }                if(p[i]=='.')  temp++;                else        {             if(p[i]=='L')            {                if(lastone=='#')                {                    temp=0;                    lastone='L';                    lastindex=i;                                    }                                else if(lastone=='R')                {                    if((i-lastindex)%2==0)                    {                        ans++;                                                                    }                    temp=0;                    lastone='L';                    lastindex=i;                }                            }                                    else   //  R            {                if(lastone=='#')                {                    ans+=temp;                                        temp=0;                    lastone='R';                    lastindex=i;                                    }                                else if(lastone=='L')                {                                        ans+=temp;                                                           temp=0;                    lastone='R';                    lastindex=i;                }            }        }                }            cout<<ans<<endl;    }

0 0
原创粉丝点击