题目整理

两个正整数a,b;有一种操作:删除这两个数中的一个数位,使得a是b的倍数或者b是a的倍数。问最少要操作几次。如 a = 1246,b = 9;可以删除a的一个数位得到126,是9的倍数,因此最少操作一次。
一个字符串,只包含’r’、‘e’、‘d’三种字符,有一种操作:可以将一个字符替换为其他两种字符。规定字符’e’的左右两个字符有’r’和’d’的,就叫做好’e’。现在需要使字符串中的好’e’数量最多,问最少需要操作多少次?
举例:reddr,操作一次变成 reder,有两个好’e’。
类似于锯齿数组。给一个数组,每次可以对一个元素值加1操作,现在需要保证数组中的每个元素的左右两个元素相等,且中间的元素不等于左右两个元素。问最少需要操作多少次。
网易给出的样例是: [1,1,4,5,1,4],最终变成[4,5,4,5,4,5]。为什么到处都有homo啊(恼)。
又是三元组问题。一个数组,n <= 100000,arr[i] <= 10^9;需要找到这样的三元组<i,j,k>,i < j < k,且 ai == ak && ai > aj。问有多少个。
参考链接:https://leetcode.cn/circle/discuss/nTn95Y/

以其中1,2,4题为例进行分析。具体思路见代码注释,
Talk is Cheap, Show me The code

##T1
考察点: 枚举,dp,dfs,记忆化搜索

