D. Feeding Chicken(构造)
题目大意:将k个鸡放到一个n*m的矩阵中,要求每个鸡所占的rice的个数只差最小 题解:构造,设一共有cnt个rice,可以分cnt/k个,即每一只鸡要么占用cnt/k个rice,要么占cnt/k+1个rice。蛇形跑一边矩阵即可。 注意:要判断当前鸡的个数,即如果当前鸡的个数达到k个,那么放置完毕,鸡的数量不能再增长,而且剩下的格子一定是"."。 #include<bits/stdc++.h> using namespace std; const int N=1E2+7; char arr[N][N]; char mark[N][N]; string s="1abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"; void solve(){ int n,m,k; scanf("%d%d%d",&n,&m,&k); for(int i=1;i<=n;i++) scanf("%s",arr[i]+1); int cnt=0; for(int i=1;i<=n;i++) for(int j=1;j<=m;j++) if(arr[i][j]=='R') cnt++; int x=cnt/k; int a=cnt%k; int pos=1; int sum=0; for(int i=1;i<=n;i++){ if(i