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

备战蓝桥杯(java)(日益更新)

备战蓝桥杯(java)(日益更新)


文章目录

  • 备战蓝桥杯(java)(日益更新)
  • 前言:
  • 一、c++ 到 java 须要注意的地方:
  • 二、多练java代码:(用java代码写算法模版)
    • 1. acwing1277 分巧克力:
    • 2. acwing5407 管道:
    • 3. acwing562 壁画
    • 4. acwing1230 K倍区间
    • 5. acwing4262 空调
    • 6. acwing5396 棋盘
  • 总结


前言:

将 c++ 代码 转换为 java 代码


提示:以下是本篇文章正文内容:

一、c++ 到 java 须要注意的地方:

  1. java中,如何实现像c++那样,typedef long long LL;
  2. java中,如何实现像c++那样,const int N = 1e5 + 10;
  3. java中,如何实现像c++那样,int n, m; int h[N], w[N];
  4. java中,如何实现像c++那样,scanf(“%d%d”, &n, &m);
  5. java中,如何实现像c++那样,#define x first #define y second typedef pair<int, int> PII;
  6. java中,如何实现像c++那样int l = max(1, L - t), r = min((LL)m, (LL)L + t);
  7. java中,如何实现像c++那样,sort(q, q+cnt)
  8. java中,如何实现像c++那样, bool check(int mid)
  9. java中,如何实现像c++那样,for(int i = 0; i < n; i ++) scanf(“%d%d”, &h[i], &w[i]);
  10. java中,如何实现像c++那样,for(int i = 0; i < n; i ++) scanf(“%d%d”, &w[i].x, &w[i].y);

二、多练java代码:(用java代码写算法模版)


1. acwing1277 分巧克力:

