CSP-201912-2-回收站选址

CSP-201912-2-回收站选址

【50分思路-暴力枚举】

#include <iostream>    
#include <vector>
#include <algorithm>
using namespace std;
struct trashPoint
{int x; int y;
};
vector<trashPoint>trashList;
vector<int>grade(5);
int main() {int n, max_x = -1, max_y = -1, min_x = 999, min_y = 999;cin >> n;for (int i = 0; i < n; i++){trashPoint t;cin >> t.x >> t.y;max_x = max(max_x, t.x), max_y = max(max_y, t.y);min_x = min(min_x, t.x), min_y = min(min_y, t.y);trashList.push_back(t);}int deltaX = max_x - min_x, deltaY = max_y - min_y; int moveX = min_x, moveY = min_y;vector<vector<bool>>tashMatrix(deltaX + 1, vector<bool>(deltaY + 1));for (const auto& it : trashList){tashMatrix[it.x - moveX][it.y - moveY] = 1;}for (int i = 1; i < deltaX; i++){for (int j = 1; j < deltaY; j++){int myGrade = 0;if (tashMatrix[i][j] && tashMatrix[i][j + 1] && tashMatrix[i][j - 1] && tashMatrix[i + 1][j] && tashMatrix[i - 1][j]){if (tashMatrix[i - 1][j - 1])myGrade++;if (tashMatrix[i + 1][j + 1])myGrade++;if (tashMatrix[i - 1][j + 1])myGrade++;if (tashMatrix[i + 1][j - 1])myGrade++;grade[myGrade]++;}}}for (const auto& it : grade) {cout << it << endl;}return 0;
}

【100分思路】

  1. 读取数据:初始化一个二维向量 coords 存储每个垃圾点的坐标。对于每个垃圾点,代码读取其横纵坐标 (x, y) 并存储在 coords 中。

  2. 计算相邻点数量:对于每个垃圾点,代码计算其直接相邻的垃圾点数量(即上下左右四个方向)。这是通过比较每个点与其他所有点的坐标来完成的,如果两个点在水平或垂直方向上相邻(差一个单位距离),则它们被认为是相邻的。对于每个点,它的相邻垃圾点的数量被记录在 adjacentCount 向量中。

  3. 评分回收站选址:根据题目的要求,一个地点适合建立回收站的条件是它有四个直接相邻的垃圾点。对于每个符合这一条件的垃圾点,代码会进一步检查其四个对角线方向上的垃圾点的数量。对角线上的垃圾点数量将决定该地点的评分,评分范围是 0 到 4。每个可能的评分值都有一个对应的计数,记录在 diagonalCounts 向量中。

  4. 输出结果:最后,代码输出每个评分值的回收站选址数量。对于每个从 0 到 4 的评分值,它打印出相应的计数值,这些值表示评分为该值的合适回收站选址的数量。

完整代码

#include<iostream> 
#include<vector> 
using namespace std;int main() {int n; cin >> n; vector<vector<long long>> coords(n, vector<long long>(2)); // 二维向量存储坐标vector<int> adjacentCount(n, 0); // 创建一个向量存储每个点相邻点的数量vector<int> diagonalCounts(5, 0); // 创建一个向量存储对角线上点的数量分布// 读取坐标数据for (int i = 0; i < n; i++) {cin >> coords[i][0] >> coords[i][1]; // 读取每个坐标}// 计算每个点的相邻点数量for (int i = 0; i < n; i++) {for (int j = i + 1; j < n; j++) {// 检查是否为相邻点(水平或垂直相邻)if ((coords[i][0] == coords[j][0] && abs(coords[i][1] - coords[j][1]) == 1) ||(coords[i][1] == coords[j][1] && abs(coords[i][0] - coords[j][0]) == 1)) {adjacentCount[i]++;adjacentCount[j]++;}}}// 统计每个点对角线上的点的数量for (int i = 0; i < n; i++) {int diagCount = 0; // 对角线上的点数量if (adjacentCount[i] == 4) { // 如果一个点有4个相邻点,则检查其对角线上的点for (int j = 0; j < n; j++) {// 检查是否为对角线上的点if (abs(coords[i][0] - coords[j][0]) == 1 && abs(coords[i][1] - coords[j][1]) == 1) {diagCount++;}}diagonalCounts[diagCount]++; // 根据对角线上的点的数量增加对应的计数}}for (int i = 0; i <= 4; i++) {cout << diagonalCounts[i] << endl; }return 0; // 程序结束
}

