本文共 906 字,大约阅读时间需要 3 分钟。
/**题意:有n个同学,k辆车,d天(每天n个同学去一个地方) 问经过d天后,任意的多个同学不能总在一起d天里,每天怎样分配车辆题解:一个构造题,求0 ~ n的k进制下的数 + 1; 注: n > k ^ d 则不能构造**/#include#include #include #include #include using namespace std;int a[1005][1005];int main(){ int n,k,d; while(cin >> n >> k >> d){ if(double(n) > pow((double)k,d)) cout << -1 << endl; else { memset(a,0,sizeof(a)); for(int S = 0;S < n;S++) { int tmp = S,j = 0; for(int j = 0;tmp;j++) { a[j][S] = tmp % k; tmp /= k; } } for(int i = 0;i < d;i++){ for(int S = 0;S < n - 1;S++){ cout << a[i][S] + 1 << " "; } cout << a[i][n-1] + 1 << endl; } } } return 0;}
转载地址:http://rcsgi.baihongyu.com/