zoukankan      html  css  js  c++  java
  • CF922D Robot Vacuum Cleaner 贪心+排序

    正确的贪心方法:按照比例排序. 

    code: 

    #include <bits/stdc++.h>  
    #define N 200000 
    #define ll long long 
    #define setIO(s) freopen(s".in","r",stdin) 
    using namespace std; 
    int n;  
    char str[N],S[N];   
    struct Node 
    {
        int l,r; 
        double perc; 
    }t[N]; 
    bool cmp(Node a,Node b) 
    {
        return a.perc>b.perc; 
    }
    int main() 
    {
        int i,j,cnt=0; 
        // msetIO("input"); 
        scanf("%d",&n);          
        for(i=1;i<=n;++i) 
        {
            scanf("%s",str+1);             
            int len=strlen(str+1),s=0; 
            t[i].l=cnt+1; 
            for(j=1;j<=len;++j) ++cnt, S[cnt]=str[j],s+=(str[j]=='s');              
            t[i].r=cnt; 
            t[i].perc=(double)s/len;            
        }   
        ll pre=0,ans=0; 
        sort(t+1,t+1+n,cmp); 
        for(i=1;i<=n;++i) 
        {
            int l=t[i].l; 
            int r=t[i].r;  
            for(j=l;j<=r;++j) 
            {
                if(S[j]=='s') 
                {
                    ++pre; 
                } 
                else 
                {
                    ans+=pre;   
                }
            }
        }
        printf("%lld
    ",ans); 
        return 0; 
    }
    

      

  • 相关阅读:
    hdoj_1556Color the ball
    wchar_t与char转换(总结)
    算法艺术——网络最大流
    poj_3268Silver Cow Party
    poj_2352Stars
    BellmanFord模板
    saas模式
    什么是管道
    什么是CMMI
    saas模式
  • 原文地址:https://www.cnblogs.com/guangheli/p/11614789.html
Copyright © 2011-2022 走看看