T1简单没套路,T3 a不完。。所以只有T2和T4

import java.util.HashSet;
import java.util.LinkedList;
import java.util.Queue;
import java.util.Scanner;
/*** 第二题* 给定一个m*n的由0 1组成的矩阵。每个1代表一个士兵* 上下左右相连的兵可以组成一个团* 现在可以移动一个士兵的位置,可以把他从任何位置移动到任何另一个位置* 问,能组成的最大团的士兵数。* 样例
4 4
1 0 1 1
1 1 0 1
0 0 0 0
1 1 1 18** 这题是考bfs的。。。利用bfs将士兵组成团,然后对于每个团进行编号。* 在没有士兵位置的地方,计算临近四个位置所在的团的人数之和。就是将士兵移到这个位置所组成的最大团的人数。* 如果人数和最大团相同,那么这个士兵就是从这几个团中移到这里的,否则就是从其他团移到这里,这时就要加1构成最大值。***记住不能胡乱粘贴。。。因不注意修改条件直接复制粘贴导致结果总是1 。。。debug到笔试结束,痛苦。。。*/
public class T2 {public static void main(String[] args) {Scanner sc = new Scanner(System.in);int n = sc.nextInt();int m = sc.nextInt();Node arr[][] = new Node[n][m];boolean use[][] = new boolean[n][m];int num1 = 0;for (int i = 0; i < n; i++) {for (int j = 0; j < m; j++) {arr[i][j] = new Node(i, j, sc.nextInt());if (arr[i][j].data == 1) {num1++;}}}int zln = 1;for (int i = 0; i < n; i++) {for (int j = 0; j < m; j++) {if (arr[i][j].data == 1 && use[i][j] == false) {Queue<Node> q = new LinkedList<Node>();q.add(arr[i][j]);use[i][j] = true;while (!q.isEmpty()) {Node te = q.poll();te.zl = zln;if (te.i - 1 >= 0 && !use[te.i - 1][te.j] && arr[te.i - 1][te.j].data == 1) {q.add(arr[te.i - 1][te.j]);use[te.i - 1][te.j] = true;}if (te.i + 1 < n && !use[te.i + 1][te.j] && arr[te.i + 1][te.j].data == 1) {q.add(arr[te.i + 1][te.j]);use[te.i + 1][te.j] = true;}if (te.j - 1 >= 0 && !use[te.i][te.j - 1] && arr[te.i][te.j - 1].data == 1) {q.add(arr[te.i][te.j - 1]);use[te.i][te.j - 1] = true;}if (te.j + 1 < m && !use[te.i][te.j + 1] && arr[te.i][te.j + 1].data == 1) {q.add(arr[te.i][te.j + 1]);use[te.i][te.j + 1] = true;}}zln++;}}}int ans[] = new int[zln];for (int i = 0; i < n; i++) {for (int j = 0; j < m; j++) {if (arr[i][j].data != 0)ans[arr[i][j].zl]++;}}int out = 0;HashSet<Integer> hs = new HashSet<Integer>();for (int i = 0; i < n; i++) {for (int j = 0; j < m; j++) {int teout = 0;if (arr[i][j].data == 0) {if (i - 1 >= 0 && arr[i - 1][j].data == 1) {hs.add(arr[i - 1][j].zl);}if (i + 1 < n && arr[i + 1][j].data == 1) {hs.add(arr[i + 1][j].zl);}if (j - 1 >= 0 && arr[i][j - 1].data == 1) {hs.add(arr[i][j - 1].zl);}if (j + 1 < m && arr[i][j + 1].data == 1) {hs.add(arr[i][j + 1].zl);}}for (Integer integer : hs) {teout += ans[integer];}hs.clear();if (teout != num1) {teout++;}out = Math.max(teout, out);}}System.out.println(out);}
}class Node {int data;int zl;int i;int j;public Node() {}public Node(int i, int j, int data) {this.i = i;this.j = j;this.data = data;}}
import java.util.HashSet;
import java.util.Scanner;
/*** 第四题* 给定一个数n(n<1000000000) 和 一个数组a[m]  m (1<=m<=10,1<=a[i]<=20) * 如果n对于一个数 ai有n%ai==0,则认为两个数相关。* 问在 1 - n中有多少个相关* 样例10 2
2
35* 这题是考容斥原理的题。当然要提前处理一下数值,不能有倍数关系。* 去除倍数关系之后进行计算值就可*/
public class T4 {public static void main(String[] args) {Scanner sc = new Scanner(System.in);long n = sc.nextLong();int m = sc.nextInt();HashSet<Integer> hs = new HashSet<Integer>();long ans = 0;for(int i = 0;i < m; i++) {hs.add(sc.nextInt());}int arr[] = new int[hs.size()];int temp = 0;for (Integer integer : hs) {arr[temp++] = integer;}for(int i = 0;i<arr.length;i++) {for(int j = i+1;j<arr.length;j++) {if(Math.max(arr[i], arr[j])%Math.min(arr[i], arr[j])==0) {hs.remove(Math.max(arr[i], arr[j]));}}}arr = new int[hs.size()];temp = 0;for (Integer integer : hs) {arr[temp++] = integer;}for(int i = 1;i<1<<arr.length;i++) {int num = 0;long test = 1;for(int t = i,j=0;t!=0;t>>=1,j++) {if((t&1)!=0) {num++;test *= arr[j];}}if((num&1)==0) {ans-=n/test;}else {ans+=n/test;}}System.out.println(ans);}static int gcd(int a, int b) {if(b==0) {return a;}else {return gcd(b,a%b);}}
}