请添加图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/2822216.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

xxl-job异步任务日志打印到调度器任务管理日志

文章目录 1. xxl-job-core模块添加过滤器2. 执行器logback.xml添加过滤器配置3. 测试 1. xxl-job-core模块添加过滤器 package com.xxl.job.core.config;import ch.qos.logback.classic.spi.ILoggingEvent; import ch.qos.logback.classic.spi.ThrowableProxy; import ch.qos.…

Netty之ChannelHandlerMask详解

Netty的ChannelHandlerMask是用于标记ChannelHandler的位掩码。它被用于指示ChannelHandler的事件处理方式。ChannelHandlerMask 定义了ChannelHandler所有事件。 final class ChannelHandlerMask {static final int MASK_EXCEPTION_CAUGHT 1;static final int MASK_CHANNEL_…

SpringBoot多数据源最佳实践

为什么需要spring boot多数据源 最常见的场景就是单体架构系统需要跨库进行业务增删改查,例如一个购车系统可能需要查询用户信息,然后在进行购买汽车的逻辑。而用户表和汽车表可能不在一个数据库中。 如下图所示,可能一个购买汽车的下单流程为: 用户提交请求。 基于id到数…

【InternLM 实战营笔记】浦语·灵笔的图文理解及创作部署、 Lagent 工具调用 Demo

浦语灵笔的图文理解及创作部署 浦语灵笔是基于书生浦语大语言模型研发的视觉-语言大模型&#xff0c;提供出色的图文理解和创作能力&#xff0c;结合了视觉和语言的先进技术&#xff0c;能够实现图像到文本、文本到图像的双向转换。使用浦语灵笔大模型可以轻松的创作一篇图文推…

mybatis原理图,我拿到了梦寐以求的字节跳动和腾讯双offer

Kafka 如何做到支持百万级 TPS &#xff1f; 先用一张思维导图直接告诉你答案&#xff1a; 顺序读写磁盘 生产者写入数据和消费者读取数据都是顺序读写的&#xff0c;先来一张图直观感受一下顺序读写和随机读写的速度&#xff1a; 从图中可以看出传统硬盘或者SSD的顺序读写甚…

MySQL 多表查询 连接查询 外连接

介绍 MySQL 多表查询 连接查询 内连接 外连接分为两种&#xff0c;左外和右外连接&#xff0c; 左外&#xff1a;相当于查询表1(左表)的所有数据 包含 表1和表2交集部分的数据,完全包含左表的数据 右外&#xff1a;相当于查询表2(右表)的所有数据 包含 表1和表2交集部分的数据…

攻防世界例题wp

1.看到_wakeup()函数第一反应要么触发&#xff0c;要么绕过在这里绕过 2.构造payload实例化一个对象后反序列化 3构造脚本如下&#xff1a; 4.因为它是一个绕过的方法所以我们要使用绕过的方法。 5.继续构造payload将上图的1换成2进行绕过 最终的payload为 O:4:"xctf…

消息队列+更新DB极易引发的DB并发修改bug

背景 我们在生产系统中和其他系统进行交互时一般都会通过消息队列来解耦生产者和消费者&#xff0c;然后通过每个使用方消费消息队列的消息的方式来完成消息的消费&#xff0c;并且一般来说我们消费消息后极有可能会操作DB&#xff0c;不过这种方式如果处理不够仔细&#xff0…

[攻防世界]-Web:fileclude解析

查看网页 代码审计&#xff1a; file_get_contents($file2)&#xff1a;读取文件内容并将内容返回 解法一payload&#xff1a; ?file1php://filter/readconvert.base64-encode/resourceflag.php&file2data://text/plain,hello%20ctf 解法二payload&#xff1a;

AI新工具(20240229) Ideogram 1.0先进的文本转图像模型发布;search2ai让 LLM API 支持联网搜索

1: LTX Studio LTX Studio开放测试&#xff0c;用户可以通过输入文本来生成超过25秒的微电影视频 LTX Studio是由著名AI平台Lightricks推出的生成式AI电影制作平台。用户可以通过输入文本来生成超过25秒的微电影视频&#xff0c;并且可以对视频的镜头切换、角色、场景一致性、…

C++的晨曦之旅:开启编程的新篇章

个人主页&#xff1a;日刷百题 系列专栏&#xff1a;〖C/C小游戏〗〖Linux〗〖数据结构〗 〖C语言〗 &#x1f30e;欢迎各位→点赞&#x1f44d;收藏⭐️留言&#x1f4dd; ​ ​ 一、 命名空间 在 C/C 中&#xff0c;变量、函数和后面要学到的类都是大量存在的&#xff0…

继电保护测试仪

武汉凯迪正大继电保护测试仪主要特点 1&#xff0e;满足现场试验要求。本仪器具有标准的四相电压&#xff0c;三相电流输出&#xff0c;既可对传统的各种继电器及保护装置进行试验&#xff0c;也可对现代各种微机保护进行各种试验&#xff0c;特别是对变压器差功保护和备自投装…

南方电网的能源棋局上,蔚来换电扮演什么角色?

2 月 26 日&#xff0c;南网储能科技与蔚来能源签署协议&#xff0c;将充换电站、储能站、可调负载等聚合资源连接到虚拟电厂平台&#xff0c;推动换电站作为分布式储能在虚拟电厂项目上的应用。 蔚来换电站是国内首个智慧微电网型分布式换电设施&#xff0c;可透过换电订单预…

【递归搜索回溯专栏】前言与本专栏介绍

本专栏内容为&#xff1a;递归&#xff0c;搜索与回溯算法专栏。 通过本专栏的深入学习&#xff0c;你可以了解并掌握算法。 &#x1f493;博主csdn个人主页&#xff1a;小小unicorn ⏩专栏分类&#xff1a;递归搜索回溯专栏 &#x1f69a;代码仓库&#xff1a;小小unicorn的代…

【YOLO v5 v7 v8 小目标改进】ODConv:在卷积核所有维度(数量、空间、输入、输出)上应用注意力机制来优化传统动态卷积

ODConv&#xff1a;在卷积核所有维度&#xff08;数量、空间、输入、输出&#xff09;上应用注意力机制来优化传统的动态卷积 提出背景传统动态卷积全维动态卷积效果 小目标涨点YOLO v5 魔改YOLO v7 魔改YOLO v8 魔改 论文&#xff1a;https://openreview.net/pdf?idDmpCfq6Mg…

LeetCode54题:螺旋矩阵(python3)

路径的长度即为矩阵中的元素数量&#xff0c;当路径的长度达到矩阵中的元素数量时即为完整路径&#xff0c;将该路径返回。 循环打印&#xff1a; “从左向右、从上向下、从右向左、从下向上” 四个方向循环打印。 class Solution:def spiralOrder(self, matrix: List[List[i…

计算机网络_2.2物理层下面的传输媒体

2.2物理层下面的传输媒体 一、传输媒体的分类二、导向型传输媒体1、同轴电缆2、双绞线3、光纤&#xff08;1&#xff09;光纤通信原理&#xff08;2&#xff09;光纤组成&#xff08;4&#xff09;多模光纤与单模光纤对比&#xff08;5&#xff09;光纤的波长与规格&#xff08…

AttributeError: ‘list‘ object has no attribute ‘view‘

问题描述 训练yolov9的时候遇到了下面的问题。 In loss_tal.py: pred_distri, pred_scores torch.cat([xi.view(feats[0].shape[0], self.no, -1) for xi in feats], 2).split( (self.reg_max * 4, self.nc), 1) The error is as follows&#xff1a; AttributeError: list …

NLP - 神经网络与反向传播

使用神经网络进行命名实体识别&#xff08;二值词窗分类&#xff09; 根据上下文窗口 建立词向量 通过一个神经网络层&#xff0c;通过一个逻辑分类器&#xff0c;得到这个概率是属于特定实体词的预测概率。 另一个分类器来比较说明 这个词是哪个实体类型&#xff08;比较概率…

赵本山与高秀敏夫妇本想找范伟要那1200元电视机垫款,却不好意思向范伟开口--小品《面子》(中1)的台词

赵本山与高秀敏夫妇本想找范伟要那1200元电视机垫款&#xff0c;却不好意思向范伟开口 --小品《面子》&#xff08;中1&#xff09;的台词 表演者&#xff1a;赵本山 高秀敏 范伟 &#xff08;接上&#xff09; 高秀敏&#xff1a;咱俩抓紧提事啊 赵本山&#xff1a;不着急…