蓝桥杯省赛无忧 第二章 基础算法 课件28 贪心

发布时间:2024年01月19日

在这里插入图片描述

01 贪心算法介绍

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

02 贪心算法实现步骤

在这里插入图片描述

03 常见贪心模型和例题

在这里插入图片描述

#include <bits/stdc++.h>
using namespace std;
using ll = long long;
int main()
{
    ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
    int n ;cin >> n;
    vector<ll> a(n);
    vector<ll> b(n);
    for(auto &x : a)cin >> x;
    sort(a.begin(),a.end());
    b[0]=a[0];
    for(int i = 1;i < n;i++){
        b[i]=a[i]-a[i-1];
    }
    sort(b.begin(),b.end());

    cout << b[0] <<'\n';
    return 0;
}

在这里插入图片描述

#include <bits/stdc++.h>
using namespace std;
int main()
{
  // 请在此输入您的代码
  int n;
  scanf("%d",&n);
  int arr[n];
  for(int i=0;i<n;i++)
  {
    scanf("%d",&arr[i]);
  }
  sort(arr,arr+n);
  int sum=0;
  for(int j=0;j<n-1;j++)
  {
    arr[j+1]=arr[j]+arr[j+1];
    sum+=arr[j+1];
  }
  printf("%d",sum);
  return 0;
}

在这里插入图片描述

#include<bits/stdc++.h>
const int N=1e6+9;
using namespace std;
char s[N];
int main(){
    int n,x;
    cin>>n>>x;
    cin>>s+1;
    sort(s+1,s+1+n);
    if(s[1]==s[n]){
        for(int i=1;i<=n/x+(n%x?1:0);i++)   cout<<s[i];
    }
    else if(s[1]==s[x]){
        for(int i=x;i<=n;i++)   cout<<s[i];
    }
    else cout<<s[x];

    return 0;
}
文章来源:https://blog.csdn.net/weixin_74774974/article/details/135706025
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。