第一题:编码数目    
题目:输入N,M,求N+N^2+N^3+...+N^M的结果(取余1000000007),1<N<=65536,1<M<=100000    
输入格式:每行输入N M,直到N M均等于0时跳出   
输出格式:每行输出对应的结果

解题思路:快速幂(实质对幂指数进行二进制转换,将累乘拆分),不了解的可以查找一下

import java.util.*;public class Main {static Scanner in = new Scanner(System.in);static int mod = 1000000007;static int q_pow(int a, int b) {a %= mod;int ans = 1;while (b != 0) {if ((b & 1) == 1)ans = (ans * a) % mod;a = (a * a) % mod;b >>= 1;}return ans;}public static void main(String[] args) {int n = in.nextInt();int m = in.nextInt();long sum = 0;for (int i = 1; i <= m; i++) {sum+=q_pow(n, i);//累加即可}System.out.println(sum);}}

其实还有一种思路是利用Java提供的大数类BigInterger,这个类支持大数计算

第二题:二进制

题目:允许对二进制数进行两种操作:00->10,10->01,求可能的最大数(两种操作可以进行任意次)
输入格式:先一行输出样例数,然后每两行输入二进制长度与二进制数本体,1<=长度<=10000
例如:
2
4
0001
10
1010111000
输出格式:每行输出每个样例的答案
例如:
1101
1111101111

思路:操作:①00->10②10->01,

为了使得到的数最大,尽可能使高位为1,那么②其实是为①服务的,利用②将0往高位移动,将1往低位移动,然后将高位的0利用①转换,通过模拟可以得到结论:第一个0后面的所有1(设个数为a)都会别挪到最后(通过②),此时经过①会有新的0101情况出现,继续重复上述步骤,最后得到:(总长度-a-1)个1+0+a个1 的字符串

总结思路:(1)通过②将第一个0后面的所有1移到最后

(2)通过①处理此时的字符串

(3)重复(1)(2)直到不能进行①②操作

import java.util.*;public class Main {static Scanner in = new Scanner(System.in);public static void main(String[] args) {int t = in.nextInt();while(t-->0) {int n = in.nextInt();String s = in.next();int pos = 0;int cnt = 0;for (int i = 0; i < s.length(); i++) {if(s.charAt(i)=='0') {pos = i;break;};}for (int i = pos; i < s.length(); i++) {if(s.charAt(i)=='1') cnt++;}String ans = "";for (int i = 0; i < n-cnt-1; i++) {ans+="1";}ans+="0";for (int i = 0; i < cnt; i++) {ans+="1";}if(pos==0)//注意字符串全为1的情况System.out.println(s);elseSystem.out.println(ans);}}
}

第三题:解数独

题目:即leetcode 37题

输入格式:

{5,3,0,0,7,0,0,0,0}
{6,0,0,1,9,5,0,0,0}
{0,9,8,0,0,0,0,6,0}
{8,0,0,0,6,0,0,0,3}
{4,0,0,8,0,3,0,0,1}
{7,0,0,0,2,0,0,0,6}
{0,6,0,0,0,0,2,8,0}
{0,0,0,4,1,9,0,0,5}
{0,0,0,0,8,0,0,7,9}

输出格式:

{5,3,4,6,7,8,9,1,2}
{6,7,2,1,9,5,3,4,8}
{1,9,8,3,4,2,5,6,7}
{8,5,9,7,6,1,4,2,3}
{4,2,6,8,5,3,7,9,1}
{7,1,3,9,2,4,8,5,6}
{9,6,1,5,3,7,2,8,4}
{2,8,7,4,1,9,6,3,5}
{3,4,5,2,8,6,1,7,9}

思路:标志数组+回溯

import java.util.Scanner;public class Main {static Scanner in = new Scanner(System.in);static boolean[][] row = new boolean[9][10];static boolean[][] col = new boolean[9][10];static boolean[][] box = new boolean[9][10];static int[][] num = new int[9][9];static boolean solve(int r, int c) {if (c == 9) {c = 0;r++;if (r == 9)return true;}if (num[r][c] == 0) {int id = 0;for (int i = 1; i <= 9; i++) {id = (r / 3) * 3 + c / 3;//不能在同一行同一列或者同一个方框if (row[r][i] == false && col[c][i] == false && box[id][i] == false) {row[r][i] = col[c][i] = box[id][i] = true;num[r][c] = i;if (solve(r, c + 1))return true;//位置不合适,回溯num[r][c] = 0;row[r][i] = col[c][i] = box[id][i] = false;}}}else return solve(r, c + 1);return false;}public static void main(String[] args) {String str;int bid = 0;for (int i = 0; i < 9; i++) {for (int j = 0; j < 10; j++) {row[i][j] = col[i][j] = box[i][j] = false;}}for (int i = 0; i < 9; i++) {str = in.next();for (int j = 0; j < 9; j++) {num[i][j] = str.charAt(j * 2 + 1) - '0';if (num[i][j] >= 1 && num[i][j] <= 9) {bid = (i / 3) * 3 + j / 3;//每个3X3方块的索引row[i][num[i][j]] = true;col[j][num[i][j]] = true;box[bid][num[i][j]] = true;}}}solve(0, 0);for (int i = 0; i < 9; i++) {System.out.print("{");for (int j = 0; j < 9; j++) {if (j != 8)System.out.print(num[i][j] + ",");elseSystem.out.println(num[i][j] + "}");}}}}

2021华为笔试4.8题解相关推荐

  1. 数字 IC 设计、FPGA 设计秋招笔试题目、答案、解析(2)2021 华为海思(上)

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

  2. 2021华为软件精英挑战总结

    2021华为软件精英挑战赛总结 今年的软挑最终止步于粤港澳赛区第16名,总成本为16亿3979万6349,赛区第一名总成本为15亿3903万4817. 虽然没进入决赛,但是拿到了华为面试直通卡,也喜提 ...

  3. 华为笔试2021-08-18

    华为笔试2021.8.18 华为笔试2021.8.18 1. 取零食 输入 输出 示例 代码 2. 夜宵发放 输入 输出 示例1 示例2 代码 3. 连连看 输入 输出 示例 代码 华为笔试2021. ...

  4. # 2021华为软件精英挑战赛C/C++——build.sh/build_and_run.sh/CodeCraft_zip.sh注释

    2021华为软件精英挑战赛C/C++--build.sh/build_and_run.sh/CodeCraft_zip.sh注释 1.build.sh #!/bin/bashSCRIPT=$(read ...

  5. 2021华为软件精英挑战赛(附赠线下判题器链接)——经历

    2021华为软件精英挑战赛(附赠线下判题器链接)--经历 1.题目解析 本次赛题源自现实的互联网企业面临的问题,怎样购买与部署服务器最便宜! 服务器:不相同型号的服务器有着不同的CPU与不同的内存,每 ...

  6. 2021华为鸿蒙发布会直播,2021 华为智能协作春季发布会直播(视频)

    2021 华为智能协作春季发布会直播 时间:2021 年 3 月 17 日 14:30 3 月上旬,华为官方宣布,2021 华为智能协作春季发布会将于 3 月 17 日 14:30 召开. 华为表示: ...

  7. 2021年冬季PAT乙级题解(C/C++语言)

    2021年冬季PAT乙级题解(C/C++语言) 7-1 自动打包机 (15 分) 原题 算法标签 模拟 代码 #include<bits/stdc++.h> #define int lon ...

  8. Seeker的奇妙求职历险(华为笔试)

    矩阵报数 题目: 给出一个旋转矩阵,M行N列,左上角为(0,0),右下角为(M-1,N-1),从左上角开始计数,顺时针从外圈开始,外圈遍历完之后再遍历内圈,直到遍历完所有的点. 返回所有个位数为7且十 ...

  9. 58同城2021校招笔试真题-前端

    58同城2021校招笔试-前端 以下代码输出: console.log([1,2,3,4,5].splice(1,2,3,4,5)); console.log([1,2,3,4,5].slice(1, ...

最新文章

  1. SCCM 2012 SP1系列(十)配置补丁更新-3
  2. linux下启动tlq命令,UNIX/LINUX命令
  3. Python学习札记(二十) 函数式编程1 介绍 高阶函数介绍
  4. C51端口结构和工作原理(转)
  5. 算法竞赛中的输入输出框架
  6. 使用Event Message 对 Package 进行Troubleshoot
  7. VIM使用小技巧-重新载入文件
  8. tcp报文格式_腾讯面试中的TCP/IP协议简述+经典面试题
  9. promise 应用实例
  10. Windows Server 2008 R2 官方原版下载大全
  11. sublime 前端css 插件
  12. mysql不区分英文字母大小写模糊查询
  13. python中的newline_python open函数newline用法
  14. FHQ TREAP 学习总结
  15. matlab吉他音色分析,吉他各类常见琴弦音色手感浅谈
  16. 实战型较强的交易经典著作:
  17. Ubuntu添加虚拟网卡
  18. Hot Water Pipe
  19. 解决登陆界面软键盘弹出遮住登陆按钮
  20. 2021年4月Bmob无法访问Bmob云服务器

热门文章

  1. c语言基本的数据类型输入,C语言基本数据类型输入输出格式
  2. iOS开发之软键盘使用小技巧
  3. 幻灯片,图片相册列表,淘宝商品放大镜 jquery实现
  4. 【等保小知识】等保备案和等保测评有什么差别?
  5. A ConvNet for the 2020s 详解
  6. 回归学习-支持向量机回归
  7. 双向流设计,还是看远大
  8. K8s 服务质量等级
  9. gRPC遭抛弃!Storj为何使用DRPC替代gRPC?
  10. k8s NFS挂载出现 mount.nfs: access denied by server while mounting 192.168.153.128:/nfs/data