题解 | #Karashi的生日蛋糕#
吐槽
牛客的评测机我是真的无语,这题输出数据居然只能用printf,但凡用一点cout就超时,就这卡了我一个小时。。。所以以后遇到大规模数据输出还是都用printf保险,防止再次被坑。
思路
这题没什么思维难度,直接暴力填数就行,从上次填的位置往后继续填就行,如此循环反复。就是这模拟一直WA把我人给WA麻了,不然就前两百了。
代码
#include<bits/stdc++.h>
using namespace std;
int main(){
int n,k;
cin>>n>>k;
vector<int> ans[k+5];
for(int i=1;i<=k;i++)ans[i].resize(n+5);
int cur = 1;
for(int i=1;i<=n;i++){
int cnt = i%k;
for(int j=1;j<=k;j++){
ans[j][i]=i/k;
}
for(int j=1;j<=cnt;j++){
ans[cur][i]++;
cur++;
if(cur>k)cur=1;
}
}
for(int i=1;i<=k;i++){
for(int j=1;j<=n;j++){
printf("%d ",ans[i][j]);
}
printf("\n");
}
return 0;
}