POJ3262 Protecting the Flowers(贪心)

poj3262(比例贪心)(需要简化时间复杂度) 贪心感觉是个不难的算法,这题一开始超时了,简化下就好 #include <iostream> #include <stdio.h> #include <algorithm> using namespace std; struct cow { int T; int D; }; int comp(struct cow a,struct cow b) ... 阅读详情
Protecting the Flowers
Time Limit: 2000MS Memory Limit: 65536K
Total Submissions: 4968 Accepted: 1985

Description

Farmer John went to cut some wood and left N (2 ≤ N ≤ 100,000) cows eating the grass, as usual. When he returned, he found to his horror that the cluster of cows was in his garden eating his beautiful flowers. Wanting to minimize the subsequent damage, FJ decided to take immediate action and transport each cow back to its own barn.

Each cow i is at a location that is Ti minutes (1 ≤ Ti ≤ 2,000,000) away from its own barn. Furthermore, while waiting for transport, she destroys Di (1 ≤ Di ≤ 100) flowers per minute. No matter how hard he tries, FJ can only transport one cow at a time back to her barn. Moving cow i to its barn requires 2 × Ti minutes (Ti to get there and Ti to return). FJ starts at the flower patch, transports the cow to its barn, and then walks back to the flowers, taking no extra time to get to the next cow that needs transport.

Write a program to determine the order in which FJ should pick up the cows so that the total number of flowers destroyed is minimized.

Input

Line 1: A single integer N 
Lines 2..N+1: Each line contains two space-separated integers, Ti and Di, that describe a single cow's characteristics

Output

Line 1: A single integer that is the minimum number of destroyed flowers

Sample Input

6
3 1
2 5
2 3
3 2
4 1
1 6

Sample Output

86

Hint

FJ returns the cows in the following order: 6, 2, 3, 4, 1, 5. While he is transporting cow 6 to the barn, the others destroy 24 flowers; next he will take cow 2, losing 28 more of his beautiful flora. For the cows 3, 4, 1 he loses 16, 12, and 6 flowers respectively. When he picks cow 5 there are no more cows damaging the flowers, so the loss for that cow is zero. The total flowers lost this way is 24 + 28 + 16 + 12 + 6 = 86.


类型:贪心


第一次T掉了。。后来看了题解发现自己的贪心策略不对。。数据太大我的时间复杂度太高

#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <cmath>
using namespace std;
const int maxn = 100000 + 5;
struct node
{
    int t, d;
}a[maxn];
bool cmp(node a, node b)
{
    return a.t * b.d < a.d * b.t;
}
int main()
{
    int n;
    scanf("%d", &n);
    for(int i = 0; i < n; ++i) {
        scanf("%d%d", &a[i].t, &a[i].d);
        a[i].t *= 2;
    }
    sort(a, a + n, cmp);
    long long ans = 0, sum = 0;
    for(int i = 0; i < n; ++i) {
        ans += sum * (long long)a[i].d;
        sum += a[i].t;
    }
    cout << ans << endl;
    return 0;
}
AC代码:

#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <cmath>
using namespace std;
const int maxn = 100000 + 5;
struct node
{
    int t, d;
}a[maxn];
bool cmp(node a, node b)
{
    return a.t * b.d < a.d * b.t;
}
int main()
{
    int n;
    scanf("%d", &n);
    for(int i = 0; i < n; ++i) {
        scanf("%d%d", &a[i].t, &a[i].d);
        a[i].t *= 2;
    }
    sort(a, a + n, cmp);
    long long ans = 0, sum = 0;
    for(int i = 0; i < n; ++i) {
        ans += sum * (long long)a[i].d;
        sum += a[i].t;
    }
    cout << ans << endl;
    return 0;
}



基于mengzi-t5训练生成式模型 【代码】基于mengzi-t5训练生成式模型。 阅读详情

相关推荐

PyTorch实战:用FGSM攻击MNIST分类器(附可视化对比)

本文通过PyTorch实战演示了如何使用FGSM对抗攻击方法攻击MNIST手写数字分类器。文章详细解析了FGSM攻击原理,提供了从环境搭建、模型准备到攻击实施、可视化对比的完整代码实战流程,并探讨了对抗样本的生成与模型鲁棒性评估。

3a9bq4r8t2y的博客 216

