当前位置: 首页 > news >正文

贪心算法

贪心算法

  • 例题
    • 1、股票买卖
      • 题目信息
      • 思路
      • 题解
    • 2、货仓选址
      • 题目信息
      • 思路
      • 题解
    • 3、糖果传递
      • 题目信息
      • 思路
      • 题解
    • 4、雷达设备
      • 题目信息
      • 思路
      • 题解

例题

1、股票买卖

题目信息

在这里插入图片描述
在这里插入图片描述

思路

相邻两天,后>前,则交易一次

题解

#include <bits/stdc++.h>
#define endl '\n'
#define int long long
#define maxsize 100010
using namespace std;int n;
int money[maxsize];signed main()
{ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);cin>>n;int sum=0;for(int i=0;i<n;i++){cin>>money[i];}for(int i=0;i<n-1;i++){int cha=money[i+1]-money[i];if(cha >0){sum+=cha;}}cout<<sum<<endl;return 0;
}

2、货仓选址

题目信息

在这里插入图片描述

思路

在这里插入图片描述

题解

#include <bits/stdc++.h>
#define int long long 
#define int long long 
#define maxsize 100010
using namespace std;int n;
int num[maxsize];signed main()
{ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);cin>>n;for(int i=0;i<n;i++){cin>>num[i];}sort(num,num+n);int c=num[(n-1)/2];int sum=0;for(int i=0;i<n;i++){sum +=abs(num[i]-c);}cout<<sum<<endl;return 0;
}

3、糖果传递

题目信息

在这里插入图片描述

思路

在这里插入图片描述

题解

#include <bits/stdc++.h>
#define int long long
#define endl '\n'
#define maxsize 1000100
using namespace std;int n;
int average;
int a[maxsize],c[maxsize];signed main()
{ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);int sum=0;int count=0;cin>>n;for(int i=1;i<=n;i++) cin>>a[i];for(int i=1;i<=n;i++) sum+=a[i];average=sum/n;for(int i=1;i<=n;i++){c[i]=c[i-1]+average-a[i];}sort(c+1,c+n+1);int xn=c[(1+n)/2];for(int i=1;i<=n;i++) count +=abs(c[i]-xn);cout<<count<<endl;return 0;
}

4、雷达设备

题目信息

在这里插入图片描述

思路

在这里插入图片描述

题解

#include <bits/stdc++.h>
#define int long long
#define maxsize 1010
#define endl '\n'
using namespace std;struct node
{double l;double r;
}qujian[maxsize];bool judge(node a,node b)
{return a.r<b.r;
}int n,d;signed main()
{ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);int x,y;int count=0;bool fail=false;cin>>n>>d;for(int i=0;i<n;i++){cin>>x>>y;if(d<y) fail=true;else{double len=sqrt(d*d-y*y);qujian[i].l=x-len;qujian[i].r=x+len;}}if(fail) cout<<"-1"<<endl;else{sort(qujian,qujian+n,judge);double jilu=qujian[0].r;count=1;for(int i=1;i<n;i++){if(jilu<qujian[i].l){count++;jilu=qujian[i].r;}}cout<<count<<endl;}return 0;
}
http://www.lryc.cn/news/307623.html

相关文章:

  • MySQL基本知识
  • Vue3 (unplugin-auto-import自动导入的使用)
  • 【漏洞复现】大华智慧园区综合管理平台信息泄露漏洞
  • JavaScript的书写方式
  • 第二十篇-推荐-纯CPU(E5-2680)推理-llama.cpp-qwen1_5-72b-chat-q4_k_m.gguf
  • CSS常见选择器
  • [LWC] Components Communication
  • Unity中URP实现水体(水下的扭曲)
  • anaconda指定目录创建环境无效/环境无法创建到指定位置
  • 《Docker极简教程》--Docker在生产环境的应用--Docker在生产环境的部署
  • 算法D31 | 贪心算法1 | 455.分发饼干 376. 摆动序列 53. 最大子序和
  • 在IDEA中创建vue hello-world项目
  • 如何获取pnpm存储目录
  • QT两个类之间使用信号槽
  • 【Ubuntu】使用WSL安装Ubuntu
  • 【Node.js】自动生成 API 文档
  • 小红书3C家电行业种草营销策略打法,纯干货
  • 防火墙的内容安全
  • Redis 管道详解
  • 【Redis】理论进阶篇------浅谈Redis的缓存穿透和雪崩原理
  • Rocky Linux安装部署Elasticsearch(ELK日志服务器)
  • Linux浅学笔记04
  • 【Day59】代码随想录之动态规划_647回文子串_516最长回文子序列
  • ECLIP
  • STM32 +合宙1.54“ 电子墨水屏(e-paper)驱动显示示例
  • 使用Postman和JMeter进行signature签名
  • uni-app nvue vue3 setup中实现加载webview,解决nvue中获取不到webview实例的问题
  • IPD(集成产品开发)—核心思想
  • uniapp android 原生插件开发-测试流程
  • MyCAT从入门到实战(配置文件介绍)