Chinaunix首页 | 论坛 | 博客
  • 博客访问: 21774
  • 博文数量: 12
  • 博客积分: 271
  • 博客等级: 二等列兵
  • 技术积分: 140
  • 用 户 组: 普通用户
  • 注册时间: 2012-05-05 11:17
文章分类

全部博文(12)

文章存档

2012年(12)

我的朋友
最近访客

分类: C/C++

2012-05-05 16:34:45

看似复杂的问题其实可以转换为较为简单的问题,所以一道题目的工作不用把全部工作都交给计算机去做。。
 
 
 
 
 
 
 
 
 
4.洗澡
若明白此题本质,其实算是很容易的题。同学合计等待时间的计算公式即为:“洗澡同学用时×剩下同学数量”作和。所以优先让洗澡时间短的同学洗澡即可。
 
源代码:

点击(此处)折叠或打开

  1. #include <stdio.h>
  2. int main()
  3. {
  4.  int time[1000],n,i,j,k,min;
  5.  scanf("%d",&n);
  6.  for(i=0;i<n;i++)
  7.   scanf("%d",&time[i]);
  8.  for(i=1;i<=n;i++)
  9.  {
  10.   for(j=0,min=65535;j<n;j++)
  11.    if(min>time[j])
  12.    {
  13.     min=time[j];
  14.     k=j;
  15.    }
  16.   printf("%d,",k+1);
  17.   time[k]=65535;
  18.  }
  19.  printf("\b \n");
  20.  return 0;
  21. }

 
6.蚂蚁
 
根据提示可以知道它其实是一道十分简单的题目。蚂蚁相撞和没有相撞无任何区别。
 
源代码

点击(此处)折叠或打开

  1. #include <stdio.h>
  2. int main()
  3. {
  4.  int n,l,i;
  5.  int locat[1000];
  6.  scanf("%d",&l);
  7.  scanf("%d",&n);
  8.  for(i=0;i<n;i++)
  9.   scanf("%d",&locat[i]);
  10.  for(i=0;i<n;i++)
  11.   if(locat[i]>l/2)
  12.    locat[i]=l-locat[i];
  13.  int min=0,max=1000;
  14.  for(i=0;i<n;i++)
  15.  {
  16.   if(max>locat[i])
  17.    max=locat[i];
  18.   if(min<locat[i])
  19.    min=locat[i];
  20.  }
  21.  max=l-max;
  22.  printf("%d %d\n",min,max);
  23.  return 0;
  24. }

 
 
阅读(329) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~