题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4572
题目:每行有1-m的瓶子,有n列,要求去摆瓶子,要求相同列不能有相同的瓶子,并且相同行相邻瓶子间差值不能超过1,问摆完后,最大一行的总和的最小值是多少。
思路:推理,假设放一个最大的瓶子,两边肯定放小的,在两边肯定放更小的,所以最后推出来为从中间往两边放依次大小递减即可
代码:
#include <stdio.h>
#include <string.h>
int m, n;
int main() {
while (~scanf("%d%d", &m, &n)) {
n = (n + 1) / 2;
printf("%d\n", (m + (m - n) + 1) * n - ((m - n) + 1));
}
return 0;
}2013 长沙邀请赛 HDU 4572 Bottles Arrangement(推理),布布扣,bubuko.com
2013 长沙邀请赛 HDU 4572 Bottles Arrangement(推理)
原文:http://blog.csdn.net/accelerator_/article/details/23515527