【蓝桥每日一题]-贪心(保姆级教程 篇1)#拼数 #合并果子 #凌乱yyy

目录

[题目: 拼数](#题目: 拼数)

思路:

[题目: 合并果子](#题目: 合并果子)

思路:

题目:凌乱yyy

思路:


题目:拼数

思路:

思路很简单。举个例子:对于a=321,b=32。我们发现a+b=32132,b+a=32321,那么我们当然要后者,所以整个数组都按这个排列即可。

复制代码
#include <iostream>                 //拼数P1012
#include <algorithm>
#include <string>
using namespace std;
bool com(string a,string b)
{
	return a+b>b+a;               //对于a=321,b=32,a+b=32132,b+a=32321,
}                            	  

int main()
{
	string s[25];int n;cin>>n;
	for(int i=1;i<=n;i++) cin>>s[i];
	sort(s+1,s+n+1,com);
	for(int i=1;i<=n;i++) cout<<s[i];
	
	return 0;
}

题目:合并果子

思路:

贪心(每次都花费最少代价)我们合并后插入排序即可。

也可以直接使用优先级队列priority_queue,之所以priority_queue也可以通过是因为队伍里面本来就是有序的,再插入时排序极快。

复制代码
#include <iostream>                      
#include <algorithm>              
using namespace std;
int main(){
	int n,a[10001],ans=0;
	cin>>n;
	for(int i=0;i<n;i++)cin>>a[i];
	sort(a,a+n);
	for(int i=1;i<n;i++){
		ans+=a[i-1]+a[i];                      
		a[i]=a[i-1]+a[i];                 //把合并后的数放到a[i]
		for(int j=i+1;j<n;j++){
			if(a[j-1]>a[j])swap(a[j-1],a[j]);   //交换排序,覆盖排序都可以(因为都是一趟就行),就是不要快排(因为知道要几趟)
			else break;
		}
	}
	cout<<ans;
	return 0;
}

题目:凌乱yyy

思路:

我们只要按照结束时间去即可,然后能赶上这个比赛就参加,不能就不参加。没了

复制代码
#include <iostream>                         
#include <algorithm>
using namespace std;
struct text{
	int sta;
	int end;
};
bool cmp(text a,text b)                      //当下最优化,谁先结束,就选谁
{
	return a.end<b.end;
}
int main()
{
	int n,ans=1;cin>>n;text line[n];         //共n场考试
	for(int i=0;i<n;i++) scanf("%d %d",&line[i].sta,&line[i].end);
	sort(line,line+n,cmp);                 //将其按结束时间排序
	int tem=line[0].end;
	for(int i=1;i<n;i++)
	if(tem<=line[i].sta){ans++;tem=line[i].end;}
	cout<<ans;
	return 0;
}
相关推荐
电鱼智能的电小鱼3 小时前
基于电鱼 AI 工控机的智慧工地视频智能分析方案——边缘端AI检测,实现无人值守下的实时安全预警
网络·人工智能·嵌入式硬件·算法·安全·音视频
孫治AllenSun3 小时前
【算法】图相关算法和递归
windows·python·算法
格图素书4 小时前
数学建模算法案例精讲500篇-【数学建模】DBSCAN聚类算法
算法·数据挖掘·聚类
我是李武涯5 小时前
从`std::mutex`到`std::lock_guard`与`std::unique_lock`的演进之路
开发语言·c++
yuuki2332335 小时前
【数据结构】用顺序表实现通讯录
c语言·数据结构·后端
DashVector5 小时前
向量检索服务 DashVector产品计费
数据库·数据仓库·人工智能·算法·向量检索
AI纪元故事会5 小时前
【计算机视觉目标检测算法对比:R-CNN、YOLO与SSD全面解析】
人工智能·算法·目标检测·计算机视觉
夏鹏今天学习了吗5 小时前
【LeetCode热题100(59/100)】分割回文串
算法·leetcode·深度优先
卡提西亚5 小时前
C++笔记-10-循环语句
c++·笔记·算法
还是码字踏实5 小时前
基础数据结构之数组的双指针技巧之对撞指针(两端向中间):三数之和(LeetCode 15 中等题)
数据结构·算法·leetcode·双指针·对撞指针