bzoj 2760: [JLOI2011]小A的烦恼
.
题意:这是这题最难的部分,自己看
题解:乱搞
代码:
#include<bits/stdc++.h>
using namespace std;
int n,len[110];
vector<string>ans;
void wk(vector<string>&ans,int x)
{
len[x]=0;
int hh[110],m;
cin>>m;
ans.resize(m+1);
cin>>ans[0];
hh[0]=0;
for(int i=1;i<=m;i++)
{
cin>>ans[i];
hh[i]=0;
for(int j=0;j<ans[i].length();j++)
if(ans[i][j]==',')
hh[i]++;
len[x]=max(len[x],hh[i]);
}
for(int i=0;i<=m;i++)
{
while(hh[i]<=len[x])
{
ans[i]+=',';
hh[i]++;
}
}
}
int main()
{
// cout<<ans.size();
cin>>n;
int sum=0;
for(int i=0;i<n;i++)
{
vector<string>hh;
wk(hh,i);
// cout<<hh.size()<<' '<<ans.size();
// system("pause");
// for(int j=0;j<hh.size();j++)
// cout<<hh[j]<<endl;
for(int j=ans.size();j<hh.size();j++)
{
ans.push_back(string(sum,','));
}
for(int j=hh.size();j<ans.size();j++)
{
hh.push_back(string(len[i]+1,','));
}
for(int j=0;j<hh.size();j++)
ans[j]+=hh[j];
sum+=len[i]+1;
}
for(int i=0;i<ans.size();i++)
{
ans[i].erase(ans[i].size()-1);
cout<<ans[i]<<endl;
}
}