#include <bits/stdc++.h>
using namespace std;int s1, s2;map<int, int> Get(int a)
{string la = to_string(a);int l = la.size();int sum, cha;map<int, int> PO;PO.clear();for (int i = 0; i < (1 << l); i++){sum = 0;cha = 0;for (int j = 0; j < l; j++){if ((i >> j) & 1) // 被选中了,不被计算哦{cha += 1;}else // 没被选中就计算下一个{sum = sum * 10 + (la[j] - '0');}}if (PO[sum])// sum 要对应最小的操作次数{PO[sum] = min(PO[sum], cha);}else{PO[sum] = cha;}}return PO;
}int main()
{ios::sync_with_stdio(false);cin >> s1 >> s2;if (s1 % s2 == 0 || s2 % s1 == 0){ //不妨先做个特判,防止后续枚举不全cout << 0 << endl;return 0;}auto it1 = Get(s1);auto it2 = Get(s2);int ans = 20; // 个位为10 ,最大不超过20for (auto [v1, cn1] : it1) // c++17{for (auto [v2, cn2] : it2){// cout << v1 << " " << cn1 << endl;// cout << v2 << " " << cn2 << endl;if (!v1 || !v2) // 如果出现删完的情况,要contiue,防止后面报错continue;if (v1 % v2 == 0 || v2 % v1 == 0){ans = min(ans, cn1 + cn2);}}}cout << ans << endl;
}

##T2
考察点: 分类讨论分奇偶讨论,部分特判,简单模拟

#include <bits/stdc++.h>
using namespace std;
const int maxn = 100010;
typedef long long ll;int a[maxn];int main()
{ios::sync_with_stdio(false);int t, n;cin >> n;for (int i = 1; i <= n; i++){cin >> a[i];}ll sum1 = a[1]; //那就先取出一个吧ll sum2 = a[2];for (int i = 1; i <= n; i++){if (i & 1){sum1 = max(a[i], sum1);}else{sum2 = max(a[i], sum2);}}int sum = 0;for (int i = 1; i <= n; i++){if (i & 1){sum += (sum1 - a[i]); // 取出一个奇数位上的最大值}else{sum += (sum2 - a[i]); // 取出一个偶数位上的最大值}}if (sum1 == sum2) //如果相等,不被允许,因为中间元素与两边元素不等,故需要加1{cout << (sum + n / 2) << endl;}else{cout << sum << endl;}return 0;
}

##T4
**考察点:**前缀和思想,思维,离散化(数字比较大会用到),hash

#include <bits/stdc++.h>
using namespace std;
#define up(x) upper_bound(all.begin(),all.end(),x) - all.begin()
/*
*@param 注意题目中明确表示 i <j <k, a[i] > a[j],所以此用upper
*/
const int maxn = 1e5 + 10;
int n;
int a[maxn];
vector<int> all;
map<int, int> l, r;int t[maxn], m;
struct BinaryIndexTree //树状数组常用模板
{inline int lowbit(int x){return x & (-x);}void add(int x, int d){for (int i = x; i <= m; i += lowbit(i))t[i] += d;}int query(int x){int res = 0;for (int i = x; i; i -= lowbit(i))res += t[i];return res;}
} bit;int main()
{ios::sync_with_stdio(false);cin >> n;for (int i = 1; i <= n; i++){int tmp;cin >> a[i];all.push_back(a[i]);}sort(all.begin(), all.end());all.erase(unique(all.begin(), all.end()), all.end());m = all.size();//cout << "debug" << endl;for (int i = 1; i <= n; i++){auto eg1 = up(a[i]); //离散化后转化为位置坐标,方便后续进行hash运算r[eg1]++; // 记录比a[i] 大的数的个数}//cout << "debug1" << endl;int ans = 0;for (int i = 1; i <= n; i++){int x = up(a[i]);r[x]--; //用 l 和 r两个hash来记录ans += bit.query(m) - bit.query(x);l[x]++;int d = l[x] * r[x] - (l[x] - 1) * (r[x] + 1); // 计算移动i移动对x位置的贡献bit.add(x, d);//cout <<"debug1"<<endl;}cout << ans << endl;
}

2022-08-20 网易秋招笔试相关推荐

  1. 2022.8.20 科大讯飞秋招笔试

    问题1 汉宁窗 题目描述:汉宁窗公式为HanWin=0.5*(1-cos(2*PI*n/N)),N为窗口长度,0<=n<N,PI=3.1415927: 对任意长度为N的双字节整数序列x(n ...

  2. 2018年网易秋招笔试真题——游历魔法王国

    链接:https://www.nowcoder.com/questionTerminal/923b9dacf8544e4e83d5e22f5a0e731a 来源:牛客网 魔法王国一共有n个城市,编号为 ...

  3. 数字 IC 设计、FPGA 设计秋招笔试题目、答案、解析(1)2022 紫光展锐(上)

    引言 最近收到诸多粉丝的来信,要求出一版<数字 IC 设计.FPGA 设计秋招笔试题精讲>,于是,通过几天几夜的加班加点,终于出了这一版<2022 紫光展锐秋招笔试题目.答案.解析& ...

  4. 2021.8.21 网易秋招开发笔试(题目 + java代码)

    2021.8.21 网易秋招开发笔试 一.题目: 二.程序 //采用的是深度优先搜索 import java.util.HashMap;public class wangyi {public stat ...

  5. 数字 IC 设计、FPGA 设计秋招笔试题目、答案、解析(3)2022 大疆创新数字芯片 B 卷

    引言 最近收到诸多粉丝的来信,要求出一版<数字 IC 设计.FPGA 设计秋招笔试题精讲>,于是,通过几天几夜的加班加点,终于出了这一版<2022 大疆创新秋招笔试题目.答案.解析& ...

  6. 春招秋招笔试面试时间(2020年)

    春招面试笔试时间 序号 公司 投简历时间 春招笔试面试时间 1 腾讯 2020.3.10 3.17一面(微信) 3.20一面(网盘) 4.7 PCG的研发部 4.12光子侧开一面 4.18光子侧开二面 ...

  7. 【笔试题】京东2017秋招笔试真题

    笔试题 京东2017秋招笔试真题 1.进制均值 时间限制 C/C++语言 1000MS;其他语言 3000MS 内存限制 C/C++语言 65536KB;其他语言 589824KB 题目描述 尽管是一 ...

  8. 美团点评2017秋招笔试编程题

    美团点评2017秋招笔试编程题 1, 大富翁游戏,玩家根据骰子的点数决定走的步数,即骰子点数为1时可以走一步,点数为2时可以走两步,点数为n时可以走n步.求玩家走到第n步(n<=骰子最大点数且是 ...

  9. 腾讯2018秋招笔试真题(2)

    腾讯2018秋招笔试真题 3.画家小Q [题目描述]画家小 Q 又开始他的艺术创作.小 Q 拿出了一块有 NxM 像素格的画板, 画板初始状态是空白 的,用'X'表示. 小 Q 有他独特的绘画技巧,每 ...

最新文章

  1. 基于Python的完全监督机器学习教程 Complete Supervised Machine Learning With Python
  2. Oracle数据库一些操作信息
  3. python基础语法有哪些-Python语法基础归纳大全
  4. 程序编译出错,缺少类型说明符;语法错误 : 缺少“;”(在标识符“PVOID64”的前面)
  5. java连接远程带有密码的mongodb数据库
  6. python中numpy.transpose()函数详解
  7. jquery 弹出窗口_jQuery弹出窗口和工具提示窗口动画效果
  8. RDP报表快速打造数据大屏可视化展示系统
  9. 什么原数据更容易平稳_判定数据序列平稳与否的方法都有哪些,什么是平稳序列...
  10. 互联网架构模板,“平台技术”
  11. 根据奖品权重计算中奖概率实现抽奖的方法
  12. Java 接收OutLook 微软邮箱邮件
  13. java虚拟机 for win7 64位_最新win7 64位旗舰版安装版下载(64位iso镜像)
  14. 杨涛鸣 杨焘鸣:世界各个角落都存在人脉关系
  15. 初学者C语言练习题-指针
  16. 不朽凡人 正文 第四百八十九章 三个条件
  17. 前端练习记录(模仿天猫首页)
  18. android升级到androidx
  19. 《经营最重要的事》-- 梅纳德.韦伯
  20. 未明学院学员报告:做了微博数据分析后,我发现现在最火的明星原来是……

热门文章

  1. python是一种跨平台、开源、免费的高级动态编程语言吗_python是一种跨平台、开源、免费的高级动态编程语言,对么...
  2. 镶嵌数据集工具小结(二)镶嵌数据轮廓线与边界
  3. 润达软件恭祝大家2018春节快乐!
  4. viewpager强制刷新问题
  5. ValueError: view limit minimum -36919.1 is less than 1 and is an invalid Matplotlib date value.问题解决
  6. mangoszero linux编译,MaNGOS编译搭建
  7. CentOS7 设置系统时间
  8. [水贴]GALGAME 怎么判定好感度?
  9. WebGL(二)——什么是WebGL
  10. 什么是外链?外链对SEO优化有什么作用?