【模拟】bzoj2760 [JLOI2011]小A的烦恼

注意细节和初始化。

 1 #include<cstdio>
 2 #include<string>
 3 #include<algorithm>
 4 #include<iostream>
 5 using namespace std;
 6 string ans[110],tmp[110][110];
 7 int m,cnt[110],maxv,maxm,n;
 8 int Calc(const string &s,const char &c)
 9 {
10     if(s.empty()) return 0;
11     int p=0,res=0,len=s.length(); string t=s;
12     while(1)
13       {
14         t=t.substr(p,len-p); p=t.find(c);
15         if(p==-1) break;
16         res++; p++;
17       }
18     return res+1;
19 }
20 int main()
21 {
22     scanf("%d",&n);
23     for(int i=1;i<=n;i++)
24       {
25         scanf("%d",&m); maxm=max(maxm,m);
26         for(int j=0;j<=m;j++) cin>>tmp[i][j];
27       }
28     for(int i=1;i<=n;i++)
29       {
30         maxv=0;
31         for(int j=0;j<=maxm;j++)
32           {
33             ans[j]+=tmp[i][j];
34             maxv=max(maxv,cnt[j]=(j==0 ? 1 : Calc(tmp[i][j],',')));
35           }
36         for(int j=0;j<=maxm;j++)
37           for(int k=0;k<=maxv-cnt[j]-(i==n)-(!cnt[j]);k++)
38             ans[j]+=",";
39       }
40     for(int i=0;i<=maxm;i++) cout<<ans[i]<<endl;
41     return 0;
42 }

 

转载于:https://www.cnblogs.com/autsky-jadek/p/4070524.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值