D. Robot Vacuum Cleaner(贪心,排序)

    技术2022-07-10  101

    其 实 还 是 比 较 玄 学 的 做 法 , 所 有 即 使 想 到 一 点 也 没 有 写 其实还是比较玄学的做法,所有即使想到一点也没有写 ,使

    首先容易想到要是让前面的S尽可能多就好了

    所 以 直 接 按 照 S 在 字 符 串 中 所 占 的 比 重 从 小 到 大 排 序 所以直接按照S在字符串中所占的比重从小到大排序 S

    #include <bits/stdc++.h> using namespace std; #define int long long int n; const int maxn=3e5+10; struct p{ int l,r,len; string s; double mi; }a[maxn]; bool com(p a,p b){ return a.mi>b.mi; } signed main() { cin>>n; for(int i=1;i<=n;i++) { cin>>a[i].s; a[i].len=a[i].s.length(); for(int j=0;j<a[i].s.length();j++) { if(a[i].s[j]=='s') a[i].l++; else a[i].r++; } a[i].mi=a[i].l*1.0/(double)a[i].len; } sort(a+1,a+1+n,com); int ans=0,q=0,w=0; for(int i=1;i<=n;i++) for(int j=0;j<a[i].len;j++) { if(a[i].s[j]=='s') q++; else w++,ans+=q; } cout<<ans; }
    Processed: 0.021, SQL: 9