反思(上)(no.1 and no.2)

                                                                                                                             1.越越的交通指挥系统

(traffic.pas/c/cpp)

【问题描述】

2027年,越越从北大毕业,想为家乡诸暨做点贡献,越越的家乡诸暨市有很多交通路口,其中有26个交通路口在上下班高峰期总是堵车,严重影响市民的出行。于是交通管理部门研制了一批机器人交通警察,用它们来专门指挥这26个交通路口,但需要一个自动化指挥系统来指挥机器人的运作。这个任务交给了越越,越越的设计如下。

分别用大写英文字母A,B,c,…Z表示这26个路口,并按如下的规则派出这些机器人到交通路口协助指挥交通:

1、每次派出两名机器人。

2、当两名机器人的名字中存在一个相同的字母时,这两名机器人便到对应的交通路口指挥交通;有多个字母相同时,两名机器人需要按字母的字典顺序到这些路口巡逻。

3、当两名机器人的名字中不存在相同的字母时,交警部门的派出指令无效(wuxiao)。

    假设这些机器人的名字全由大写字母组成,请你编一个程序,帮越越完成这个交通指挥系统。

【输入】

 第一行:输入第一个机器人的名字(长度不超过250);

 第二行:输入第二个机器人的名字(长度不超过250)。

【输出】

1、当不能排除机器人时,在第一行输出“WuXiao”.

2、当两名机器人在路口上指挥交通时,在第一行输出“ZhiHui”,在第二行输出路口编号。

3、当两名机器人在路口上巡逻时,在第一行输出“XunLuo”,第二行输出巡逻的路口数,第三行输出巡逻线路。

【输入输出样例1】

traffic.in

traffic.out

OPEN

CLOSE

XLuo

2

E-O

【输入输出样例2】

traffic.in

traffic.out

EPSON

SENPUM

XLuo

4

E-N-P-S

【数据范围】

Password

是不是很简单(这是肯定的)。思路:用两个字符串保存这两个数组,两个双重循环(会超时你吃屎),然后再查找。代码如下:

#include<bits/stdc++.h>

usingnamespace std;

stringa,b;

charc[300];

int o;

voidboring()

{

       if(o==1)cout<<"ZhiHui"<<endl<<c[o];

       if(o==0)cout<<"WuXiao";

       if(o>1){

              sort(c+1,c+o+1);

              cout<<"XLuo"<<endl<<o<<endl;

              for(int i=1;i<=o-1;i++)

              {

                     cout<<c[i]<<"-";

              }

              cout<<c[o];

           }

}

intmain()

{

       cin>>a>>b;o=0;

       for(int i=0;i<=a.size()-1;i++)

        for(int j=0;j<=b.size()-1;j++)

         {

             if(a[i]==b[j])o++,c[o]=a[i];

         }

       boring();

    return 0;

}

是不是贼简单(那你就错了),80!
   请看我错的数据

input:

AMATERY

ACTSY

 

output:

XLuo

3

A-T-Y

而我的的数据如下:

XLuo

4

A-A-T-Y

是不是很蒙逼

啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本

来来来来来来来来来来来来来来来来来来来来来来来来来来来来来来来来来来来来来来来来

可可可可可可可可可可可可可可可可可可可可可可可可可可可可可可可可可可可可可可可可

已已已已已已已已已已已已已已已已已已已已已已已已已已已已已已已已已已已已已已已已

100的!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

无语。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

不想说话,只想默默的发代码:

#include<bits/stdc++.h>

using namespace std;

string a,b;

char c[300];

int o,l=0;;

void boring()

{

         if(o==1)cout<<"ZhiHui"<<endl<<c[o];

         if(o==0)cout<<"WuXiao";

         if(o>1){

                 sort(c+1,c+o+1);

                 for(int i=1;i<=o;i++)

                 if(c[i]!=c[i+1])l++;

                cout<<"XLuo"<<endl<<l<<endl;

                 for(int i=1;i<=o-1;i++)

                 {

                    if(c[i]!=c[i+1])cout<<c[i]<<"-";

                 }

                cout<<c[o];

           }

}

int main()

{

         cin>>a>>b;o=0;

         for(inti=0;i<=a.size()-1;i++)

           for(int j=0;j<=b.size()-1;j++)

           {

                if(a[i]==b[j])o++,c[o]=a[i];

           }

         boring();

   return 0;

}

 2.久知的加密工作

(password.pas/c/cpp)

【问题描述】

2027年,从清华毕业的久知找了一份为一些文件的某些部分加密的工作,加密的部分是一串小写英文字母,加密的规则是这样的:要是连续出现相同的字母,则把他们替换成这个字母的大写形式,后面紧跟相同字母的个数,并把它之前跟之后的两端字符串调换,例如出现bcaaaaaingaef,则字符串变成:efA6bc。然后重新扫描字符串,直到没有出现相同小写字母为止。

【输入】

原始字符串(长度不大于250)。

【输出】

新的字符串。

【输入输出样例1】

password.in

password.out

Bcaaaaaaef

efA6bc

【输入输出样例2】

password.in

password.out

Cmmmcefffg

gM3cF3ce

样例2解释:cM3cefffg——cefffgM3c——ceF3gM3c——gM3cF3ce

这一题很简单,但是需要用一个函数:substr(字符串里);

思路:设置一个函数boringinterestring(个人喜好)。用一个boolp=true,先读入,用一个for从零到a的取长-1(注意是从零开始)如果查找到一个有两个连续的,p=false,一直找到末尾,再用函数处理(不用函数也可以,就是很乱)。

 代码如下:

#include<bits/stdc++.h>

using namespace std;

string a;

bool p=true;char b;

long m,n,x=-1,y;

void boring()

{

         if(m>=100)a=a.substr(y,a.size()-y)+char(a[x]-32)+char(m/100+48)+char((m/10)%10+48)+char(m%100+48)+a.substr(0,x-1);

                     elseif(m>=10)a=a.substr(y,a.size()-y)+char(a[x]-32)+char(m/10+48)+char(m%10+48)+a.substr(0,x-1);

                          elsea=a.substr(y,a.size()-y)+char(a[x]-32)+char(m+48)+a.substr(0,x-1);

   x=-1;p=true;

}

int main()

{

         cin>>a;

         for(intj=0;j<=a.size();j++)

         {

                   b=a[0];

         for(inti=1;i<=a.size();i++)

       {

                   if(b!=a[i])if(p==true)b=a[i];

                                         else {

                                            y=i;

                                           m=y-x+1;

                                                                           boring();

                                                                           b=a[i];

                                                                           break;

                                         }

                              else{

                                    p=false;

                                    if(x==-1)x=i;

                              }

         }

    }

         cout<<a;

         return0;

}

  欢迎大家指出错误。

 

 

 

 

 

 

 

 

 

 

 

猜你喜欢

转载自blog.csdn.net/qq_40669010/article/details/78895931
今日推荐