当前位置: 首页 > news >正文

荆州 网站建设阿里云服务器网站备份

荆州 网站建设,阿里云服务器网站备份,网站开发维护合同书,设计一个简单的物联网系统目录 A、求全是字母的最小十六进制数 B、Excel表格组合 C、求满足条件的日期 D、 取数字 - 二分 #xff08;1#xff09;暴力 #xff08;2#xff09;二分 E、最大连通块 - bfs F、哪一天#xff1f; G、信号覆盖 - bfs #xff08;1#xff09;bfs#xf… 目录 A、求全是字母的最小十六进制数 B、Excel表格组合 C、求满足条件的日期 D、 取数字 - 二分 1暴力 2二分 E、最大连通块 - bfs F、哪一天 G、信号覆盖 - bfs 1bfs60% 2暴力 H、清理水域 - 暴力弱智版 可以差分 I、滑行 - dfs dp 1dfs30% 2dpdfs100%  A、求全是字母的最小十六进制数 请找到一个大于2022的最小数该数转换为十六进制后所有数位不含前导0都为字母A到F请计算出这个数的十进制。 思路 最小的全是字母的数肯定是全是a的 从2023开始逐个循环转十六进制判断即可 答案2730 import java.util.*;public class abc {public static void main(String[] args){Scanner scnew Scanner(System.in);int n2023;while(true){String sInteger.toHexString(n);if(ck(s)true) break;n;}System.out.print(n);}public static boolean ck(String s){for(char c:s.toCharArray()){if(ca||cf) return false;}return true;} } B、Excel表格组合 在Excel中列的名称使用英文字母组合前26列用一个字母依次为A到Z接下来26*26列使用两个字母的组合依次为AA到ZZ求第2022列的名称是什么 思路 已知单个字母和双字母组合共2626*26702而三个字母组合有26*26*2617576因此第2022列名称为三个字母的组合 三重暴力算2022列的值答案为BYT import java.util.*;public class abc {public static void main(String[] args){Scanner scnew Scanner(System.in);int beg702;for(int i0;i26;i)for(int j0;j26;j)for(int k0;k26;k){beg;if(beg2022){char a(char)(Ai),b(char)(Aj),c(char)(Ak);System.out.print(a b c);break;}}} }C、求满足条件的日期 对一个日期我们可以计算出年份的各个数位上的数字之和也可以分别计算月和日的各位数字之和。请问从1900年1月1日至9999年12月31日总共有多少天年份的数位数字之和月的数位之和日的数位之和。 例如2022年11月13日满足要求因为624 请求出满足条件的日期总数量 思路 数组记录1——12月每一个月的天数注意闰年2月为29天然后三重暴力循环计算即可 答案70910 import java.util.*;public class abc {public static void main(String[] args){Scanner scnew Scanner(System.in);int res0;int[] a {0,31,28,31,30,31,30,31,31,30,31,30,31};for(int i1900;i9999;i){String yString.valueOf(i);for(int j1;j12;j){if(i%4000||(i%40i%100!0)) a[2]29;else a[2]28;String mString.valueOf(j);for(int k1;ka[j];k){String dString.valueOf(k);if(ck(y,m,d)) res;}}}System.out.print(res);}public static boolean ck(String y,String m,String d){int yy0,mm_dd0;for(char c:y.toCharArray()) yyc-0;for(char c:m.toCharArray()) mm_ddc-0;for(char c:d.toCharArray()) mm_ddc-0;if(yymm_dd) return true;return false;} D、 取数字 - 二分 小蓝有30个数分别为9922516372612088402163301118991293167536492884349652825177 小蓝可以从这些数中取出两个序号不同的数共30*29/2435种取法 请问这435种取法中有多少种取法取出的两个数乘积大于等于2022 思路 直接暴力枚举二分优化答案是189 1暴力 public class Main4 {public static void main(String[] args) {int res0;int[] a{99, 22, 51, 63, 72, 61, 20, 88, 40, 21, 63, 30, 11, 18, 99, 12, 93, 16, 7, 53, 64, 9, 28, 84, 34, 96, 52, 82, 51, 77};for(int i0;i30;i)for(int ji1;j30;j ) if(a[i]*a[j]2022) res;System.out.println(res);} }2二分 import java.util.*;public class abc {public static void main(String[] args){Scanner scnew Scanner(System.in);int res0;int[] a {99, 22, 51, 63, 72, 61, 20, 88, 40, 21, 63, 30, 11, 18, 99, 12, 93, 16, 7, 53, 64, 9, 28, 84, 34, 96, 52, 82, 51, 77};Arrays.sort(a);for(int i0;ia.length-1;i) //最后一个数没有后续配对的{int target(int)Math.ceil(2022*1.0/a[i]);int idxbinary(a,target,i1,a.length-1); //在【i1,n-1】区间找防止重复if(2022/a[i]a[idx]) continue;resa.length-idx;}System.out.print(res);}public static int binary(int[] a,int target,int l,int r){while(lr){int midlr1;if(a[mid]target) rmid;else lmid1;}return r;} } E、最大连通块 - bfs 小蓝有一个 30 行 60 列的数字矩阵矩阵中的每个数都是 0 或 1 。   110010000011111110101001001001101010111011011011101001111110 010000000001010001101100000010010110001111100010101100011110 001011101000100011111111111010000010010101010111001000010100 101100001101011101101011011001000110111111010000000110110000 010101100100010000111000100111100110001110111101010011001011 010011011010011110111101111001001001010111110001101000100011 101001011000110100001101011000000110110110100100110111101011 101111000000101000111001100010110000100110001001000101011001 001110111010001011110000001111100001010101001110011010101110 001010101000110001011111001010111111100110000011011111101010 011111100011001110100101001011110011000101011000100111001011 011010001101011110011011111010111110010100101000110111010110 001110000111100100101110001011101010001100010111110111011011 111100001000001100010110101100111001001111100100110000001101 001110010000000111011110000011000010101000111000000110101101 100100011101011111001101001010011111110010111101000010000111 110010100110101100001101111101010011000110101100000110001010 110101101100001110000100010001001010100010110100100001000011 100100000100001101010101001101000101101000000101111110001010 101101011010101000111110110000110100000010011111111100110010 101111000100000100011000010001011111001010010001010110001010 001010001110101010000100010011101001010101101101010111100101 001111110000101100010111111100000100101010000001011101100001 101011110010000010010110000100001010011111100011011000110010 011110010100011101100101111101000001011100001011010001110011 000101000101000010010010110111000010101111001101100110011100 100011100110011111000110011001111100001110110111001001000111 111011000110001000110111011001011110010010010110101000011111 011110011110110110011011001011010000100100101010110000010011 010011110011100101010101111010001001001111101111101110011101如果从一个标为 1 的位置可以通过上下左右走到另一个标为 1 的位置则称两个位置连通。与某一个标为 1 的位置连通的所有位置包括自己组成一个连通分块。   请问矩阵中最大的连通分块有多大 思路 答案是148 bfs进入为1的点上下左右扩展计数最后求每一次bfs最大值即可模板提  import java.util.*;public class abc {static int n30,m60;static int[][] gnew int[n][m];static int[][] stnew int[n][m];static int[] dx{0,0,1,-1},dy {1,-1,0,0};public static void main(String[] args){Scanner scnew Scanner(System.in);String t;for(int i0;in;i){String ssc.next();for(int j0;jm;j) g[i][j]s.charAt(j)-0;}int res0;for(int i0;in;i){for(int j0;jm;j){if(g[i][j]1st[i][j]0)resMath.max(res, bfs(i,j));}}System.out.print(res);}public static int bfs(int x,int y){int cnt1;st[x][y]1;QueuePII qnew LinkedList();q.offer(new PII(x,y));while(!q.isEmpty()){PII tq.poll();int xxt.x,yyt.y;for(int i0;i4;i){int nxdx[i]xx,nydy[i]yy;if(nx0nxnny0nymst[nx][ny]0g[nx][ny]1){st[nx][ny]1;q.offer(new PII(nx,ny));cnt;}}}return cnt;}} class PII {int x,y;PII(int x,int y){this.xx;this.yy;} } F、哪一天 1n10^6 思路 注意特判整除7的情况不能输出0应该输出7  import java.util.*;public class abc {public static void main(String[] args){Scanner scnew Scanner(System.in);int wsc.nextInt(),nsc.nextInt();int res(wn%7)%7;System.out.print(res0? 7:res);} } G、信号覆盖 - bfs 问题描述         小蓝负责一块区域的信号塔安装整块区域是一个长方形区域建立坐标轴后西南角坐标为 (0, 0) 东南角坐标为 (W, 0) 西北角坐标为 (0, H) 东北角坐标为 (W, H)。其中 W, H 都是整数。         他在 n 个位置设置了信号塔每个信号塔可以覆盖以自己为圆心半径为 R 的圆形包括边缘。         为了对信号覆盖的情况进行检查小蓝打算在区域内的所有横纵坐标为整数的点进行测试检查信号状态。其中横坐标范围为 0 到 W纵坐标范围为 0 到 H总共测试 (W1) * (H1) 个点。         给定信号塔的位置请问这 (W1)*(H1) 个点中有多少个点被信号覆盖。 输入格式         输入第一行包含四个整数 W, H, n, R相邻整数之间使用一个空格分隔。         接下来 n 行每行包含两个整数 x, y表示一个信号塔的坐标。信号塔可能重合表示两个信号发射器装在了同一个位置。 输出格式         输出一行包含一个整数表示答案。 样例输入 10 10 2 5 0 0 7 0 样例输出 57 评测用例规模与约定 1 W, H 100 1 n 100 1 R 100 0 x W 0 y H 1bfs60% can you tell me why  思路 st数组标记被覆盖的坐标点对于每个信号塔进行bfs对每个点上下左右扩展 若【在合法范围内】且【未标记】且【该点到信号塔的距离r】则入队标记 并统计覆盖点范围 import java.util.*;public class abc {static int[][] st;static int res0,r,h,w,n;static int[] dx{0,0,1,-1},dy {1,-1,0,0};public static void main(String[] args){Scanner scnew Scanner(System.in);wsc.nextInt();hsc.nextInt();nsc.nextInt();rsc.nextInt();stnew int[w1][h1];for(int i0;in;i){int xsc.nextInt(),ysc.nextInt();bfs(x,y);}for(int i0;iw;i)for(int j0;jh;j) if(st[i][j]1) res;System.out.print(res);}public static void bfs(int x,int y){st[x][y]1;QueuePII qnew LinkedList();q.offer(new PII(x,y));while(!q.isEmpty()){PII tq.poll();int xxt.x,yyt.y;for(int i0;i4;i){int nxdx[i]xx,nydy[i]yy;if(nx0nxwny0nyhst[nx][ny]0ck(x,y,nx,ny)){q.offer(new PII(nx,ny));st[nx][ny]1;}}}}public static boolean ck(int x,int y,int nx,int ny){int dis(x-nx)*(x-nx)(y-ny)*(y-ny);if(disr*r) return true;return false;} } class PII {int x,y;PII(int x,int y){this.xx;this.yy;} } 2暴力 import java.util.*;public class Main {public static void main(String[] args) {Scanner scan new Scanner(System.in);int w scan.nextInt(), h scan.nextInt(), n scan.nextInt(), r scan.nextInt();int[][] arr new int[n][2];for (int i 0; i n; i) {arr[i][0] scan.nextInt();arr[i][1] scan.nextInt();}int count 0;for (int i 0; i w; i) {for (int j 0; j h; j) {if (check(arr, n, r, i, j)) {count;}}}System.out.println(count);}public static boolean check(int[][] arr, int n, int r, int x, int y) {for (int i 0; i n; i) {int x0 x - arr[i][0];int y0 y - arr[i][1];if (x0 * x0 y0 * y0 r * r) return true;}return false;} } H、清理水域 - 暴力弱智版 可以差分 import java.util.*;public class abc {public static void main(String[] args){Scanner scnew Scanner(System.in);int nsc.nextInt(),msc.nextInt(),tsc.nextInt();int[][] gnew int[n1][m1];int res0;while(t--0){int r1sc.nextInt(),c1sc.nextInt(),r2sc.nextInt(),c2sc.nextInt();for(int ir1;ir2;i)for(int jc1;jc2;j) g[i][j]1;}for(int i1;in;i)for(int j1;jm;j) if(g[i][j]0) res;System.out.print(res);}} I、滑行 - dfs dp 输入格式   输入第一行包含两个整数 n, m用一个空格分隔。   接下来 n 行每行包含 m 个整数相邻整数之间用一个空格分隔依次表示每个位置的高度。输出格式   输出一行包含一个整数表示答案。 样例输入 4 5 1 4 6 3 1 11 8 7 3 1 9 4 5 2 1 1 3 2 2 1样例输出 7 样例说明   滑行的位置一次为 (2, 1), (2, 2), (2, 3), (3, 3), (3, 2), (4, 2), (4, 3)。 评测用例规模与约定   对于 30% 评测用例1 n 201 m 200 高度 100。   对于所有评测用例1 n 1001 m 1000 高度 10000。 1dfs30% import java.util.*; import java.math.*;public class Main {static int res0;static int[] dx{0,0,1,-1},dy{1,-1,0,0};public static void main(String[] args) {Scanner sc new Scanner(System.in);int nsc.nextInt(),msc.nextInt();int[][] gnew int[n][m];for(int i0;in;i)for(int j0;jm;j) g[i][j]sc.nextInt();for(int i0;in;i)for(int j0;jm;j){dfs(i,j,g,1,n,m);}System.out.print(res);sc.close();}public static int dfs(int x,int y,int[][] g,int cnt,int n,int m){for(int i0;i4;i){int nxxdx[i],nyydy[i];if(nx0nxnny0nymg[nx][ny]g[x][y]){cnt;resMath.max(res,cnt);dfs(nx,ny,g,cnt,n,m);cnt--;}}return cnt;} } 2dpdfs100%  思路 定义d[i][j]为从ij出发能滑行的最长距离则求出max每个d[i][j]即可 import java.util.*; import java.math.*;public class Main {static int n,m,res0;static int[][] g,d;static int[] dx{0,0,1,-1},dy{1,-1,0,0};public static void main(String[] args) {Scanner sc new Scanner(System.in);nsc.nextInt();msc.nextInt();gnew int[n][m];dnew int[n][m];for(int i0;in;i)for(int j0;jm;j) {g[i][j]sc.nextInt();}for(int i0;in;i)for(int j0;jm;j)resMath.max(res,dfs(i,j));System.out.print(res);sc.close();}public static int dfs(int x,int y){if(d[x][y]!0) return d[x][y]; //如果这个点被访问过返回从这个点能滑行的最大距离d[x][y]1;for(int i0;i4;i){int nxxdx[i],nyydy[i];if(nx0nxnny0nymg[nx][ny]g[x][y]){d[x][y]Math.max(d[x][y],dfs(nx,ny)1);}}return d[x][y];} }
http://www.w-s-a.com/news/270146/

