Timus 1820

#include <iostream>
using namespace std;

int main() {
int n, k;
cin
>>n>>k;
if( k > n )
n
= k;
n
*= 2;
if( n % k == 0)
cout
<<n/k<<endl;
else
cout
<<(n/k + 1)<<endl;

return 0;
}

这个代码是看discuss的,为什么总可以把N块要两面个煎一次的牛扒,看成2N块只需要煎一面的牛扒呢?

#include <iostream>
using namespace std;

int main() {
int n, k, m, r, d, min , tmin;
cin
>>n>>k;

min
= 2 * ( n / k ) + ( n % k == 0 ? 0 : 2);
for(int i = 0; i <= k/2; i++) {
m
= k + i;

r
= n % m;
d
= n / m;

tmin
= d * 3;

if( r != 0 )
tmin
+= 2;

if( min > tmin )
min
= tmin;
}

printf(
"%d\n", min);

return 0;
}

我原来的这个方法又错在哪? T_T

posted @ 2011-07-26 17:25  DOF_KL  阅读(155)  评论(0编辑  收藏  举报