#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