相关文章:

  • 网站见建设seo外链自动群发工具
  • 在境外做网站网站团购网站seo
  • 进网站后台加什么360推广 网站建设
  • 网站备案号码专做网站漏扫的工具
  • 罗店网站建设wordpress响应式
  • 网站怎么制作小程序wordpress实时获取qq资料
  • 网站的流量怎么赚钱经销做网站都有什么好处
  • 如何做好网站首页企术建站
  • 杭州网站建设咨询蓝韵网络聊城有制作网站的吗
  • 网站开发注意的事项深圳企业网站
  • 哈尔滨网站制作哪里专业网站建设维护有哪些内容
  • 花的网站建设规划书网络营销培训
  • 又拍云wordpress全站cdn无锡做网站品牌公司
  • 计算机网络工程网站建设黄石建设信息网站
  • 旅游网站开发毕业设计开题报告青岛网站建设服务公司
  • 人员调动在网站上怎么做网站开发课程意见和建议
  • 卓训网是个什么网站wordpress命令执行时间
  • 网站建设需要做哪些工作网片焊接
  • 网站优化方案dedecms win8风格网站模板
  • 企业如何制作网站管理系统慈溪住房和城乡建设部网站
  • 青岛网站建设有哪些公司区块链网站开发价格
  • 怎么设置网站的logo微信公众号的h5网站开发6
  • 粉色的网站绍兴市建设局网站
  • 个人网站的基本风格是wordpress 模板选择
  • 南昌专业做网站公司有哪些广州市住房城乡建设部门户网站
  • 福州网站建设团队淘宝联盟网站怎么建设
  • 福州企业网站建站模板国内黑色风格的网站
  • 好看的网站首页设计android移动开发
  • 域名注册完成后如何做网站域名 删除 wordpress
  • wordpress xml导入大小东莞seo优化方案