成都网站制作报价网站建设的工作
2026/1/2 5:28:09 网站建设 项目流程
成都网站制作报价,网站建设的工作,网站自动适应屏幕,小程序商店怎么做Problem: 753. Cracking the Safe 破解保险箱 解题过程 太难了#xff0c;不会的#xff0c;看了官方题解和另一个人的题解#xff0c;总算稍稍理解了#xff0c;dfs(0);#xff0c;dfs从0开始#xff0c;因n-1个0#xff0c;实际数值还是0#xff0c;所以的话就从0开始…Problem: 753. Cracking the Safe 破解保险箱解题过程太难了不会的看了官方题解和另一个人的题解总算稍稍理解了dfs(0);dfs从0开始因n-1个0实际数值还是0所以的话就从0开始了实际是从”000…00“开始的欧拉回路最后回到原点所以答案还需要拼接上n-1个0也就是ans string(n-1, ‘0’)欧拉图看了一会才明白怎么连接的具体的就是pow(k, n-1)个节点按照题目的意思需要尽可能的短每个节点有k个边从012。。。k-1编号某个节点n-1个字符加上编号index就形成了n位的password然后去掉第一个数字就得到后面的n-1个数字即边连接的下一个节点所以若当前节点是123456选择的边是9那么形成了1234569这个数字去掉第一个数字234569所以123456和234569通过边9相连int nei node * 10 x;将边的编号拼接上去seen.count(nei)统计边是否访问过插入这个边seen.insert(nei)nei % highest去掉第一个数字Codeclass Solution { public: // vectorstring tg; // void dfs(int n, int k, string str) { // if(n0) { // tg.push_back(str); // return; // } // for(int i 0; i k; i) { // str (i0); // dfs(n-1, k, str); // str.pop_back(); // } // } int k, highest; unordered_setint seen; string ans; string crackSafe(int n, int k) { // dfs(n-1, k, ); this-k k; highest pow(10, n-1); dfs(0); // start from 000...0, length is n-1 ans string(n-1, 0); // back to 000...0, length n - 1 return ans; } void dfs(int node) { for(int x 0; x k; x) { int nei node * 10 x; // concat [n-1, index], get n digits if(!seen.count(nei)) { // remember edge had seen, length n seen.insert(nei); // insert edge dfs(nei % highest); // get n-1 digits in tail, the next node ans (x 0); // get answer } } } };

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询