洛谷P10901 [蓝桥杯 2024 省 C] 封闭图形个数

#include<bits/stdc++.h>

using namespace std;

const int N=200010;

int a[N];
int b[N];
pair<int, int >p[N];
int num[10]={1,0,0,0,1,0,1,0,2,1};
	
int pd(int n){
	int sum=0;
	while(n){
			int x=n%10;
			sum+=num[x];
		n/=10;
	}
	return sum;
	
}

int cmp(pair<int,int>a,pair<int,int>b){
	if(a.second!=b.second)return a.second<b.second;
	else return a.first<b.first;
}


int main(){									
	int n;
	cin>>n;
	for(int i=0;i<n;i++){
		cin>>p[i].first;
		p[i].second=pd(p[i].first);	
}
	sort(p,p+n,cmp);
	for(int i=0;i<n;i++){
		cout<<p[i].first<<" ";
		
	}
	return 0;
}

学习了一下对于的pair的first,second利用sort中的自定义cmp,根据题目先对second进行排序,就是对每个数字的封闭图案数量进行排序,相同再对数字大小进行排序。num数组对0-9每个数字进行映射。

相关推荐
云卓SKYDROID22 分钟前
无人机之无线传输技术!
科技·算法·无人机·科普·云卓科技
蓝色洛特39 分钟前
【matlab优化算法-17期】基于DBO算法的微电网多目标优化调度
开发语言·算法·matlab
豆豆酱1 小时前
强化学习到大模型训练理论概要(三)
算法
羽觞醉月112 小时前
C++基础 | 线程`std::thread`
开发语言·c++·算法
南宫生3 小时前
力扣动态规划-26【算法学习day.120】
java·数据结构·算法·leetcode·动态规划
不想编程小谭3 小时前
从小白开始的动态规划
c++·算法·动态规划
一只码代码的章鱼3 小时前
数据结构与算法-动态规划-状态机(股票问题,密码设计)
算法·动态规划·代理模式
surtr13 小时前
【C++】RBTree(红黑树)模拟实现
数据结构·c++·算法·stl·map·红黑树·rbtree
zjkzjk77113 小时前
函数指针(Function Pointer)与 typedef int (*FuncPtr)(int, int);typedef与using(更推荐)
开发语言·c++·算法
余辉zmh3 小时前
【动态规划篇】:动态规划解决路径难题--思路,技巧与实例
c++·算法·leetcode·动态规划