HDU5100Chessboard(数论)
来源:互联网 发布:淘宝收二手手机 编辑:程序博客网 时间:2024/06/08 09:29
HDU5100Chessboard(数论)
题目链接
题目大意:用k∗1的瓷砖区铺n∗n的矩形,问能铺上的最大的面积。
解题思路:这题没有直接得出结论:l = n%k, ans = max[(n^2 - l^2), (n^2 - (k - l)^2)],但是在画的过程中发现了,最好的情况就只有两种铺法,要不按照贪心的策略来铺,直到铺不下为止。或者是一圈一圈的铺,铺完一圈后最后还会剩下一个矩形,然后再递归子问题,每个子问题都是返回面积最大的。
代码:
#include <cstdio>#include <cstring>#include <algorithm>using namespace std;int find (int n, int k) { if (n < k) return 0; int mul = n / k; int mod = n % k; return (mul * n + mod * mul) * k;}int solve (int n, int k) { int tmp1 = find(n, k), tmp2 = 0; if (n > k && n % k) tmp2 = solve(n - 2 * (n % k), k) + 4 * (n / k) * (n % k) * k; return max(tmp1, tmp2);}int main () { int T, N, K; scanf ("%d", &T); while (T--) { scanf ("%d%d", &N, &K); printf ("%d\n", solve(N, K)); } return 0;}
0 0
- HDU5100Chessboard(数论)
- 数论(二)——数论函数
- HDU 2204 (数论)
- 素数判断(数论)
- HDOJ1124 Factorial(数论)
- 数论(欧几里得算法)
- 1107(数论)
- hdu 1722(数论)
- hdu 1492(数论)
- hdu 2554 (数论)
- hdu 2964 (数论)
- Leftmost Digit(数论)
- hdu 2421 (数论)
- HDU1492(数论)
- hdu3579Hello Kiki(数论)
- zoj 1526 (数论)
- zoj 2277 (数论)
- hdu 2608(数论)
- NEERC 2013 Dwarf Tower (最短路)
- redis源码学习
- 谈谈Objective-C的警告
- 谈谈DOMContentLoaded:Javascript中的domReady引入机制
- MFC 小知识总结三
- HDU5100Chessboard(数论)
- Qt资源
- 数组
- SQL两表之间:根据一个表的字段更新另一个表的字段
- android数据库操作全揭秘 ---- 翻译google官方资料
- ecshop 添加自定义动态库项目详解
- Bluedroid 协议栈a2dp音频有波动的处理方法
- TFS强制解除被独占签出的文件
- Javascript函数及作用域说明