求问大家代码出了什么问题,有几个可以过

P2724 [USACO3.1] 联系 Contact

@[ysj1173886760](/space/show?uid=54825) 排版啊.
by 向noip冲刺 @ 2018-06-26 06:27:40


@[向noip冲刺](/space/show?uid=97385) emm怎么排版呢..
by ysj1173886760 @ 2018-06-26 12:28:28


@[ysj1173886760](/space/show?uid=54825) 加上```cpp这句话 然后贴上代码然后再打 ``` 这句话
by 向noip冲刺 @ 2018-06-26 14:27:44


再打``` @[ysj1173886760](/space/show?uid=54825)
by 向noip冲刺 @ 2018-06-26 14:28:00


@[向noip冲刺](/space/show?uid=97385) ```cpp #include<iostream> #include<algorithm> #include<string> using namespace std; int a,b,n,tot; struct aa { int len,id,cnt; }rec[600005]; int c[200005]; void work(int x,int len) { int now=1,sum=0; for(int i=x;i>=x-len+1;i--) { sum+=now*c[i]; now*=3; } rec[sum].len=len; rec[sum].id=sum; rec[sum].cnt++; } bool cmp(const aa &a,const aa &b) { if(a.cnt==b.cnt) { if(a.len==b.len)return a.id<b.id; return a.len<b.len; } return a.cnt>b.cnt; } void tran(int x) { int leng=0,temp[50]; while(x) { leng++; temp[leng]=x%3; x/=3; } for(int i=leng;i>=1;i--)cout<<temp[i]-1; } int main() { cin>>a>>b>>n; string temp; while(cin>>temp) { for(int i=0;i<temp.size();i++) { tot++; if(temp[i]=='1')c[tot]=2; else c[tot]=1; } } b=min(tot,b); for(int i=a;i<=b;i++) for(int j=tot;j>=i;j--) work(j,i); sort(rec+1,rec+500000,cmp); int now=1; int m=0; for(int i=1;i<=500000;i++) { if(rec[i].cnt==0)break; m++; } for(int i=1;i<=n;i++) { cout<<rec[now].cnt<<endl; int t=0; for(int j=now;j<=m;j++) { if(rec[j].cnt==rec[now].cnt) { tran(rec[j].id); if(j==m) { cout<<endl; return 0; } cout<<" "; t++; if(t%6==0)cout<<endl; } else { now=j; break; } } if(t%6!=0)cout<<endl; } return 0; } ```
by ysj1173886760 @ 2018-06-27 12:47:22


|