1 solutions
-
1
一眼就想起了 ACWING 上一道神秘的题目 实则这题就是个贪心,对于任意两个字符串,直接看哪个排前面收益更大哪个排前面就完事了,剩下就交给神秘的sort就得到了feimeist的代码
#include <bits/stdc++.h> using namespace std; int n; string s[200005]; long long yali(string s)//依旧yali { long long k=0,ans=0; for(int i=s.size()-1;i>=0;i--) { if(s[i]>='0'&&s[i]<='9') { k+=s[i]-'0'; } else { ans+=k; } } return ans; } int p[200005]; bool cmp(int a,int b) { string x,y; x=s[a]; y=s[b]; if(x==y||yali(x+y)==yali(y+x)) { return a>b; } return yali(x+y)>yali(y+x); } int main() { cin >> n; for(int i=0;i<n;i++) { cin >> s[i]; p[i]=i; } sort(p,p+n,cmp); string t=""; for(int i=0;i<n;i++) { t+=s[p[i]]; } cout << yali(t); }
Information
- ID
- 356
- Time
- 1000ms
- Memory
- 256MiB
- Difficulty
- 10
- Tags
- (None)
- # Submissions
- 2
- Accepted
- 2
- Uploaded By