HDU4925-Apple Tree

來源:互聯網
上載者:User

標籤:style   color   os   io   for   amp   size   ios   

題意:n*m網格中種蘋果,每個網格要麼施肥,要麼種一個蘋果,每個種蘋果的格子,如果它的上下左右有各自有施肥的話,每有一個,蘋果數量*2,求怎麼種使得蘋果數量最多。


思路:交叉種植,即黑白染色法可得到最優解。注意特判當n=m=1時的情況。


#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>using namespace std;const int MAXN = 105;int n, m;int g[MAXN][MAXN];int deal(int x, int y) {    int sum = 1;    if (g[x][y - 1] == 1)        sum *= 2;    if (g[x][y + 1] == 1)        sum *= 2;    if (g[x - 1][y] == 1)        sum *= 2;    if (g[x + 1][y] == 1)        sum *= 2;    return sum;}int main() {    int cas;    scanf("%d", &cas);    while (cas--) {        scanf("%d%d", &n, &m);                 if (n == 1 && m == 1) {            printf("1\n");             continue;         }        memset(g, 0, sizeof(g));        int flag = 1;        if (m % 2 == 1) {            for (int i = 1; i <= n; i++)                 for (int j = 1; j <= m; j++) {                    g[i][j] = flag;                     flag = -flag;                 }         }        else {            for (int i = 1; i <= n; i++) {                 for (int j = 1; j <= m; j++) {                    g[i][j] = flag;                     flag = -flag;                 }                flag = -flag;            }        }        long long ans = 0;        for (int i = 1; i <= n; i++)            for (int j = 1; j <= m; j++)                 if (g[i][j] == -1)                    ans += deal(i, j);         printf("%lld\n", ans);       }    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.