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

相关推荐
还不秃顶的计科生几秒前
力扣第84题:完全平方数
算法·leetcode·职场和发展
2301_776508724 分钟前
分布式系统监控工具
开发语言·c++·算法
暮冬-  Gentle°6 分钟前
C++与区块链智能合约
开发语言·c++·算法
愣头不青7 分钟前
78.子集
数据结构·算法
Oueii8 分钟前
C++中的代理模式实现
开发语言·c++·算法
3DVisionary11 分钟前
从微观损伤到宏观断裂:DIC非接触测量在复合材料可靠性验证中的前沿实践
人工智能·数码相机·算法·机器学习·3d·复合材料·dic技术
sonnet-102917 分钟前
拓扑排序的实现
java·c语言·开发语言·笔记·算法
米粒118 分钟前
力扣算法刷题 Day 20
算法·leetcode·职场和发展
Shining059622 分钟前
推理引擎系列(七)《InfiniLM》
人工智能·深度学习·算法·大模型·ai芯片·智能体·推理引擎
马猴烧酒.27 分钟前
【面试八股|计算机网络】计算机网络常见面试题详解笔记
java·开发语言·网络·笔记·计算机网络·算法·面试