【结论】游戏(jzoj 5536)

游戏

jzoj 5536

题目大意:

给一个范围和一个矩形,让你在这个范围内放若干个这样的矩形(不能改变方向,不能重叠),让你求出最少放多个矩形可以使范围内无法再放矩形

输入样例#1

11 4 3 2

输入样例#2

10 8 3 4

输入样例#3

15 7 4 2

输出样例#1

2

输出样例#2

2

输出样例#3

4

数据范围

70%的数据 W 100 , H 100 W\leqslant 100,H\leqslant 100
100%的数据 W 30000 , H 30000 W\leqslant 30000,H\leqslant 30000

解题思路

这就是一道傻逼题!!
让每一个矩阵奉献最大,我们可以像下图红色方块一样放,往上和往左都隔出一个矩形单位的长度,然后我们可以向左上移一点点,这样左上的位置放不下一个矩形,只挪一点点也不会影响右下的,然后我们计算行和列各有多少个就可以了
在这里插入图片描述

代码

#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
#define ll long long
using namespace std;
int N, M, n, m, ans;
int main()
{
	scanf("%d%d%d%d", &N, &M, &n, &m);
	N /= n;//长要多少个
	M /= m;//宽
	ans = ((N + 1) / 2) * ((M + 1) / 2);//一个矩形顶两个位置,但是如果多出来一个位置的还是要再放一个矩形
	printf("%d", ans);
	return 0;
}
发布了334 篇原创文章 · 获赞 57 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/ssllyf/article/details/104288734