码迷,mamicode.com
首页 > 其他好文 > 详细

uva133 救济金发放

时间:2014-10-24 01:30:13      阅读:162      评论:0      收藏:0      [点我收藏+]

标签:style   blog   color   io   for   sp   div   log   代码   

 1 #include<stdio.h>
 2 #define    maxn    20
 3 int a[maxn+5], n; 
 4 
 5 int go( int p,int d,int t )
 6 {//    printf("a[%d]=%d\n",p,a[p]);
 7     while( t-- )
 8     {  //该题的核心所在
 9         do{
10             p = (p+d+n-1) % n +1;
11         }while( a[p] == 0 );
12     }
13     return p;
14 }
15 
16 int main()
17 {
18     int k, m, p1, p2;
19     while( scanf("%d%d%d",&n, &k, &m) == 3 )
20     {
21         for( int i=1; i<=n; i++ )    a[i] = i;//位置初始化
22         printf("\n");
23         p1 = 0, p2 = n;
24         int left=n;
25         
26         while(left)
27         {//printf("a[p1]=%d,a[p2]=%d\t",a[p1],a[p2]);
28             p1 = go( p1, 1,k );
29             p2 = go( p2, -1,m );
30             a[p1] = a[p2] = 0;
31             
32             //printf("p1=%d p2=%d\n\n",p1,p2); 
33             
34             printf("%3d",p1); left--;
35             if( p1 != p2 )    { printf("%3d",p2); left--; }
36             if(left)        printf(",");
37         }
38         printf("\n");
39     }
40     return 0;
41 }

本题让我体会到,acm不是简简单单的编程。每行代码都要经过思考才能写下去。

笔算是必须要经历的,先要在纸上写好核心的算法(思路)才能开始码代码。

正题:本体其实就是搜索的一种,将已查过的数标0来使搜索跳过而不用死板的去删去存储空间

另外  p = (p+d+n-1) % n +1;    完成了我自己五行代码完成的任务值得学习,写核心算法前一定要注意思考!!!!!

uva133 救济金发放

标签:style   blog   color   io   for   sp   div   log   代码   

原文地址:http://www.cnblogs.com/qq523861610/p/4047209.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!