求助,70pts剩下全WA
查看原帖
求助,70pts剩下全WA
316827
Temperature_automata楼主2021/8/4 20:47

RT,代码如下:

#include <iostream>
#include <cstdio>

using namespace std ;

const int maxn = 2e3+5 ;
long long t , k ; 
long long c[maxn][maxn] ;
long long vis[maxn][maxn] ;

void init() {
	c[0][0] = 1 ;
	
	for ( long long i = 1 ; i <= 2000 ; i ++ ) {
		for ( long long j = 0 ; j <= i ; j ++ ) {
			if(j == 0) {
				c[i][j] = 1 ;
			}
			else {
				c[i][j] = c[i-1][j]+c[i-1][j-1] ;
				if(c[i][j]%k==0) vis[i][j] = 1 ;
			}
		}
	}
	
	for ( long long i = 1 ; i <= 2000 ; i ++ ) {
		for ( long long j = 0 ; j <= 2000 ; j ++ ) {
			if(j==0) {
				vis[i][j] += vis[i-1][j] ;
			}
			else {
				vis[i][j] += vis[i-1][j]+vis[i][j-1]-vis[i-1][j-1] ;
			}
		}
	}
	
}

int main ( ) {
	
	cin >> t >> k ;
	
	init() ;
	
	while(t--) {
		long long n , m ;
		cin >> n >> m ;
		cout << vis[n][min(m,n)] << endl ;
	}

//	for ( int i = 0 ; i <= 7 ; i ++ ) {
//		for ( int j = 0 ; j <= 7 ; j ++ ) {
//			cout << vis[i][j] << " " ;
//		}
//		cout << endl ;
//	}
//	
//	for ( int i = 0 ; i <= 7 ; i ++ ) {
//		for ( int j = 0 ; j <= i ; j ++ ) {
//			cout << c[i][j] << " " ;
//		}
//		cout << endl ;
//	}

  return 0 ;
}

2021/8/4 20:47
加载中...