ZOJ 1048 1049 1051

beginner的题也太简单了吧。

 

1048, 竟然是求个平均数,刚看了我还不太敢信呢。

 

1049, 与是一道很简单的数学题,只是起初我没有注意到半圆,费了一番周折,还是要细心啊。

 

1051, 做模拟,计算状态变化的,。表达错让我郁闷了一会,哈哈。

 

把1051的代码帖上来,大家轻拍。

#include<iostream> using namespace std; int dish[22][22]; int dna[16]; int sum[22][22]; char rep[4] = { '.', '!', 'X', '#'}; void calcu_sum( void) { for( int i=1; i<=20; i++) for( int j=1; j<=20; j++) sum[i][j] = dish[i-1][j] + dish[i][j-1] + dish[i][j] + dish[i][j+1] + dish[i+1][j]; } inline void change( int i, int j) { dish[i][j] += dna[ sum[i][j] ]; if( dish[i][j] > 3) dish[i][j] = 3; else if( dish[i][j] < 0) dish[i][j] = 0; } void update_dish( void) { for( int i=1; i<=20; i++) for( int j=1; j<=20; j++) change( i, j); } int main(void) { int N; cin >> N; while( N > 0) { N--; int day; cin >> day; for( int i=0; i< 16; i++) cin >> dna[i]; for( int i=1; i<=20; i++) for( int j=1; j<=20; j++) cin >> dish[i][j]; while( day > 0) { day--; calcu_sum(); update_dish(); } for( int i=1; i<=20; i++) { for( int j=1; j<=20; j++) cout<< rep[ dish[i][j] ]; cout<<endl; } if( N > 0) cout<<endl; } return 0; }

你可能感兴趣的:(ZOJ 1048 1049 1051)