拼多多2021校招2020.9.1笔试题 T2 and T4相关推荐

  1. 【招商银行2021校招】提前批笔试题【C++方向】

  2. 拼多多2021高频题汇总 | 备战春招,刷这30题就够了!

    春招高峰期,九章算法特别开放了[2021春招信息情报站],搜集汇总了阿里.字节.腾讯.顺丰.百度等互联网大厂的一手春招情报,包含网申链接.招聘范围.秘密情报.春招题库等,希望帮助更多同学顺利上岸! 校 ...

  3. 2021届BiliBili校招 数据分析/后端开发 笔试题记录

    文章目录 1. 背景 2. 题型 3. 选择题范围 3.1 数据结构 3.2 计算机网络 3.3 操作系统 3.4 计算机组成 3.5 其他 4. 算法题 4.1 第一题 4.2 第二题 4.3 第三 ...

  4. 【编程练习】拼多多2021笔试真题集

    题目来源:牛客,拼多多2021笔试真题集 第一题:多多的数字组合 打卡题,很明显的两个约束:每个位数各不相同 + 数字最小,在这两个条件的约束下,N最大为45,对应的数字为123456789. 代码如 ...

  5. 拼多多2021笔试真题集

    拼多多2021笔试真题集 数字组合 字符变换 求和计算 骰子组合 数字组合 多多君最近在研究某种数字组合: 定义为:每个数字的十进制表示中(0~9),每个数位各不相同且各个数位之和等于N. 满足条件的 ...

  6. 头条2020届实习生笔试题

    头条2020届实习生笔试题 一卷 编程题: 输入某年某月某日,判断这一天是这一年的第几天? // 判断是否为闰年function isRun(a) {return a % 4 == 0 &&a ...

  7. k个一组翻转链表 哔哩哔哩2020校园招聘笔试题/LeetCode_25(困难)讲解

    目录标题 一.题目信息 二.解题思路 三.代码实现 四.其他精选题目分享 一.题目信息 LeetCode版本 牛客网版本 下面我以牛客网为例写代码 题目需要先输入一组数字代表链表的值,以#代表结尾. ...

  8. 记 随手科技2020届实习生笔试题(Java开发工程师)笔试题

    2020届实习生笔试题(Java开发工程师) 一.选择题(共6题,每小题5分,满分30分) 1 2 3 4 5 6 总分 B B A C B C 1.下列排序算法中,初始数据集合对排序性能无影响的是( ...

  9. 2021校园照片芯片岗位笔试题知识点(华为,OPPO,紫光,大疆)

    2021校园照片芯片岗位笔试题知识点(华为,OPPO,紫光,大疆) 关键词的判别.关键词的综合 格雷码 iso cell 采样保持时间 竞争冒险 峰值功耗.功耗约束.静态功耗 功能覆盖率 给出一段程序 ...

最新文章

  1. 【原创】MySQL 5.5 PROXY USER 伪装用户
  2. 【C 语言】数组 ( 验证二维数组内存是线性的 | 打印二维数组 | 以一维数组方式打印二维数组 | 打印二维数组值和地址 )
  3. JavaScript代理模式
  4. 让大家都成为电脑高手之二------运行_r篇
  5. linux系统下创建symlink(@)即文件软链接(快捷方式)的命令
  6. Memcache mutex设计模式
  7. mysql多数据源切换_CI 多数据库操作 切换数据库
  8. (27)VHDL实现非(数据流描述)
  9. Seinfeld(杭电3351)
  10. 2018辛苦一年了,程序员这样跟大boss谈2019加薪,谈薪杯具变喜剧
  11. 如何查看android虚拟机的目录及文件
  12. 凸优化第八章几何问题 8.4 极值体积椭圆
  13. 揭秘Spring——《Spring 揭秘》读书笔记纲要
  14. Word中如何删除某一页的页眉与页眉中的横线
  15. 网络显示404是怎么回事?
  16. 在Python中操作谷歌浏览器
  17. 下载神器aria2和他的客户端Persepolis
  18. jQuery+PHP实现的砸金蛋中奖程序
  19. java dispatcher详解_Java Web开发详解:RequestDispatcher接口
  20. openEuler Summit | 江大勇:凝聚创新力量 逐梦数字时代星辰大海

热门文章

  1. 解决chrome浏览器手机调试模式下鼠标指针消失(量化范围设置无效情况)
  2. layui搭建管理后台系统
  3. 微型计算机百度云,STONE_百度云资源_盘多多如风搜_盘搜搜_哎哟喂啊
  4. 企业网络安全保障团队建设构想
  5. 图像处理知多少?准大厂算法工程师30+场秋招后总结的面经问题详解
  6. app小窗口悬浮工具_侧边栏 app小窗口悬浮工具
  7. css td边框重复,表格线边框重复css解决方法
  8. Java进阶学习第八天——WEB入门
  9. 读书寄语:所有的遇见都是有原因的,并不只是偶然
  10. Apache2.4的安装、配置与常见的问题(Windows)