MLE求助,感觉也没多少,怎么超内存了呢

P1781 宇宙总统

你重载运算符之后,函数自己还在反复使用自己啊,不就爆空间了嘛 这两行 return a.length()>b.length(); return a>b;
by 1612855242ytq @ 2024-01-28 19:39:23


我一般不用这种方法,所以我也不确定呢
by 1612855242ytq @ 2024-01-28 19:41:12


@[1612855242ytq](/user/108428) 这个内部的运算符也会被重载么?
by xiuman @ 2024-01-28 20:23:10


@[xiuman](/user/1118703) 我也不太懂的,感觉也没别的地方会超空间了
by 1612855242ytq @ 2024-01-28 20:25:22


``` return a.length()>b.length(); return a>b; ``` 没问题的``` #include<bits/stdc++.h> using namespace std; bool cmp(string x,string y){ if(x.size() != y.size()){ return x.size()>y.size(); } return x>y; } int main(){ int n; cin>>n; string a[25],b[25]; for(int i=1;i<=n;i++){ cin>>a[i]; b[i]=a[i]; } sort(a+1,a+n+1,cmp); int max_i; for(int i=1;i<=n;i++){ if(b[i]==a[1]){ max_i=i; break; } } cout<<max_i<<endl<<a[1]; return 0; } ```
by yinzixia @ 2024-04-20 13:40:36


return后会直接结束的
by yinzixia @ 2024-04-20 13:42:12


``` #include<bits/stdc++.h> using namespace std; bool cmp(string x,string y){ if(x.size() != y.size()){ return x.size()>y.size(); } return x>y; } int main(){ int n; cin>>n; string a[25],b[25]; for(int i=1;i<=n;i++){ cin>>a[i]; b[i]=a[i]; } sort(a+1,a+n+1,cmp); int max_i; for(int i=1;i<=n;i++){ if(b[i]==a[1]){ max_i=i; break; } } cout<<max_i<<endl<<a[1]; return 0; } ```
by yinzixia @ 2024-04-20 13:42:38


``` bool operator>(string a,string b){ if(a.length()!=b.length()){ return a.length()>b.length(); } return a>b; } ``` operator>应该是不合法的
by yinzixia @ 2024-04-20 13:44:43


|