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

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\n",ans);
return 0;
}

  

CF922D Robot Vacuum Cleaner 贪心+排序的更多相关文章

  1. Codeforces 922 C - Robot Vacuum Cleaner (贪心、数据结构、sort中的cmp)

    题目链接:点击打开链接 Pushok the dog has been chasing Imp for a few hours already. Fortunately, Imp knows that ...

  2. CodeForces - 922D Robot Vacuum Cleaner (贪心)

    Pushok the dog has been chasing Imp for a few hours already. Fortunately, Imp knows that Pushok is a ...

  3. Codeforces Round #461 (Div. 2) D. Robot Vacuum Cleaner

    D. Robot Vacuum Cleaner time limit per test 1 second memory limit per test 256 megabytes Problem Des ...

  4. 【Codeforces 922D】Robot Vacuum Cleaner

    [链接] 我是链接,点我呀:) [题意] 让你把n个字符串重新排序,然后按顺序连接在一起 使得这个组成的字符串的"sh"子序列最多 [题解] /* * 假设A的情况好于B * 也就 ...

  5. 489. Robot Room Cleaner扫地机器人

    [抄题]: Given a robot cleaner in a room modeled as a grid. Each cell in the grid can be empty or block ...

  6. HDU 4442 Physical Examination(关于贪心排序)

    这个题目用贪心来做,关键是怎么贪心最小,那就是排序的问题了. 加入给定两个数a1, b1, a2, b2.那么如果先选1再选2的话,总的耗费就是a1 + a1 * b2 + a2; 如果先选2再选1, ...

  7. 2017 Multi-University Training Contest - Team 1 1002&&HDU 6034 Balala Power!【字符串,贪心+排序】

    Balala Power! Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others)T ...

  8. [LeetCode] Robot Room Cleaner 扫地机器人

    Given a robot cleaner in a room modeled as a grid. Each cell in the grid can be empty or blocked. Th ...

  9. LeetCode - Robot Room Cleaner

    Given a robot cleaner in a room modeled as a grid. Each cell in the grid can be empty or blocked. Th ...

随机推荐

  1. 如何在 arm 官网上找到合适的手册

    http://infocenter.arm.com/help/advanced/help.jsp 在这里输入合适的版号即可 这样就可以不用去 CSDN 了 100000_0000_00_EN - AR ...

  2. Docker系列5--一些问题及解决

    1. 存储问题 1.1 挂载目录权限问题 在使用swarm创建服务的时候要挂载存储来获取运行文件,及写日志出去. 可运行文件相当于在集群中所有地方应该都能访问到,所以使用了NFS文件系统,在集群中所有 ...

  3. Idea 使用 Junit4 进行单元测试

    目录 Idea 使用 Junit4 进行单元测试 1. Junit4 依赖安装 2. 编写测试代码 3. 生成测试类 4. 运行 Idea 使用 Junit4 进行单元测试 1. Junit4 依赖安 ...

  4. 第八讲,TLS表(线程局部存储)

    一丶复习线程相关知识 首先讲解TLS的时候,需要复习线程相关知识,  (thread local storage ) 1.了解经典同步问题 首先我们先写一段C++代码,开辟两个线程去跑,看看会不会出现 ...

  5. (二十六)JavaBean

    一.定义 1 JavaBean是一个遵循特定写法的Java类,它通常具有如下特点: 这个Java类必须具有一个无参的构造函数 属性必须私有化. 私有化的属性必须通过public类型的方法暴露给其它程序 ...

  6. (九)SpringBoot之错误处理

    一.错误处理方法 1.Spring Boot 将所有的错误默认映射到/error, 实现ErrorController 2.添加自定义的错误页面   二.Spring Boot 将所有的错误默认映射到 ...

  7. iframe滚动条充当浏览器滚动条

    在做博客项目的时候,使用了iframe,方便根据选择的文章类别切换显示的内容,但是文章一般都有很多,通过bootstrap的媒体列表的方式显示的话,iframe是一定会出现滚动条的,特别是我添加了一个 ...

  8. vue中子组件的created、mounted钩子中获取不到props中的值问题

    父子组件通信 这个官网很清楚,也很简单,父组件中使用v-bind绑定传送,子组件使用props接收即可 例如: 父组件中: <template> <div> <head- ...

  9. sql 添加变量

    在sql语句中添加变量. declare @local_variable data_type 声明时需要指定变量的类型, 可以使用set和select对变量进行赋值, 在sql语句中就可以使用@loc ...

  10. Python练习_初识数据类型_day3

    题目 1. 作业 1,有变量name = "aleX leNb" 完成如下操作: 1) 移除 name 变量对应的值两边的空格,并输出处理结果 2) 移除name变量左边的&quo ...