码迷,mamicode.com
首页 > 其他好文 > 详细

细节模拟——cf1267L

时间:2020-02-08 19:38:31      阅读:76      评论:0      收藏:0      [点我收藏+]

标签:for   mem   name   har   --   col   i++   memcpy   特殊   

细节很多,改了好久。。

/*
按阶梯状贪心填入字符,当第k行被填满后,再去填其他空位 
*/
#include<bits/stdc++.h>
using namespace std;
#define N 2005

char s[N*N],t[N*N],ans[N][N];
int n,l,k,len;

int main(){
    cin>>n>>l>>k;
    scanf("%s",s+1);
    len=n*l;
    memcpy(t,s,sizeof s);
    sort(t+1,t+1+len);
    
    int p=0;
    if(k==1){//特殊情况 
        for(int i=1;i<=n;i++){
            for(int j=1;j<=l;j++)
                cout<<t[++p];
            puts("");
        }
    }
    
    int up=1,right=1;
    while(1){
        for(int i=up;i<=k;i++)
            ans[i][right]=t[++p];
        for(int i=k;i>=up+1;i--)
            if(ans[i][right]!=ans[i-1][right]){
                up=i;break;
            }
        if(up==k||right==l)break;
        right++;
    }
    
    for(int j=1;j<=l;j++)
        if(ans[k][j]==0)ans[k][j]=t[++p];    
    
    for(int i=1;i<=n;i++)
        for(int j=1;j<=l;j++)
            if(ans[i][j]==0)ans[i][j]=t[++p];
    
    for(int i=1;i<=n;i++)cout<<(ans[i]+1)<<\n;
} 

 

细节模拟——cf1267L

标签:for   mem   name   har   --   col   i++   memcpy   特殊   

原文地址:https://www.cnblogs.com/zsben991126/p/12284497.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!