本文主要是介绍第十四届蓝桥杯大赛软件赛国赛C/C++ 大学 B 组 拼数字,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
//bfs只能过40%。
#include<bits/stdc++.h>
using namespace std;
#define int long long
int a,b,c,dp[2028];
struct s
{int x,y,z;string m;
};
map<vector<int>,int>k;
signed main()
{ios::sync_with_stdio(false);cin.tie(0),cout.tie(0);cin>>a>>b;queue<s>t;t.push({0,a,b,""});string l;while(!t.empty()){s h=t.front();t.pop();if(h.y==0&&h.z==0&&h.x==0){l=h.m;cout<<l<<endl;return 0;}if(h.z>=1){vector<int>ll;ll.push_back((h.x*10+3)%2023);ll.push_back(h.y);ll.push_back(h.z-1);if(k[ll]==0){k[ll]=1;t.push({(h.x*10+3)%2023,h.y,h.z-1,h.m+'3'});}}if(h.y>=1){vector<int>ll;ll.push_back((h.x*10+2)%2023);ll.push_back(h.y-1);ll.push_back(h.z);if(k[ll]==0){k[ll]=1;t.push({(h.x*10+2)%2023,h.y-1,h.z,h.m+'2'});}}}cout<<"-1"<<endl;
}
这篇关于第十四届蓝桥杯大赛软件赛国赛C/C++ 大学 B 组 拼数字的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!