洛谷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每个数字进行映射。

相关推荐
晨非辰35 分钟前
【数据结构入坑指南】--《层序分明:堆的实现、排序与TOP-K问题一站式攻克(源码实战)》
c语言·开发语言·数据结构·算法·面试
hansang_IR1 小时前
【题解】P2217 [HAOI2007] 分割矩阵 [记忆化搜索]
c++·数学·算法·记忆化搜索·深搜
阿啄debugIT1 小时前
HashMap为什么线程不安全? ConcurrentHashMap如何保证线程安全? AQS如何实现锁的获取与释放?用男女关系进行解释,一看就懂
经验分享·职场和发展·系统架构·软件工程·1024程序员节
Voyager_42 小时前
算法学习记录03——二叉树学习笔记:从两道题看透后序位置的关键作用
笔记·学习·算法
我搞slam8 小时前
快乐数--leetcode
算法·leetcode·哈希算法
WWZZ20258 小时前
快速上手大模型:机器学习3(多元线性回归及梯度、向量化、正规方程)
人工智能·算法·机器学习·机器人·slam·具身感知
东方佑9 小时前
从字符串中提取重复子串的Python算法解析
windows·python·算法
西阳未落9 小时前
LeetCode——二分(进阶)
算法·leetcode·职场和发展
通信小呆呆10 小时前
以矩阵视角统一理解:外积、Kronecker 积与 Khatri–Rao 积(含MATLAB可视化)
线性代数·算法·matlab·矩阵·信号处理
CoderCodingNo11 小时前
【GESP】C++四级真题 luogu-B4068 [GESP202412 四级] Recamán
开发语言·c++·算法