發表文章

目前顯示的是 5月, 2014的文章

2013 國中組初賽-題目 A 挑食的大胃王

[解法ㄧ] #include<iostream> using namespace std; int main(){ int T,M,N,K,ans; cin>>T; while(T--){ ans=0; cin>>M>>N>>K; int eat[M][N]; for(int i=0;i<M;i++){            //輸入原始陣列值 for(int j=0;j<N;j++){ cin>>eat[i][j]; } } for(int i=0;i<M;i++){ for(int j=0;j<N;j++){ if(eat[i][j]%2==1){          //除以2餘數等於1 if(i-1>=0)               //將會被挖掉的位置確定 eat[i-1][j]+=2;     //eat[i][j]=eat[i][j]+2 if(j-1>=0) eat[i][j-1]+=2; if(i+1<M) eat[i+1][j]+=2; if(j+1<N) eat[i][j+1]+=2; eat[i][j]+=2; } } } for(int i=0;i<M;i++){               //計算出會被挖掉的值 for(int j=0;j<N;j++){ if(eat[i][j]){ ans++;                  //ans=ans+1 } } } if(K>=3)                            //可食用的白飯量        cout<<N*M*K-ans*3<<endl; else cout<<N*M*K-ans*K<<endl;   } retu

使用memset加快二維陣列初始

一般方法是用雙迴圈來設定二維陣列的值 這裡使用memset來設定陣列初值 #include   <cstring> const   int  X_SIZE  =   60 ; const   int  Y_SIZE  =   30 ; int  matrix [ X_SIZE ][ Y_SIZE ]; inline   void  init_matrix ()   //使用inline加快 {    //設定陣列內的值全為-1   memset ( matrix ,   - 1 ,   sizeof ( matrix ));   } PS: memset(matrix, 1, sizeof(matrix)); //會失敗 memset為字元填入的函式,整數由2或4個位元組(字元)組成 設定的值是0x01,但存入的值卻是0x0101,而導致錯誤的答案 而-1則是0xFF,存入的值是0xFFFF,不會影響答案 原始文章出處: http://jhengjyun.blogspot.tw/2010/02/cc-memset.html

如何trace code & debug

如何trace code & debug