CCF201912-2 回收站选址



解题思路:这道题唬人的在于坐标有正有负哈,刚开始不知道怎么下爪,仔细思考过后,我可是会面向对象编程的啊哈哈哈哈,我可是最喜欢封装了哈哈哈哈。
1.首先可以把每个点用一个结构体来定义,包含他的x,y坐标,以及该点的得分情况。因为最大有1000个点,可以再定义一个点的数组来存放输入的点。
2.点存储了之后我们就可以来对数据进行处理了,首先遍历数组得到可以作为选址点的Node,将可以作为选址点的Node用一个容器(vector)存起来。
3.我们得到可以用作选址的点之后,就可以对每个点进行评分了,然后将评分结果输出就ok了!
#include<iostream>
#include<cmath>
#include<vector>
using namespace std; struct Node {
int x;
int y;
int score;
} node[1000]; /*
判断节点1和节点2是否相邻
*/
bool IsAdjacent(Node n1, Node n2) {
if (abs(n1.x - n2.x) == 1 && n1.y==n2.y || abs(n1.y - n2.y) == 1 && n1.x==n2.x) return true;
else return false;
}
/*
判断是否得分
*/
bool IsgetScore(vector<Node>::iterator vit, Node n) {
if (abs(vit->x - n.x) == 1 && abs(vit->y - n.y) == 1) return true;
else return false;
}
int main() {
int n;
cin >> n;
for (int i = 0; i < n; i++) {
cin >> node[i].x >> node[i].y;//输入点坐标
} vector<Node> xz;//可作为选址的节点
int count = 0;//记录上下左右是否均存在垃圾的值=4说明均存在,不等于说明不存在
for (int i = 0; i < n; i++) {
count = 0;//每个节点开始前先清零
for (int j = 0; j < n; j++) {
if (IsAdjacent(node[i], node[j])) count++;
}
if (count == 4) xz.push_back(node[i]);//当前节点可以作为选址的节点
} int s[5] = {0};//最后的输出得分数组
vector<Node>::iterator vit;
//判断可作为选址的节点能得多少分
for (vit = xz.begin(); vit != xz.end(); vit++) {
for (int i = 0; i < n; i++) {
if (IsgetScore(vit, node[i])) vit->score++;//对节点得分数++操作
}
s[vit->score]++;//得分为vit—>socre的元素个数加一
}
//输出结果数组
for (int i = 0; i < 5; i++) {
cout << s[i] << endl;
} system("pause");
return 0;
}
CCF201912-2 回收站选址的更多相关文章
- CCF-CSP认证 C++题解目录
持续更新中,记录刷题过程并分享一下小小的心得总结. 试题编号 试题名称 标签 202006-1 线性分类器 | 题解 线性规划 202006-2 稀疏向量| 题解 归并排序思想 202006-3 化学 ...
- 萌新笔记——linux下(ubuntu)反删除(误删恢复)与回收站制作
刚刚有个小伙伴不小心删了他写了好几的天代码,为他心疼之余帮他找回了文件. 想到我之前也常常误删一些文件,就干脆分享一下我的反删除方法,并说说我做的回收站(好low的,求大神指点) 首先是反删除软件ex ...
- ORACLE回收站机制介绍
回收站概念 从ORACLE 10g开始,引入了一个叫回收站(Recycle Bin)的概念.它的全称叫Tablespace Recycle Bin.回收站实际是一个逻辑容器(逻辑区域),原理有点类似于 ...
- Win7中怎么不经确认直接删除文件至回收站
Win7中怎么不经确认直接删除文件至回收站.. 1.双击桌面回收站的图标,进入回收站后,在空白处点击右键,选择属性:2.在回收站的属性对话框,最下边,把"显示删除确认对话框”前边的√去掉,应 ...
- oracle的回收站介绍
昨天做的展示oracle表空间功能剩余空间的功能,发现查询表dba_free_space时特别慢,经网上搜索,说是由于表空间碎片和回收站(Oracle 10g以后才有)引起的,后来搜到一片介绍回收站的 ...
- centos建立回收站
linux下的回收站在每一个当前用户目录./local/share/Trash中. 也可以给linux添加一个回收站. mkdir /tmp/trash_tmp 建立一个回收站目录 vi /bin/t ...
- windows shell api SHEmptyRecycleBin 清空回收站
HRESULT SHEmptyRecycleBin( HWND hwnd, LPCTSTR pszRootPath, DWORD dwFlags ); hwnd 父窗口句柄 pszRootPath 将 ...
- windows 7系统下出现某盘回收站损坏解决办法
今天遇到一个从没有遇见的问题,就是领导说他的回收站损坏了,要我去看下,我一开始也没用辙,网上搜了很多,说在命令提示符里面修改,我试了不行,后来我这样做就好了:1.打开计算机 2.找到工具选项,单击选择 ...
- Centos实现回收站机制
作为一个运维人员,在服务器上删除文件时为了方便经常会直接使用rm *.txt这类通配符,甚至为了省事加-rf参数,如果是确定的话还好,要是在删除的时候一个不留神,那事可就大了. 俗话说常在河边站哪有不 ...
随机推荐
- php 23种设计模型 - 原型模式
原型模式(Prototype) 原型模式(Prototype Pattern)是用于创建重复的对象,同时又能保证性能.这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式. 这种模式是实现 ...
- Java入土---Java运行机制及IDEA的安装使用
Java运行机制及IDEA的安装使用 java程序运行机制 计算机高级语言分为编译型语言跟解释型语言,而java同时具有两者的特点. 可能对于新手来说,什么是编译,什么是解释; 简单来说,编译就是将代 ...
- Java IDE的历史变迁及idea的使用
Java开发工具的历史变迁 JCreator Jcreator是荷兰的Xinox Software公司开发的一个用于Java程序设计的集成开发环境(IDE),该公司成立于2001年: 官方网站:htt ...
- social network 中Clustering Coefficient 相关笔记2
breath_first search 改变了原图的连接情况.
- [JS基础] 带你深入了解JS原型
简介 下面这张图大家应该很很熟悉了,各位大佬讲原型及原型链的时候是大部分都会用到下面这张图片的 我想以自己的方式来讲述一遍,一是帮助我自己更好的复习,二是希望能够帮助到想要复习或者学习原型的同学 在讲 ...
- 如何防止 IP 被盗用 保护网络正常运行
IP被盗用是指盗用者使用未经授权的IP来配置网上的计算机.目前IP盗用行为非常常见,许多"不法之徒"用盗用地址的行为来逃避追踪.隐藏自己的身份.IP的盗用行为侵害了网络正常用户的权 ...
- DAViCal 跨站请求伪造漏洞
受影响系统:DAViCal DAViCal <= 1.1.8描述:CVE(CAN) ID: CVE-2019-18346 DAViCal是一款日历共享服务器. DAViCal 1.1.8及之前版 ...
- SignalR 入门 .netCore实现聊天室
SignalR 入门 .netCore实现聊天室 本文根据微软SignalR 简介 | Microsoft Docs 和 ASP.NET Core SignalR 简介 | Microsoft Doc ...
- springboot 踩坑之路之 Configuration Annotation Proessor not found in classpath
1.出现spring boot Configuration Annotation Proessor not found in classpath的提示是在用了@ConfigurationPropert ...
- Redis Cluster 集群搭建与扩容、缩容
说明:仍然是伪集群,所有的Redis节点,都在一个服务器上,采用不同配置文件,不同端口的形式实现 前提:已经安装好了Redis,本文的redis的版本是redis-6.2.3 Redis的下载.安装参 ...