首页 > 其他分享 >P10703 [SNCPC2024] 窗花

P10703 [SNCPC2024] 窗花

时间:2024-08-17 18:30:27浏览次数:11  
标签:cm SNCPC2024 样例 leq int 窗花 100 P10703

[SNCPC2024] 窗花

题目描述

有一扇 \(100 \text{cm} \times 100 \text{cm}\) 的窗户和 \(n\) 个对角线长为 \(2 \text{cm}\) 的正方形窗花。建立坐标系,以窗户左下角的坐标为原点 \((0,0)\),右上角坐标为 \((100,100)\),第 \(i\) 个窗花中心被贴在非边缘的整坐标点 \((x_i,y_i)\) (\(1 \leq x_i,y_i \leq 99\)) 上,窗花的对角线与坐标轴平行。

问窗户有多大的面积被至少一片窗花覆盖。

输入格式

第一行一个整数 \(n\) (\(1 \leq n \leq 10000\))。

接下来 \(n\) 行,每行两个整数 \(x_i,y_i\) (\(1 \leq x_i,y_i \leq 99\)),含义如上所述。

输出格式

输出仅一行一个实数,为被至少一片窗花覆盖的面积。

你的答案被认为正确当且仅当其相对误差或绝对误差不超过 \(10^{−4}\)。形式化地说,假设你的答案是 \(a\),标准答案是 \(b\)。你的答案被认为正确当且仅当 \(\frac{|a−b|}{\max (1,|b|)} \leq 10^{−4}\)。

样例 #1

样例输入 #1

5
1 1
2 1
3 2
5 5
5 5

样例输出 #1

7.5

提示

对于第一个样例的解释如图:

思路

#include<bits/stdc++.h>
using namespace std;
int n;
double ans = 0;
bool g[110][110];
int dis[4][2] = {{1,0},{-1,0},{0,1},{0,-1}};
int main(){
	scanf("%d",&n);
	ans = n * 2.0;
	for(int i = 1,x,y;i <= n;i ++){
		scanf("%d %d",&x,&y);
		if(g[x][y]){
			ans -= 2.0;
		}else{
			for(int j = 0;j < 4;j ++){
				if(g[x + dis[j][0]][y + dis[j][1]]){
					ans -= 0.5;
				}
			}
		}
		g[x][y] = 1;
	}
	printf("%f\n",ans);
	return 0;
}

标签:cm,SNCPC2024,样例,leq,int,窗花,100,P10703
From: https://www.cnblogs.com/zqhbxsgs/p/18364728

相关文章

  • P10693 [SNCPC2024] 换座位
    本题考虑建图转化为图论问题,把每个嘉宾向其心仪座位连边,样例如下。不难发现编号小于等于\(n\)的点出度一定为\(1\),当一个联通块内全是编号小于等于\(n\)时,这个联通块有\(n\)条边;否则有\(n-1\)条边。因此这张图一定是一个有向基环树和有向树构成的森林。对于有向树,我们......
  • [SNCPC2024] 2024 年陕西省大学生程序设计 J题猜质数II 题解
    题目链接:CF或者洛谷PS:CF的得等上gym。前提说明其实在上个月就见到这题了,当时很想做这题,结果找不到做题链接,也不知道出处,原来是陕西省赛的捧杯题。个人评价觉得是一道很不错的题,难度适中。讲解其实题解写的挺不错的,比很多比赛的题解写的详细许多了。这里站在我的角度分......