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

每日一题(小白)模拟娱乐篇14

直接理解题意,一分钟扩散一次,那么2020分钟也就是需要循环2020次,然后加入扩散后的条件,每一个次扩散使方格子的总量+1(只要有一个点扩散就无需看其他的点),若干次循环过后总数之和即所有黑色格子进行计数的结果。

每次扩散相当于增加一层外围+4.

我们考虑其中重复的覆盖区域,只需要判断上方和右方取到的最大值,因为下方必定能被(0,0)扩散到。即0,0为下方和左方扩散的最大值。在此基础上加减2020即可得到最大的范围。

代码如下👇

public static void Kuosan() {
		int[][] point = new int[][] {{0,0},{2020,11},{11,14},{2000,2000}};
        long result = 0;
        for (int i = -2050; i <= 4050; i++) {//最大和最右都分析过,这里多加点
            for (int j = -2050; j <= 4050; j++) {
                for (int k = 0; k < 4; k++) {//判断每个点
                    int x = point[k][0];
                    int y = point[k][1];
                    if (Math.abs(i - x) + Math.abs(j - y) <= 2020) {//判断是否在2020步内
                        result++;
                        break;
                    }
                }
            }
        }
        System.out.print(result);
	}

分开调用👇

	static int[][] point = new int[][] {{0,0},{2020,11},{11,14},{2000,2000}};
	public static void main(String[] args) {
		Scanner scanner =new Scanner(System.in);
		int result=0;
		 for (int i = -2050; i <= 4050; i++) {//最大和最右都分析过,这里多加点
	            for (int j = -2050; j <= 4050; j++) {
	            	if (Kuosanl(i, j)) {
						result++;
					}
	            }
	        }
		 System.out.println(result);
		scanner.close();
		
	}
	public static boolean Kuosanl(int x,int y) {
		for (int[] xy:point) {//每次取一行,也就是判断一个黑点
			if (Math.abs(x-xy[0])+Math.abs(y-xy[1])<=2020) {//0为x轴,1为y轴下标
				return true;//只要满足说明已经扩散。直接返回
			}
		}
		return false;
	}

http://www.dtcms.com/a/113561.html

相关文章:

  • BN测试和训练时有什么不同, 在测试时怎么使用?
  • 【C++项目】从零实现RPC框架「四」:业务层实现与项目使用
  • 【51单片机】2-7【I/O口】点亮数码管
  • 线程池的工作原理
  • 线代[12]|《高等几何》陈绍菱(1984.9)(文末有对三大空间的分析及一个合格数学系毕业生的要求)
  • Python 语法学习 1(类比 java 学习)-附Python 中 self
  • 前端用用jsonp的方式解决跨域问题
  • [ICLR 2025]Biologically Plausible Brain Graph Transformer
  • Reids 的io并发模型
  • 程序化广告行业(60/89):算法优化与DSP系统实例解析
  • Linux系统程序设计:从入门到高级Day03
  • 第八章:流量治理_《凤凰架构:构建可靠的大型分布式系统》
  • DDPM 做了什么
  • 2007-2019年各省地方财政其他支出数据
  • 格式工厂怎样插入内置音频文件
  • 硬件工程师面试问题(五):蓝牙面试问题与详解
  • 在响应式网页的开发中使用固定布局、流式布局、弹性布局哪种更好
  • vllm作为服务启动,无需额外编写sh文件,一步到位【Ubuntu】
  • 『Linux_网络』 第一章 网络基础概念
  • 分表字段选择策略:以电商交易订单为例的最佳实践
  • Java项目之基于ssm的怀旧唱片售卖系统(源码+文档)
  • 大数据时代的隐私保护:区块链技术的创新应用
  • 通过构造函数和几何条件,研究了不同函数的最近点存在性、性质及单调性
  • ZKmall开源商城多云高可用架构方案:AWS/Azure/阿里云全栈实践
  • 紧急更新!MinIO发布RELEASE.2025-04-03T14-56-28Z版本,修复高危漏洞CVE-2025-31489,用户需立即升级!
  • raft协议中一条数据写入流程
  • Java 实现插入排序:[通俗易懂的排序算法系列之三]
  • 文献总结:TPAMI综述BEV感知—Delving into the devils of bird‘s-eye-view perception
  • Socket编程TCP
  • HarmonyOS:WebView 控制及 H5 原生交互实现