一、题目

二、 自己的dfs的题解

我并没有参加这个笔试,这种方法应该A不了所有用例,有什么错误的地方恳请指导指导(* ̄︶ ̄) respect

#include <bits/stdc++.h>
using namespace std;int res3=INT_MAX;
int transfet(vector<string> &tmp) {int sum=0;for (auto &t: tmp) {sum += stoi(t);}return sum;
}
void dfs(string str, vector<string> &tmp, int start, int nums, int k) {if (start==str.size()) { //str.size()==0if (!(transfet(tmp)%k)) {res3 = min(res3, nums-1);return;}else return;}for (int i=start; i<str.size(); i++) {int end = i;tmp.emplace_back(str.substr(start ,end-start+1));bfs(str, tmp, end+1, nums+1, k);tmp.pop_back();}
}
int leastNum(string str, int k) {  vector<string> tmp;dfs(str, tmp, 0, 0, k);return res3;
}
int main(int argc, char* argv[])
{vector<string> a = {"1","34","567"};cout<<transfet(a)<<endl;string s = "1231";cout<<"最小的次数:"<<leastNum(s, 5)<<endl; // 结果为2
}

在牛客上看到的大佬的DP做法,如下:
其余的题目信息见:阿里笔试(0314算法岗)

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;vector<int> gao(ll n, int k) {string s = to_string(n);vector<vector<int>> dp(s.size()+1, vector<int>(k, 0x3f3f3f3f));dp[0][0] = 0;for (int i = 0; i < s.size(); i++) {int cur = 0;for (int j = i; j < s.size(); j++) {cur = (cur * 10 + s[j]-'0')%k;for (int x = 0; x < k; x++) {dp[j+1][(cur+x)%k] = min(dp[j+1][(cur+x)%k] , dp[i][x]+(i!=0));}}}return dp.back();
}int main() {int n, k; cin >> n >> k;vector<ll> A(n); for (auto &x: A) cin >> x;vector<int> cur(k, 0x3f3f3f3f);cur[0] = 0;for (auto &t: A) {vector<int> nxt(k, 0x3f3f3f3f);vector<int> tmp = gao(t, k);for (int i = 0; i < k; i++) {for (int j = 0; j < k; j++) nxt[(i+j)%k] = min(nxt[(i+j)%k], cur[i]+tmp[j]); }cur = nxt;}cout << cur[0] << endl;
}

【C++】0314算法阿里笔试题相关推荐

  1. 名企笔试:京东 2016 算法工程师笔试题(登楼梯)

    名企笔试:京东 2016 算法工程师笔试题(登楼梯) 2017-02-04 算法爱好者 有一段楼梯台阶有 15 级台阶,以小明的脚力一步最多只能跨 3 级,请问小明登上这段楼梯,有多少种不同的走法? ...

  2. 阿里笔试题:或运算的最小翻转次数 C++

    阿里笔试题:或运算的最小翻转次数 C++ 题目描述 输入输出示例 解题思路 代码 题目描述 给出一个数字n,表示有n组输入用例子,每一组输入给出三个正整数a.b.c,可以对a和b进行位翻转操作,每一次 ...

  3. 【数据挖掘】2022年昆仑万维 算法工程师笔试题

    [数据挖掘]2022年昆仑万维 算法工程师笔试题 企业:昆仑万维 1 单选题 1.ABCDE,出栈的顺序不可能是? 栈的知识 2.连续投硬币,第一次正面,奇数次A赢,偶数次B赢.则A赢的概率是多少 问 ...

  4. java类初始化顺序-阿里笔试题

    阿里笔试题之写出程序输出结果: package com.patrick.bishi;public class TestVar {public static int k = 0;public stati ...

  5. 阿里笔试题第二题之-------容错技术

    阿里笔试题第二题之---容错技术 定义:容错就是当由于种种原因在系统中出现了数据.文件损坏或丢失时,系统能够自动将这些损坏或丢失的文件和数据恢复到发生事故以前的状态,使系统能够连续正常运行一种技术. ...

  6. 2020年3月25日阿里笔试题

    2020年3月25日阿里笔试题 题目描述一 python代码 题目描述二 求公差的python代码 处理上述情况的代码   仿佛人生总有一种魔咒,自己做的这场笔试题永远是最难的.不过今天的笔试题,真的 ...

  7. 阿里笔试题(2015)持续更新中

    第一次做阿里笔试题,除了ACM题之外从来没有做过校招网络题呀,完全是裸考,总体感觉吧,对于我来说,感觉时间不够用,不是题不会,感觉时间紧,大脑很混乱,总结这一次的笔试题 废话不多说,直接上题和答案 平 ...

  8. 2020年3月23日阿里笔试题

    2020年3月23日阿里笔试题 题目描述 题目分析   这是阿里的第二场笔试,本来觉得没啥好写的,一道排列组合,一道迷宫.没有什么发挥的空间.但是后来在和大家讨论的过程中,把这道题的公司给敲出来了,但 ...

  9. 【数据挖掘】2022年京东算法工程师笔试题(23届)

    时间:90分钟 2022年京东算法工程师笔试题(23届) 1 单选题 1.MySQL内部存储代码的优势 服务器上执行还可以节省带宽和网络延迟 代码重用.可以方便的统一业务规则,保证某些行为的一致性,所 ...

最新文章

  1. 终端主题_再见 XShell 和 ITerm 2,是时候拥抱全平台高颜值终端工具 Hyper 了!
  2. nvm npm不是内部命令_npm作弊表-最常见的命令和nvm
  3. 机器人启示录 百度影音_机器人启示录游戏下载-机器人启示录安卓版 v1.2.0_5577安卓网...
  4. Sequelize框架
  5. oracle 约束 Oracle 10g学习系列(5)
  6. 转载:ThreadPoolExecutor 源码阅读
  7. 终于来了!iOS 13大更新发布,新功能均与新冠疫情有关
  8. cad lisp 微盘 程序_使用CAD无法避免的3个坑,你知道怎么绕开吗|AutoCAD断舍离
  9. Replica set 的选举策略之一 (转)
  10. 无线射频识别技术与条形码的比较
  11. 题15 Oracle临时表有几种?临时表和普通表主要区别是什么?
  12. 《指数型组织》学习总结
  13. 左神数据结构与算法(基础提升)——01
  14. 查看oracle操作历史,查看操作历史记录
  15. qq空间进入游戏显示服务器拒绝,打开QQ空间出现ptlogin2.qq.com的解决方法大全
  16. PMP项目管理证书有用吗?
  17. Photoshop 系列:照片调色记录
  18. 苹果电脑如何同时运行Mac和Windows--pd18
  19. 世界上最有名的十大思想实验
  20. WIN10打印机显示服务器脱机,win10网络打印机显示脱机处理方法

热门文章

  1. 英文简历模板计算机专业,计算机专业个人英文简历模板
  2. flash-connect模块
  3. 韦氏进销存软件功能更新20220223
  4. 基于STM32MP157的GPU编程之DRM驱动调试
  5. 名师为你划重点 再不“入坑”体育圈就OUT啦!
  6. 串行RapidIO(Serial RapidIO,SRIO):IP核基础知识
  7. 容积卡尔曼滤波(ckf)MATLAB代码(一个ckf滤波器的子程序)
  8. MySql :分表、分库、分片和分区
  9. 物联卡买了还没使用就已经被注销,这种情况你遇到过吗?
  10. 干货|语义网、Web3.0、Web3、元宇宙这些概念还傻傻分不清楚?(中)