最近老師教了狗狗怎麼算組合數,狗狗又想到了一個問題。。。ide
狗狗定義C(N,K)表示從N個元素中不重複地選取K個元素的方案數。spa
狗狗想知道的是C(N,K)的奇偶性。code
固然,這個成天都總是用豎式算123456789*987654321=?的人不會讓你那麼讓本身那麼輕鬆,它說:「N和K均可能至關大。」blog
可是狗狗也犯難了,因此它就找到了你,想請你幫他解決這個問題。get
輸入格式:io
第1行:一個正整數t,表示數據的組數。event
第2~2+t-1行:兩個非負整數N和K。(保證k<=n)class
輸出格式:cli
每一組輸入,若是C(N,K)是奇數則輸出1,不然輸出0。sed
數據範圍
對於30% 的數據,n<=10^2 t<=10^4
對於50% 的數據,n<=10^3 t<=10^5
對於100%的數據,n<=10^8 t<=10^5
打表找規律
1 #include <cstdio> 2 3 const int N(100); 4 int C[233][223]; 5 6 int main() 7 { 8 freopen("out.txt","w",stdout); 9 for(int i=0; i<=N; ++i) 10 { 11 C[i][i]=C[i][0]=1; 12 for(int j=1; j<i; ++j) 13 C[i][j]=C[i-1][j-1]+C[i-1][j]; 14 } 15 for(int i=0; i<=100; ++i) 16 { 17 for(int j=0; j<=i; ++j) 18 { 19 //if(i&j) printf("%d %d--",i,j); 20 if((i&j)==j) printf("%d %d 1\n",i,j); 21 if(C[i][j]&1) printf("%d %d\n",i,j); 22 } 23 // printf("%d--%d : %d \n",i,j,C[i][j]&1); 24 puts(""); 25 } 26 return 0; 27 }
1 #include <cstdio> 2 3 inline void read(int &x) 4 { 5 x=0; register char ch=getchar(); 6 for(; ch>'9'||ch<'0'; ) ch=getchar(); 7 for(; ch>='0'&&ch<='9'; ch=getchar()) x=x*10+ch-'0'; 8 } 9 10 int Presist() 11 { 12 int t; read(t); 13 for(int n,m; t--; ) 14 read(n),read(m), 15 printf("%d\n",((n&m)==m)); 16 return 0; 17 } 18 19 int Aptal=Presist(); 20 int main(int argc,char**argv){;}