题解

1.栅栏作画

 题目大意:给定两个范围,求出范围共有几个不相同的数(开头或末尾的数不算)

【输入输出样例1】

paint.in

paint.out

7 10

4 8

6

代码如下:

(此处采用在数组上打点的方法,因数据较小,不会超时)

#include<bits/stdc++.h>

using namespacestd;

int main()

{

      freopen("paint.in","r",stdin);

      freopen("paint.out","w",stdout);

      int x,y,l,r,a[200]={},s=0;

      cin>>x>>y;

      cin>>l>>r;

      for(int i=x;i<=y-1;i++)

      {

       a[i]=1;

       s++;

    }//因为是第一段,所以不用考虑已被覆盖的情况

      for(int i=l;i<=r-1;i++)

       if(a[i]==0) {a[i]=1;s++;}//若该点还未被覆盖则计数器加1

    cout<<s;   

      return 0;

}

                                   2.失去的母牛

题目大意:给定两个点想x,y,用每一步移动后离起点的距离是上一步时离起点距离的两倍(x+1,x-2,x+4)的方法算出从x到y需要几步。(注:x与y可能是任何关系:x<y,x=y,x>y)。

输入输出样例

输入样例:

3 6

输出样例:

9

代码如下(还没正式AC,仅供参考):

//单纯模拟,不多解释

#include<bits/stdc++.h>

usingnamespace std;

intmain()

{

    freopen("lostcow.in","r",stdin);

    freopen("lostcow.out","w",stdout);

    int x,y,l,r,s=0;

    cin>>x>>y;

    if (x==y) {cout<<0;return 0;}//若x=y,则一步也不用走

    if (x>y) {x=x+y;y=x-y;x=x-y;l=-1;}//若x>y,则交换x与y,使情况与x<y一样,但需要改变初始方向

    else l=1;

    r=0;

    while(true)

    {

      if (x+l==y) //若走完这一次刚好到达 {s=s+abs(r-l);break;}

      if (x+l>y)//若走完这一次超过了目的地{s=s+abs(r-abs(x-y));break;}

      s=s+abs(r-l);

      r=l;

      l=l*(-2);

    }

    cout<<s;  

    return 0;

}

                         3.牛的基因组

题目大意:给定一个2*n行,m列的字符表(表中只有A,C,G,T四种字母)。若第i列的前n行与后n行有明显区别,则这是有用的一列,求共有几列是有用的。

样例输入输出

样本输入

3 8

AATCCCAT

GATTGCAA

GGTCGCAA

ACTCCCAG

ACTCGCAT

ACTTCCAT

样本输出

1

样例解释:只有第二列中前n行有的字符后n行都没有,后n行有的字符前n行都没有。

(此处不附代码)

4. 现代艺术

     题目大意:给定一个矩阵,矩阵初始全为0,之后不断往里填充由1~9这种数字组成的矩阵(用过的数字无法再次使用)。

例:0000000000

      0022201110

      0022201110

      0000000000

此处就填充了一个由1组成的矩阵和由2组成的矩阵。

问:当此表任意填充几个矩阵后,有几个矩阵是可能第一个填充的。

做法:不断去掉完整的矩阵,把去掉的地方根据周围数字补上该是的数字,直到最后没有不完整的矩阵,数出此时大矩阵内小矩阵的个数,就为答案。

样例输入:

4
2230
2737
2777
0000

样例输出:

1

样例解释:在本例中,只有颜色2可能是第一个被绘制的。颜色3显然是在颜色7之后画的,而颜色7显然是在颜色2之后画的。

(此处不附代码)

 




                                                   反思

   本大周的信奥学习下来,我充分意识到自己的不足。也意识到初中学习信奥的时间不可能像小学那么多了。

  或许之前的绍兴市一等奖让我有一些飘飘然了,我有些开始轻视信奥,觉得信奥其实也没什么,没难度。

  C++的分数线降到了75分。这是个好消息。我自我估分75分,有希望能进。听到这消息时,我还很是兴奋的。

不过,当我看到自己的真实分数时,内心有一份震惊,有一份不感相信,差点哭出来,但又忍住了。我默默回到座位上,心里五味陈良。

  这个分数像是一根警棍,敲醒了还在得意的我,将现在的我推向深渊,但将未来的我推向光明。

 改这个字,说起来容易,做起来难,不过我想我相信我一定能做到,一定要做到……


猜你喜欢

转载自blog.csdn.net/qq_40716114/article/details/78417393