用了很愚蠢的寫法 , 所謂的暴力解 ?
但最後還是眼睛長包皮, 沒有看清楚spec 囧
// Ecological Bin Packing
#include iostream
using namespace std;
struct bin {
int brown;
int green;
int clean;
};
bool input(struct bin in[])
{
for(int i = 0; i <>> in[ i ].brown ) ) return false;
if ( !( cin >> in[ i ].green ) ) return false;
if ( !( cin >> in[ i ].clean ) ) return false;
}
return true;
}
int main()
{
bin mybin[3];
while( input( mybin ) ) {
char condition[6][3];
int move[6];
condition[0][0] = 'B';
condition[0][1] = 'G';
condition[0][2] = 'C';
move[0] = mybin[0].green + mybin[0].clean + mybin[1].brown + mybin[1].clean + mybin[2].green + mybin[2].brown;
condition[1][0] = 'B';
condition[1][1] = 'C';
condition[1][2] = 'G';
move[1] = mybin[0].green + mybin[0].clean + mybin[1].brown + mybin[1].green + mybin[2].clean + mybin[2].brown;
condition[2][0] = 'C';
condition[2][1] = 'B';
condition[2][2] = 'G';
move[2] = mybin[0].green + mybin[0].brown + mybin[1].green + mybin[1].clean + mybin[2].clean + mybin[2].brown;
condition[3][0] = 'C';
condition[3][1] = 'G';
condition[3][2] = 'B';
move[3] = mybin[0].green + mybin[0].brown + mybin[1].brown + mybin[1].clean + mybin[2].green + mybin[2].clean;
condition[4][0] = 'G';
condition[4][1] = 'C';
condition[4][2] = 'B';
move[4] = mybin[0].brown + mybin[0].clean + mybin[1].brown + mybin[1].green + mybin[2].green + mybin[2].clean;
condition[5][0] = 'G';
condition[5][1] = 'B';
condition[5][2] = 'C';
move[5] = mybin[0].brown + mybin[0].clean + mybin[1].green + mybin[1].clean + mybin[2].green + mybin[2].brown;
int min = move[0];
int idx = 0;
for ( int i = 1; i < min =" move[i];" idx =" i;" idx =" i;" idx =" i;" idx =" i;">
2007年10月30日 星期二
ACM102
2007年10月29日 星期一
2007年10月28日 星期日
2007年10月21日 星期日
ACM V1 100
話說寫這個玩意 讓我死了不少腦細胞
常常就是認為沒錯 但就是少考慮了些什麼
給我的打擊不小, 看似非常簡單的小程式, 當你沒去注意一些小細節時, 你會失敗
也是我常常會犯的錯
從程式設計到做什麼事情都一樣
有些東西沒有說得很清楚, 例如人家給的規格
但你自己要去想到
從這個ACM test讓我領悟到不少東西 ^^
// ACM Voulme 1 100
// The 3n+1 problem
#include
using namespace std;
int iGetLength ( int num )
{
int iCircle_Length=1;
while ( num > 1 ){
if ( ( num % 2 ) == 0 ){
num = num / 2;
} else {
num = num * 3 + 1;
}
++iCircle_Length;
}
return iCircle_Length;
}
int main ()
{
int i,j,c;
int Max_Circle_Length;
while( cin >> i && cin >> j){
cout << i << " " << j << " ";
if ( i > j ){
c = j;
j = i;
i = c;
}
Max_Circle_Length = 0;
for ( int n = i; n <= j; ++n){
c = iGetLength( n );
if( c > Max_Circle_Length )
Max_Circle_Length=c;
}
cout << Max_Circle_Length << endl;
}
return 0;
}