(1)题目描述
(2)算法思想
- 此处给定离散点,由于只需要判断各点之间的联系,因此仅需保存点的坐标而不必构造相应的图,不用考虑内存限制。
- 之后考虑各点之间的关系以及得分规则——各点之间的关系分为相邻以及对角线两种,且必须满足有4点相邻才考虑建立回收站并开始计分;对角线关系仅当确定放置回收站后开始作为计分标准,1个对角线垃圾点对应1分。
- 按照上述规则开始计分,每次计分对应关系的两点可同时进行加分,减少循环次数。
(3)代码实现
#include<cmath>
#include<iostream>
using namespace std;
struct node {
int x;
int y;
int grade;
int tempgrade;
node() {
x=y=0;
grade=-4;
tempgrade=0;
}
};
inline bool nextto(node pos1, node pos2) {
if(pos1.x