HDU 4925 Apple Tree (瞎搞)
找到規律,各一個種一棵樹,或者施肥。先施肥,先種樹一樣。
Apple Tree
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 262144/262144 K (Java/Others)Total Submission(s): 197 Accepted Submission(s): 135
Problem Description
I’ve bought an orchard and decide to plant some apple trees on it. The orchard seems like an N * M two-dimensional map. In each grid, I can either plant an apple tree to get one apple or fertilize the soil to speed up its neighbors’ production. When a grid
is fertilized, the grid itself doesn’t produce apples but the number of apples of its four neighbor trees will double (if it exists). For example, an apple tree locates on (x, y), and (x - 1, y), (x, y - 1) are fertilized while (x + 1, y), (x, y + 1) are not,
then I can get four apples from (x, y). Now, I am wondering how many apples I can get at most in the whole orchard?
Input
The input contains multiple test cases. The number of test cases T (T<=100) occurs in the first line of input.
For each test case, two integers N, M (1<=N, M<=100) are given in a line, which denote the size of the map.
For each test case, two integers N, M (1<=N, M<=100) are given in a line, which denote the size of the map.
Output
For each test case, you should output the maximum number of apples I can obtain.
Sample Input
2
2 2
3 3
Sample Output
8
32
#include <algorithm>
#include <iostream>
#include <stdlib.h>
#include <string.h>
#include <iomanip>
#include <stdio.h>
#include <string>
#include <queue>
#include <cmath>
#include <stack>
#include <map>
#include <set>
#define eps 1e-12
///#define M 1000100
#define LL __int64
///#define LL long long
///#define INF 0x7ffffff
#define INF 0x3f3f3f3f
#define PI 3.1415926535898
#define zero(x) ((fabs(x)<eps)?0:x)
using namespace std;
const int maxn = 110;
int mp[maxn][maxn];
int main()
{
int n, m;
int T;
cin >>T;
while(T--)
{
scanf("%d %d",&n, &m);
memset(mp, 0, sizeof(mp));
for(int i = 1; i <= n; i++)
{
if(i%2)
{
for(int j = 1; j <= m; j += 2)
mp[i][j] = 1;
}
else
{
for(int j = 2; j <= m; j+= 2)
mp[i][j] = 1;
}
}
LL sum = 0;
for(int i = 1; i <= n; i++)
{
for(int j = 1; j <= m; j++)
{
if(mp[i][j]) continue;
int cnt = 0;
if(i-1 >= 1) if(mp[i-1][j]) cnt ++;
if(i+1 <= n) if(mp[i+1][j]) cnt ++;
if(j-1 >= 1) if(mp[i][j-1]) cnt++;
if(j+1 <= m) if(mp[i][j+1]) cnt++;
sum += (1LL<<cnt);
}
}
if(sum == 0)
sum++;
cout<<sum<<endl;
}
}
相關文章
- HDU 4923 Room and Moor(瞎搞題)OOM
- HDU 2478 Slides(瞎搞,預處理)IDE
- [HDU6793] Tokitsukaze and Colorful Tree
- HDU5293 : Tree chain problemAI
- 【DFS】HDU 5423 Rikka with Tree
- POJ 3321 Apple TreeAPP
- Codeforces 461B Appleman and Tree:Tree dpAPP
- POJ 2486 Apple Tree(樹形dp)APP
- HDU5425Rikka with Tree II(數學期望)
- hdu 5086 Revenge of Segment Tree(BestCoder Round #16)
- HDU6035-Colorful Tree-虛樹思想
- ZOJ First Digit(瞎搞)Git
- hdu 4836 The Query on the Tree(線段樹or樹狀陣列)陣列
- HDU 5200 Tree (離線並查集)並查集
- poj2486Apple Tree[樹形揹包!!!]APP
- POJ3321Apple Tree[樹轉序列 BIT]APP
- POJ 3321-Apple Tree(樹狀陣列)APP陣列
- POJ 3321 Apple Tree(dfs+樹狀陣列)APP陣列
- 《華爾街日報》:圖解馬斯克4925條推文圖解馬斯克
- POJ3321 Apple Tree(DFS序 + 樹狀陣列)APP陣列
- HDU 5303 Delicious Apples (貪心 列舉 好題)APP
- HDU 3333 Turing Tree(線段樹+離線操作)
- Codeforces 461B. Appleman and Tree[樹形DP 方案數]APP
- URAL 1018 Binary Apple Tree(樹形dp入門題)APP
- Binary Tree Traversals(HDU1710)二叉樹的簡單應用二叉樹
- 【賽後補題】(HDU6228) Tree {2017-ACM/ICPC Shenyang Onsite}ACM
- Tree
- Rebuild TreeRebuild
- 01 Tree
- DSU on Tree
- 【MySQL(1)| B-tree和B+tree】MySql
- 瞎搞!你真的懂什麼是ERP、中臺和低程式碼嗎?
- 多路查詢樹:B-tree/b+tree
- SG 函式初步 HDU 1536 && HDU 1944函式
- layui Tree修改UI
- Tree Compass
- segment tree beats
- B+tree