BZOJ2760: [JLOI2011]小A的烦恼
具体思路:模拟题意就好,好像没啥坑点
AC代码
#include<bits/stdc++.h> using namespace std; int n,i,j,m[200],mx[200],k,maxm; string file[111][111][111]; string answer[111][10010],S; int main() { scanf("%d",&n); for(i=1;i<=n;i++) { scanf("%d",&m[i]);m[i]++;maxm=max(maxm,m[i]); for(j=1;j<=m[i];j++) { cin>>S; if(j==1) { file[i][j][1]=S; continue; } S=S+","; int len=S.length(),last=0,top=0; for(k=0;k<len;k++) if(S[k]==',') { top++; file[i][j][top]=S.substr(last,k-last); last=k+1; } mx[i]=max(mx[i],top); } } int now=0; for(i=1;i<=n;i++) { for(j=1;j<=m[i];j++) for(k=1;k<=mx[i];k++) answer[j][now+k]=file[i][j][k]; now+=mx[i]; } for(i=1;i<=maxm;i++) { cout<<answer[i][1]; for(j=2;j<=now;j++)cout<<','<<answer[i][j]; puts(""); } return 0; }