cf1283D——bfs
Posted zsben991126
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了cf1283D——bfs相关的知识,希望对你有一定的参考价值。
很简单的题
#include<bits/stdc++.h> using namespace std; #define N 200005 #define ll long long ll x[N],n,m; map<ll,int>mp; vector<ll>ans; struct Node{ ll pos,ori; Node(){} Node(ll pos,ll ori):pos(pos),ori(ori){} }; queue<Node>q; int main(){ cin>>n>>m; for(int i=1;i<=n;i++){ cin>>x[i]; mp[x[i]]=1; q.push(Node(x[i]-1,x[i])); q.push(Node(x[i]+1,x[i])); } ll sum=0; while(m){ Node now=q.front();q.pop(); if(mp[now.pos])continue; m--; mp[now.pos]=1; sum+=abs(now.ori-now.pos); ans.push_back(now.pos); q.push(Node(now.pos-1,now.ori)); q.push(Node(now.pos+1,now.ori)); } cout<<sum<<endl; for(auto x:ans)cout<<x<<" "; }
以上是关于cf1283D——bfs的主要内容,如果未能解决你的问题,请参考以下文章