【题解】POJ 3262 Protecting the Flowers(贪心)

POJ 3262 Protecting the Flowers 原题 https://vjudge.net/problem/POJ-3262 农夫约翰去砍柴,像往常一样留下了N头(2≤N≤10万头)牛在吃草。当他回来时,他惊恐地发现那群牛正在他的花园里吃他美丽的花。为了尽量减少后续损失,FJ决定立即采取行动,将每头牛运回各自的谷仓。 每头牛i在距离它自己的谷仓Ti分钟(1≤Ti≤2,000,000)的位置。此外,在等待运输时,她每分钟会破坏Di(1≤Di≤100)朵花。无论他如何努力,FJ每次只能将一

bu_shushu的博客 1700

【基金量化研究系列】基金绩效归因模型——Brinson多期归因模型之python实现

文章目录1. 引言2. Brinson多期归因模型的Python实现2.1 基准数据读取模块2.2 持仓数据读取模块2.3 持仓收益与基准计算模块2.4 Brinson多期归因模型核心算法Brinson_Multiple2.5 主函数模块3. 归因结果写在最后 1. 引言 在上文中,我们已经介绍了Brinson归因模型的基本思想。那么,就让我们动起手来,实现这一方法吧! 在Brinson多期归因模型实现的过程中,本文使用模块化方法,将整个实现过程划分为如下五个功能板块: Module 1: 基准数据读取模

Mikey_Sun的博客 2万+

poj 3262 贪心

题意:(翻译一遍)农夫J想要去砍树,留下N头牛,让他们吃草,当他返回的时候,使他焦虑的是  他发现那群牛正在吃他漂亮的花,为了使他接下来的                损失达到最小,他立刻采取行动,把牛赶回牛圈里。每头牛在距离牛圈Ti位置,而且,当牛在等待的时候,他每单位时间吃Di朵花,农夫J一次只能               赶一头牛,需要2*Ti时间(来回),问按照那种赶牛顺序可以使损

sky_zdk的博客 609

别再只调PID了!手把手教你从LC谐振到检波,搞定STM32智能车电磁循迹硬件电路

本文深入解析STM32智能车电磁循迹硬件电路设计,从LC谐振选频到数字信号处理,提供完整的信号链路设计要点与实战技巧。通过优化电磁杆布局和信号放大电路,显著提升赛道位置检测精度,误差可控制在±0.5cm以内,为智能车竞赛提供可靠硬件支持。

weixin_29220405的博客 263

Arduino ESP8266通过 RF433数据收发实验

Arduino ESP8266通过 RF433射频模块实现数据收发实验 写这篇文章,折腾了2天,在没有成功之前,一直在摸索和采坑当中,不要问我黑暗和黎明之间有多长。开发很多时候只问结果,不问过程的,在这里分享来之不易的结果,希望后面的人不要采坑,有成功的案例先河,后面与之相关的应用开发只需要套用模板修改即可实现。 实物搭建 RF433模块 我使用的是这个:nodemcu 本案例开发所使用到的库:RadioHead:http://www.airspayce.com/mikem/

perseverance51博客 3806

poj3262 比率贪心

题意:农夫要把满农场吃花的牛牵回去,每头牛牵回去需要花ti的时间,每头牛每秒吃ci个花,问把所有牛牵回去需要花费最少花的数量,其中ti时间需要x2,并且牛在牵走的过程中不吃花. 思路:一开始我贪心策略想错了,以为单纯按照时间长短来贪,然后再比较花费,后来发现得出答案是错的,有逻辑问题,简单取几个极限就可以证明,其实正确的贪心方法是按照比率来贪,以后遇到这样的就有经验了,按照时间和花费比从小到大排序

练练大脑,有何不好 1115

YOLOv11 改进 - 注意力机制 | LS-YOLO MSFE 多尺度特征提取模块:并行分支结构增强多尺度感知,优化遥感与小目标检测

本文介绍了一种用于滑坡检测的模型LS-YOLO及其在YOLOv11中的结合应用。LS-YOLO首先构建多尺度滑坡数据集MSLD,为模型训练提供丰富数据。设计了基于高效通道注意力、平均池化和空间可分离卷积的多尺度特征提取模块MSFE,充分提取滑坡特征信息。在解耦头中采用膨胀卷积增加模型感受野。我们将MSFE模块集成进YOLOv11,替换部分原有模块。实验表明,改进后的YOLOv11在数据集中表现出色 。

