TOJ 1926 POJ 1548 Robots 貪心 水題 C語言

來源:互聯網
上載者:User

思路是貪心,方法就是很水的方法。 

做法:
1.每次派一個機器人從(1,1)開始往右或往下,走到(24,24)為止。
2.如果當前格子有垃圾,就清除。
3.如果當前所在的格子右邊有垃圾,就往右走。否則,往下走。
4.如果走到了最下邊,就一直往右走;如果走到了最右邊,就一直往下走。
5.一個機器人走完,檢查還有沒有垃圾。有就再派一個,沒有就停止。

Right[i][j]是(i,j)右邊的垃圾數;
Down[i][j]是(i,j)下邊的垃圾數;
cnt記錄總的垃圾數;
res記錄機器人數。

Source Code

Problem: 1548   User: yueashuxia
Memory: 400K   Time: 0MS
Language: GCC   Result: Accepted

#include<stdio.h>char grid[25][25];int Right[25][25],Down[25][25];int main(){    int a, b, i, j, k, cnt = 0, res;    while(scanf("%d%d", &a, &b), a != -1 || b != -1)    {         grid[a][b] = 1;         cnt ++;         for(i = 1; i < b; i ++)         {             Right[a][i]++;             }         for(i = 1; i < a; i ++)         {             Down[i][b]++;             }         if(a == 0 && b == 0)         {             cnt--;             for(res = 0; cnt > 0; )             {                 res++;                 i = j = 1;                 while(i < 25 && j < 25)                 {                     if(grid[i][j] == 1)                     {                         grid[i][j] = 0;                         cnt--;                         for(k = 1; k < i; k ++) Down[k][j]--;                         for(k = 1; k < j; k ++) Right[i][k]--;                         }                        if(cnt == 0) break;                     if(Right[i][j] > 0)                     {                         if(j+1 > 24) i++;                         else j++;                       }                     else                      {                         if(i+1 > 24) j++;                         else i++;                          }                 }             }             printf("%d\n", res);          }    }    return 0;}

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.