法一
#include <iostream>
using namespace std;#define x first
#define y secondtypedef pair<int, int> PII;
const int N = 1010;int n, ans[5];
PII q[N];
int dx[8] = {-1, -1, -1, 0, 1, 1, 1, 0}; // 左下角,左,左上角,上,右上角,右,右下角,下
int dy[8] = {-1, 0, 1, 1, 1, 0, -1, -1};int main() {cin >> n;for (int i = 0; i < n; i++) cin >> q[i].x >> q[i].y;for (int i = 0; i < n; i++) {int s[8] = {0};for (int j = 0; j < n; j++) {for (int k = 0; k < 8; k++) {if (q[i].x + dx[k] == q[j].x && q[i].y + dy[k] == q[j].y)s[k]++;}}if (s[1] && s[3] && s[5] && s[7]) // 上下左右都有垃圾ans[s[0] + s[2] + s[4] + s[6]]++; // 四个斜角有则为1,否则为0,看s[k]}for (int i = 0; i < 5; i++) cout << ans[i] << "\n";return 0;
}
法二
#include <algorithm>
#include <iostream>
#include <vector>
using namespace std;typedef struct {int x;int y;
} Pos;vector<Pos> v;bool find(Pos p) {for (int i = 0; i < v.size(); i++) {if (v[i].x == p.x && v[i].y == p.y)return true;}return false;
}int main() {int cnt0 = 0, cnt1 = 0, cnt2 = 0, cnt3 = 0, cnt4 = 0;int n;cin >> n;for (int i = 0; i < n; i++) {Pos tmp;cin >> tmp.x >> tmp.y;v.push_back(tmp);}Pos p;for (int i = 0; i < n; i++) {bool flag1 = false, flag2 = false, flag3 = false, flag4 = false;p.x = v[i].x;p.y = v[i].y - 1;if (find(p))flag1 = true;p.x = v[i].x;p.y = v[i].y + 1;if (find(p))flag2 = true;p.x = v[i].x - 1;p.y = v[i].y;if (find(p))flag3 = true;p.x = v[i].x + 1;p.y = v[i].y;if (find(p))flag4 = true;if (flag1 && flag2 && flag3 && flag4) {int cnt = 0;p.x = v[i].x - 1;p.y = v[i].y - 1;if (find(p))cnt++;p.x = v[i].x - 1;p.y = v[i].y + 1;if (find(p))cnt++;p.x = v[i].x + 1;p.y = v[i].y - 1;if (find(p))cnt++;p.x = v[i].x + 1;p.y = v[i].y + 1;if (find(p))cnt++;if (cnt == 0)cnt0++;else if (cnt == 1)cnt1++;else if (cnt == 2)cnt2++;else if (cnt == 3)cnt3++;elsecnt4++;}}cout << cnt0 << endl << cnt1 << endl << cnt2 << endl << cnt3 << endl << cnt4;return 0;
}

【CCF 201912-2】 回收站选址(两种方法)相关推荐

  1. 电脑桌面只有计算机回收站显示,电脑桌面上只有回收站怎么办 电脑只显示回收站的两种解决方法...

    不久前小编的电脑开机后,桌面只显示一个回收站,并且出现了"C:\WINDOWS\system32\config\systemprofile\Desktop不可用"的错误提示,后来经 ...

  2. 桌面计算机回收站打不开,电脑桌面上只有回收站怎么办 电脑只显示回收站的两种解决方法...

    不久前小编的电脑开机后,桌面只显示一个回收站,并且出现了"C:\WINDOWS\system32\config\systemprofile\Desktop不可用"的错误提示,后来经 ...

  3. initramfs两种方法恢复_电脑上删除的文件可以恢复吗?选对方法是关键

    电脑上删除的文件可以恢复吗?对于使用电脑进行办公或者娱乐的小伙伴来说,或多或少的会产生很多的临时文件.所以说,问题也就随之产生了,这其中最为常见的莫过于存储在电脑上的文件因为自己的失误被删除了.那么在 ...

  4. SQL Server中灾难时备份结尾日志(Tail of log)的两种方法

    简介 在数据库数据文件因各种原因发生损坏时,如果日志文件没有损坏.可以通过备份结尾日志(Tail of log)使得数据库可以恢复到灾难发生时的状态. 例如: 上图中.在DB_1中做了完整备份,在Lo ...

  5. C++/C++11中用于定义类型别名的两种方法:typedef和using

    类型别名(type alias)是一个名字,它是某种类型的同义词.使用类型别名有很多好处,它让复杂的类型名字变得简单明了.易于理解和使用,还有助于程序员清楚地知道使用该类型的真实目的.在C++中,任何 ...

  6. jquery-12 折叠面板如何实现(两种方法)

    jquery-12 折叠面板如何实现(两种方法) 一.总结 一句话总结:1.根据点击次数来判断显示还是隐藏,用data方法保证每个元素一个点击次数:2.找到元素的下一个,然后toggle实现显示隐藏. ...

  7. java 匿名list,java创造匿名对象的两种方法

    在java中有时候需要一些匿名对象的使用.可能有些小伙伴拿还不会创造,其实我们在学习一些方法时都或多或少的接触过.本篇所要讲到的创造匿名对象总结了两种方法,分别是静态工具方法和Lambda表达式,我们 ...

  8. Android Studio导入Eclipse项目的两种方法

    Android Studio导入Eclipse项目有两种方法,一种是直接把Eclipse项目导入Android Studio,另一种是在Eclipse项目里面进行转换,然后再导入Android Stu ...

  9. Response.Redirect 打开新窗体的两种方法

    普通情况下,Response.Redirect 方法是在server端进行转向,因此,除非使用 Response.Write("<script>window.location=' ...

  10. centos下两种方法安装git

    centos 5 64位下两种方法安装git 这里来给大家介绍下编译安装和yum安装git.   系统:centos 5.5 64位   需要的软件包:git-latest.tar.gz epel-r ...

最新文章

  1. mysql数据库oem_Oracle 11gR2学习之二(创建数据库及OEM管理篇)
  2. matplotlib模块学习
  3. Linux系统的进程管理
  4. 中年架构师的20个小时,全靠忍!
  5. SAP Spartacus RouterState
  6. centos7调节虚拟机字体_初次安装虚拟机中Ubuntu16.04系统设置的一些小问题(小白教程)...
  7. MacOS中运行第一个PySide6实例
  8. [转]jQuery: how to get which button was clicked upon form submission?
  9. python经典实例pdf-Python机器学习经典实例_PDF电子书
  10. python语言入门-分分钟入门python语言
  11. 超级实用的内存泄漏归纳分析心得
  12. IIS出现问题报CS0016
  13. mysql外键设置不成功_MySQL数据库建立外键失败的原因总结
  14. 基于XCVU9P+ C6678的100G光纤的加速卡
  15. python中numpy zeros_为什么numpy.zeros和numpy.zeros的性能不同?
  16. java基础训练_实验1Java语言程序设计基础训练.doc
  17. VUE 数据字典展示
  18. mach3软件常见问题和解决方案
  19. freertos内核--任务调度剖析
  20. LeetCode165- 比较版本号(Compare Version Numbers)

热门文章

  1. PHP输出变量到文件
  2. JS 基础面试题 2019年最新前端面试题目
  3. 如何设置在生日当天有闹钟提醒呢?用手机便签设置生日提醒
  4. Chrome浏览器调试js第二次运行出现Uncaught SyntaxError: Identifier ‘***’ has already been declared
  5. 鲁中职业学院计算机平面设计,鲁中职业学院17名学生春季高考免试直升本科
  6. python中保存列表和字典
  7. MySQL慢查询语句
  8. Android 显示不满屏的问题解决
  9. 移动支付之争,NFC较QR Code更为适合发展
  10. 基于卷积神经网络的Fashion-MNIST图像识别