10465 - Homer Simpson
Time limit: 3.000 seconds
这数据量。。枚举绝对是最快的方式了。
完整代码:
/*0.025s*/
#include<bits/stdc++.h>
using namespace std;
int main()
{
int m, n, t, x, ans1, ans2, drink, i, k;
while (~scanf("%d%d%d", &m, &n, &t))
{
if (m > n) swap(m, n);
x = t / m, drink = -1u>>1;
for (i = x; i >= 0 && drink; --i)///枚举
{
k = t - i * m;
if (drink > k % n) drink = k % n, ans1 = i + k / n;///drinks as little beer as possible
if (k % n == 0) ans2 = i + k / n;
}
if (drink) printf("%d %d\n", ans1, drink);
else printf("%d\n", ans2);
}
return 0;
}

这篇博客详细阐述了一种使用枚举方法解决特定问题的策略,具体问题源自UVa在线评测平台的一个实例,涉及优化饮酒量最小化的数学逻辑。通过代码实现,展示了算法的高效性和解决方案的实用性。
399

被折叠的 条评论
为什么被折叠?