import java.util.Scanner;public class acwing1227分巧克力 {static final int N = 100010;// 全局常量static int n, m;// 全局变量static int h[] = new int[N];static int w[] = new int[N];// 二分“二段性”判断static boolean check(int mid){long res = 0;for(int i = 0; i < n; i ++){res += h[i] / mid * (w[i] / mid);if(res >= m) return true;}return false;}public static void main(String[] args) {Scanner scan = new Scanner(System.in);int n = scan.nextInt();int m = scan.nextInt();// 输入方式!!!for (int i = 0; i < n; i++){h[i] = scan.nextInt();w[i] = scan.nextInt();}int l = 1, r = 100000;while(l < r){// int mid = (l + r + 1) / 2;int mid = l + (r - l + 1) / 2;if(check(mid)) l = mid;else r = mid - 1;}System.out.println(r);scan.close();}}// 思考:为什么答案不对???


2. acwing5407 管道:

import java.util.Arrays;
import java.util.Comparator;
import java.util.Scanner;public class acwing5407管道 {static class Pair {public final Integer first;public final Integer second;public Pair(Integer first, Integer second) {this.first = first;this.second = second;}}static int N = 100010;static int n, m;static Pair[] w = new Pair[N];// 位于Li阀门会在Si时刻打开static Pair[] q = new Pair[N];// 二分后,区间的左右端点static boolean check(int mid){int cnt = 0;for(int i = 0; i < n; i ++){int L = w[i].first, S = w[i].second;// 位置,打开时刻if(S <= mid){int t = mid - S;int l = (int) Math.max(1, L - t);int r = (int)Math.min((long)m, (long)L + t);q[cnt ++] = new Pair(l, r);// 注意}}// sort(q, q + cnt);// Java中没有直接对数组部分排序的方法,需要先将这部分元素提取出来Pair[] toSort = Arrays.copyOfRange(q, 0, cnt); // 提取前cnt个元素// 对提取出来的数组进行排序Arrays.sort(toSort, Comparator.comparingInt(i -> i.first));// 将排序后的元素放回原数组System.arraycopy(toSort, 0, q, 0, cnt);int st = -1, ed = -1;for(int i = 0; i < cnt; i ++){if(q[i].first <= ed + 1) ed = Math.max(ed, q[i].second);else{st = q[i].first;ed = q[i].second;}}return st == 1 && ed == m;}public static void main(String[] args) {Scanner scan = new Scanner(System.in);n = scan.nextInt();m = scan.nextInt();for (int i = 0; i < n; i++){int first = scan.nextInt();int second = scan.nextInt();w[i] = new Pair(first, second);}int l = 0, r = 2000000000;// 2e9while(l < r){// int mid = (long)l + r >> 1;int mid = (int)((long)l + r >> 1);if(check(mid)) r = mid;else l = mid + 1;}System.out.println(r);scan.close();}}


3. acwing562 壁画

import java.util.Scanner;public class acwing562壁画 {static final int N = 100010;static int n;static int[] s = new int[N];static String str;public static void main(String[] args) {Scanner scan = new Scanner(System.in);int T = scan.nextInt();for(int cases = 1; cases <= T; cases ++){n = scan.nextInt();str = " " + scan.next();for(int i = 1; i <= n; i ++)s[i] = s[i - 1] + str.charAt(i) - '0';int res = 0;int m = (n + 1) / 2;for(int i = m; i <= n; i ++)res = Math.max(res, s[i] - s[i - m]);System.out.println("Case #" + cases + ":" + res);}scan.close();}
}
/*
4
4
1332
Case #1:6
4
9583
Case #2:14
3
616
Case #3:7
10
1029384756
Case #4:31*/

4. acwing1230 K倍区间

import java.util.Scanner;public class acwing1230K倍区间 {//定义全局变量:static final int N = 100010;static int n, k;static long[] s = new long[N];static int[] cnt = new int[N];public static void main(String[] args) {Scanner scan = new Scanner(System.in);n = scan.nextInt();k = scan.nextInt();for(int i = 1; i <= n; i ++){s[i] = scan.nextInt();s[i] += s[i - 1];// 前缀和}long res = 0;cnt[0] ++;for(int i = 1; i <= n; i ++){res += cnt[(int) (s[i] % k)];cnt[(int)s[i] % k] ++;}System.out.println(res);scan.close();}
}
/*
5 2
1
2
3
4
5
6*/

5. acwing4262 空调

import java.util.Scanner;public class acwing4262空调 {// 全局变量:static final int N = 100010;static int n;static  int[] a = new int[N];public static void main(String[] args) {Scanner scan = new Scanner(System.in);n = scan.nextInt();for(int i = 1; i <= n; i ++) a[i] = scan.nextInt();for(int i = 1; i <= n; i ++){int b = scan.nextInt();a[i] -= b;}for(int i = n; i >= 1; i --) a[i] -= a[i - 1];int pos = 0, neg = 0;for(int i = 1; i <= n; i ++){if(a[i] >0) pos += a[i];else neg -= a[i];}System.out.println(Math.max(pos, neg));scan.close();}
}
/*
5
1 5 3 3 4
1 2 2 2 1
5*/

6. acwing5396 棋盘

import java.util.Scanner;public class acwing5396棋盘 {static final int N = 2010;static int n, m;static int[][] b = new int[N][N];public static void main(String[] args) {Scanner scan = new Scanner(System.in);n = scan.nextInt();m = scan.nextInt();while (m-- > 0) {int x1 = scan.nextInt();int y1 = scan.nextInt();int x2 = scan.nextInt();int y2 = scan.nextInt();b[x1][y1] ++;b[x1][y2 + 1]--;b[x2 + 1][y1]--;b[x2 + 1][y2 + 1]++;}for (int i = 1; i <= n; i++) {for (int j = 1; j <= n; j++) {b[i][j] += b[i - 1][j] + b[i][j - 1] - b[i - 1][j - 1];System.out.print(b[i][j] & 1);}System.out.println();}scan.close();}
}

总结

提示:这里对文章进行总结:

💕💕💕

http://www.lryc.cn/news/335833.html

相关文章:

  • 06 Php学习:字符串
  • python画图Matplotlib和Seaborn
  • 一体式I/O模块与RS485串口联动,实现工业网络无缝对接
  • 如何在Uniapp真机中使用H.265无插件流媒体播放器EasyPlayer
  • 【MySQL数据库 | 第二十五篇】深入探讨MVCC底层原理
  • 【LAMMPS学习】八、基础知识(1.6) LAMMPS 与其他代码耦合
  • ArrayList中多线程的不安全问题
  • ALTER TABLE 之 定点变更(in-place alter)
  • 【RAG实践】Rerank,让大模型 RAG 更近一步
  • 私有化客服系统:在线客服搭建与部署的创新之路
  • VM-UNet: Vision Mamba UNet for Medical Image Segmentation
  • 面向对象编程:在Python中的面向对象编程奥秘
  • 考研数学|零基础100分保底复习方案+资料分享
  • 【MATLAB源码-第29期】基于matlab的MIMO,MISO,SIMO,SISO瑞利rayleigh信道容量对比。
  • JRT高效率开发
  • Spring Boot 切面的一种的测试方法,java中级开发面试
  • 嵌入式自学路线-高薪路线(持续更新,欢迎关注)
  • SpringMVC的运行流程
  • 成绩分析 蓝桥杯 java
  • 计算psnr ssim niqe fid mae lpips等指标的代码
  • OpenHarmony开发技术:【国际化】实例
  • c++子类和父类成员函数重名
  • 《C++程序设计》阅读笔记【7-堆和拷贝构造函数】
  • 洛谷 P1048 [NOIP2005 普及组] 采药
  • VMware vSphere虚拟化基础管理平台
  • leetcode刷题-代码训练营-第7章-回溯算法1
  • 三种常见webshell工具的流量特征分析
  • pkg打包nodejs程序用动态require路由出现问题
  • 设计模式(018)行为型之策略模式
  • c++关键字: =delete和=default