C语言一菜鸟级


私信TA

用户名:LHL

访问量:66225

签 名:

AC总是意料之外 ^_^

等  级
排  名 53
经  验 11534
参赛次数 5
文章发表 56
年  龄 24
在职情况 在职
学  校 四川工商学院
专  业 通信工程

  自我简介:

C语言 蓝桥杯 ACM 新人 欢迎大佬 前来指导 交流 本人 博客https://fivecc.blog.csdn.net/

解题思路:思路:看看图 有什莫想法 
黑色代表 首只感冒蚂蚁 红色代表 会感冒蚂蚁 蓝色代表 不会感冒 
蚂蚁向碰头 都转向 可看作 都不转向 看成擦肩而过 
图 1 2 为一般情况 3 4 为特殊情况 仔细想想 或画图 看看 
(两只蚂蚁相遇各自反向可以看作是两只蚂蚁分别继续前进, 
然后假如感冒蚂蚁向左行,则会感染它左边所有向右行的蚂蚁,因为它继续向左行, 
别感染的第一只蚂蚁继续向右行,感染所有它右边向左行的蚂蚁。)

这理 排版 太乱了 来 博客看吧https://blog.csdn.net/qq_41923622/article/details/79756067

注意事项:

参考代码:


20180419220446312.png

#include<stdio.h>
 int abss(int s)//取绝对值 
 { if(s<0)return -s;
    else return s;
 }
int  main()
{  int qans=0,hans=0,n,i,gm,s; 
  scanf("%d",&n); 
  scanf("%d",&gm);//gm 首个感冒蚂蚁 位值 
      for(i=1;i<n;i++)
       {         scanf("%d",&s);
         if(abss(gm)<abss(s)&&s<0)hans++;//当在首个蚂蚁右侧并且反向 必感冒 
         if(abss(gm)>abss(s)&&s>0)qans++;//当在首个蚂蚁左侧并且正向 必感冒 
       }  
          if(gm>0&&hans!=0||gm<0&&qans!=0)printf("%d",qans+hans+1); 
           else printf("1");//当首个感冒蚂蚁方向为正时 在首个蚂蚁右侧并且反向 为 0 或  
 return 0; //当首个感冒蚂蚁方向为负时 在首个蚂蚁左侧并且反向 为 0 则不会被感冒除首个感冒
     }
 

0.0分

0 人评分

  评论区

  • «
  • »