魔改工程师的博客 870

poj 3262 牛毁坏花问题 贪心算法

题意:有n头牛,每头牛回去都需要一定时间,如果呆在原地就会毁坏花朵。问:怎么安排使得毁坏的花朵最少? 思路: 拉走成本最高的。 什么是成本?毁坏花朵的数量。 例如有两种排序 (这里用(a,b)表示题意,a表示往回走的时间,b表示呆在原处毁坏花朵的数量 (a,b) (c,d) 成本为 x*b+(x+a)*d; (c,d) (a,b) ...

271

[QMT量化交易小白入门]-二、如何用miniQMT获取沪深A股的板块列表、历史行情数据和实时行情数据

本专栏主要是介绍QMT的基础用法,常见函数,写策略的方法,也会分享一些量化交易的思路,大概会写100篇左右。QMT的相关资料较少,在使用过程中不断的摸索,遇到了一些问题,记录下来和大家一起沟通,共同进步,自己淋过雨了,希望大家都有一把伞。

木头大左的博客 5651

2 硬件工程师笔面试高频知识考点真题解析——电容

本文全面解析了电容在电子电路中的关键应用与技术要点。主要内容包括:1. 电容选型核心要素:介质材质(陶瓷/电解/钽电容等)、容值精度、耐压等级、温度特性、ESR参数等,不同应用场景(滤波/去耦/谐振等)的选型策略。2. 典型电路应用原理:详细阐述去耦电容布局规则、晶振负载电容作用、共射放大电路旁路电容功能,以及RC电路的滤波/定时等应用。3. 特殊问题解决方案:MLCC啸叫机理与对策、寄生电容影响与消除、高速信号线电容使用禁忌等工程实践难题。4. 安全规范要点:X/Y电容的区别与选用、电解/钽电容防反接措施

XU157303764的博客 1557

POJ 3262 Protecting the Flowers 贪心 巧妙 G++

<span title="Description ">描述 农夫约翰去砍一些木头,留下N(2≤N≤100,000)牛吃草,像往常一样。当他回来时,他发现他的恐惧,群牛在他的花园里吃他美丽的花。<span title="Wanting to minimize the subsequent damage, FJ decided to take immediate action and t

woniupengpeng的专栏 317

【网络安全 | 渗透工具】Githack工具安装及使用教程详析

本文仅分享Githack工具基本安装及使用相关知识不承担任何法律责任。Git是一个非常流行的开源分布式版本控制系统,它被广泛用于协同开发和代码管理。许多网站和应用程序都使用Git作为其代码管理系统,并将其部署到生产环境中以维护其代码库。然而,在配置不当的情况下,可能会导致.git文件夹被直接部署到线上环境中,这可能会导致Git泄露问题。可通过githack下载泄露的Git存储库,以获取包含未加密密码、凭据和敏感信息的站点代码库。使用githack下载Git存储库的方法有两种。本文仅分享。

等风来 3万+

POJ3262 Protecting the Flowers 【贪心】

Protecting the Flowers Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 4418   Accepted: 1785 Description Farmer John went to cut some wood and left N (2 ≤

长风的专栏 2314

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

POJ - 3262 Protecting the Flowers 贪心

传送门:POJ3262 题意:有n个牛在花园,每个牛在被赶走之前每秒吃Di个花朵。赶它回去要花的时间是Ti * 2。问最小损失花朵是多少。 思路:这个样例真是骚,想了好几种贪心方法都能过样例。。然而都是结果都是一样的wa。。 正解:考虑比率 Ti / Di,越小的越先赶走。 证明: 假设序列都由二元组组成,二元组是由D和T组成,那么对一个序列有相邻的两头牛是这样的 ....

WA是一笔财富 342

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

POJ 3262 Protecting the Flowers 贪心

题意很简单。 有n个牛在FJ的花园乱吃。 所以FJ要赶他们回牛棚。 每个牛在被赶走之前每秒吃Di个花朵。赶它回去FJ要花的时间是Ti。在被赶走的过程中牛就不能乱吃了 那么其实我第一感觉就是跟比率有关。 然后简略的证了一下。 假设序列都由二元组组成,二元组是由D和T组成,那么对一个序列有相邻的两头牛是这样的 ..........(a, b) ,(c, d)...........

水 3209

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

【POJ3262】Protecting the Flowers【贪心】

样例就是很直观的贪心... 但是直接按D再T的简单排序就WA了。 正确姿势如下: 考虑两头牛a和b,并且b的下标比a大,时间为Ta、Tb,每分钟吃的花为Da,Db。 若先a再b,则贡献为: W1 = Db * Ta * 2 若先b再a,则贡献为: W2 = Da * Tb * 2 要使第二种方案最优,则 W2 Da * Tb 这样排序下来就得到了拿走牛的顺序。

BraketBN 555

[贪心] poj3262 Protecting the Flowers

Protecting the Flowers Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 5343 Accepted: 2105 DescriptionFarmer John went to cut some wood and left N (2 ≤ N ≤ 100,000) cows eating t

童凌的技术博客 561

Protecting the Flowers POJ - 3262 (贪心)

poj3262 FJ去砍树,然后和平时一样留了 N (2 ≤ N ≤ 100,000)头牛吃草。当他回来的时候,他发现奶牛们正在津津有味地吃着FJ种的美丽的花!为了减少后续伤害,FJ决定立即采取行动:运输每头牛回到自己的牛棚。 每只奶牛i在离牛棚Ti(1 ≤ Ti ≤ 2,000,000) 分钟路程的地方,每分钟吃掉Di(1 ≤ Di ≤ 100)朵花。FJ使尽浑身解数,也只能一次带回一头奶牛。...

xqx_Zi_yu 203

【贪心】POJ 3262 Protecting the Flowers

题目 Protecting the Flowers Time Limit: 2000MS Memory Limit: 65536K Description Farmer John went to cut some wood and left N (2 ≤ N ≤ 100,000) cows eating the grass, as usual. W...

and1403的博客 379

POJ 3262 Protecting the Flowers 贪心比率

Description Farmer John went to cut some wood and left N (2 ≤ N ≤ 100,000) cows eating the grass, as usual. When he returned, he found to his horror that the cluster of cows was in his garden eating ...

RPG_Zero的博客 254

POJ3262 Protecting the Flowers【贪心】

Protecting the FlowersTime Limit: 2000MS Memory Limit: 65536KTotal Submissions: 8663 Accepted: 3501DescriptionFarmer John went to cut some wood and left N (2 ≤ N ≤ 100,000) cows eating the grass, as u...

海岛Blog 1042

poj3262 Protecting the Flowers(贪心)

Total Submissions: 10542 Accepted: 4289 Description Farmer John went to cut some wood and left N (2 ≤ N ≤ 100,000) cows eating the grass, as usual. When he returned, he found to his horror ...

一身清贫怎敢入繁华 351

贪心好题(两种变量的贪心)poj3262 Protecting the Flowers

题意: 有N头奶牛正在吃花,FJ需要将这N头奶牛运输回去,给出每头奶牛被运输的时间(单程,不算往返)和每分钟吃花的数量,求最小的被破坏的花朵数量 题解: 这道题可不能凭感觉去贪心,因为他有两个变量,时间和数量,单纯对一种变量进行贪心无法保证答案的正确性 所以就需要分析得出贪心策略,对于这类题,一般用假设法来判断,如果只是要进行一个粗略的判断,可以这么想: 对于即将被赶走的奶牛,我们自然希望

qq_37816449的博客 471

Protecting the Flowers POJ 3262(贪心)

原题 题目链接 题目分析 有点难度的贪心题,首先考虑在相同时间t内怎么能使损失最少,可以这样来控制相同时间,设想一个子问题,如果只有两头牛,那最后结束时间肯定是一样的,这时候怎么使损失最少,就直接比较t1*d2和t2*d1就行了,如果是第一个小就选牛1,否则选牛二.扩展来讲,就是对所有牛排序,对于牛i,j,按照ti*dj<tj*di的规则规定优先权,最后只需要按顺序搬牛就行了...

dashengchong6303的博客 154

Poj 3262 Protecting the Flowers【贪心】

Protecting the Flowers Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 5907   Accepted: 2335 Description Farmer John went to cut some wood and left N (2 ≤ 

希望的专栏 615
上一篇: NOJ2106 6_多项式输出(模拟)
下一篇: 位运算
GKHack
博客等级 码龄11年 48粉丝 291原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值