The Morning Star

2024-04-01 07:20
文章标签 star morning

本文主要是介绍The Morning Star,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

题目描述

本题有多组数据。

给定 n 个点,第 i 个点的坐标为 xi​,yi​。

现需要将星星和指南针放在任意两个点上,使得星星在指南针的正北、正东、正西、正南、正东南、正东北、正西南或正西北方向,求一共几种放法。(如果对此不太理解结合样例解释)

输入格式

第一行输入一个t,表示数据组数。

在每组数据中,输入n,表示点的总数。

接下来 n 行,第i行输入两个数 xi​,yi​,表示第i个点的坐标。

输出格式

输出共t行,每行一个整数,表示第i组数据的结果。

提示

在第一组数据中:

指南针在 (0,0)(0,0),星星在 (−1,−1)(−1,−1),在指南针的正西南方向。

指南针在 (0,0)(0,0),星星在 (1,1)(1,1),在指南针的正东北方向。

指南针在 (−1,−1)(−1,−1),星星在 (0,0)(0,0),在指南针的正东北方向。

指南针在(−1,−1)(−1,−1),星星在(1,1)(1,1),在指南针的正东北方向。

指南针在(1,1)(1,1),星星在(0,0)(0,0),在指南针的正西南方向。

指南针在(1,1)(1,1),星星在(−1,−1)(−1,−1),在指南针的正西南方向。

所以答案为6。

在第二组数据中:

指南针在(6,9)(6,9),星星在(10,13)(10,13),在指南针的正东北方向。

指南针在(10,13)(10,13),星星在(6,9)(6,9),在指南针的正西南方向。

所以答案是 2。

参考代码

#include <bits/stdc++.h>
#define ll long long
using namespace std;ll x[200005], y[200005];bool Z(ll x1, ll y1, ll x2, ll y2)
{return (abs(x1 - x2) == abs(y1 - y2)) ? true : false;
}bool north(int z, int star)
{return (x[z] == x[star] && y[z] < y[star]) ? true : false;
}bool south(int z, int star)
{return (x[z] == x[star] && y[z] > y[star]) ? true : false;
}bool west(int z, int star)
{return (y[z] == y[star] && x[z] > x[star]) ? true : false;
}bool east(int z, int star)
{return (y[z] == y[star] && x[z] < x[star]) ? true : false;
}bool eastsouth(int z, int star)
{return (Z(x[z], y[z], x[star], y[star]) && x[z] < x[star] && y[z] > y[star]) ? true : false;
}bool eastnorth(int z, int star)
{return (Z(x[z], y[z], x[star], y[star])  && x[z] < x[star] && y[z] < y[star]) ? true : false;
}bool westsouth(int z, int star)
{return (Z(x[z], y[z], x[star], y[star])  && x[z] > x[star] && y[z] > y[star]) ? true : false;
}bool westnorth(int z, int star)
{return (Z(x[z], y[z], x[star], y[star])  && x[z] > x[star] && y[z] < y[star]) ? true : false;
}int main()
{ios::sync_with_stdio(0);cin.tie(0);int t;cin>>t;while(t--){int n, ans = 0;cin>>n;for(int i = 1; i <= n; i++)cin>>x[i]>>y[i];for(int i = 1; i <= n; i++){for(int j = 1; j <= n; j++){if(i == j)continue;if(north(i, j) || south(i, j) || west(i, j) || east(i, j))ans++;else if(eastnorth(i, j) || eastsouth(i, j) || westnorth(i, j) || westsouth(i, j))ans++;}}cout<<ans<<"\n";}return 0;
}

这篇关于The Morning Star的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/866556

相关文章

Python QT实现A-star寻路算法

目录 1、界面使用方法 2、注意事项 3、补充说明 用Qt5搭建一个图形化测试寻路算法的测试环境。 1、界面使用方法 设定起点: 鼠标左键双击,设定红色的起点。左键双击设定起点,用红色标记。 设定终点: 鼠标右键双击,设定蓝色的终点。右键双击设定终点,用蓝色标记。 设置障碍点: 鼠标左键或者右键按着不放,拖动可以设置黑色的障碍点。按住左键或右键并拖动,设置一系列黑色障碍点

28.8K Star,音乐新体验,开启你的高颜值音乐之旅

Hi,骚年,我是大 G,公众号「GitHub 指北」会推荐 GitHub 上有趣有用的项目,一分钟 get 一个优秀的开源项目,挖掘开源的价值,欢迎关注。 导语 音乐是生活中不可或缺的调味品,一个好的音乐播放器能够极大地提升我们的听觉享受。今天,我要向大家推荐一个名为 YesPlayMusic 的第三方网易云音乐播放器,它不仅拥有高颜值的界面设计,还支持跨平台使用,让你的音乐体验更上一层楼

Ollama—87.4k star 的开源大模型服务框架!!

这一年来,AI 发展的越来越快,大模型使用的门槛也越来越低,每个人都可以在自己的本地运行大模型。今天再给大家介绍一个最厉害的开源大模型服务框架——ollama。 项目介绍 Ollama 是一个开源的大语言模型(LLM)服务工具,它允许用户在本地环境快速实验、管理和部署大型语言模型。它支持多种流行的开源大型语言模型,如 Llama 3.1、Phi 3、Mistral、Gemma 2 等,并且可以

牛X,试用了下 GitHub 上 2 万 Star 的第一抢票神器,3 秒钟抢到!

点击上方“朱小厮的博客”,选择“设为星标” 后台回复”加群“加入公众号专属技术群 车栗子 发自 凹非寺  量子位 报道 | 公众号 QbitAI 春节抢票正在如火如荼的进行,过年回家那肯定需要抢票,每年的抢票大战,都是一场硬战,没有一个好工具,怎么能上战场死锁呢。今天小编推荐一个Python抢票工具,送到了GitHub趋势榜第一: 项目名很干脆,就是“12306”,标星超过1.2W,来自名叫

vue-star评星组件开发

star文件夹下建立Star.vue,及相关的图片信息。便于组件的就近维护 Star.vue: <template><div class="star" :class="starSize"><span v-for="(itemClass,key) in itemClasses" :class="itemClass" class="star-item"></span></div></temp

多场景建模: STAR(Star Topology Adaptive Recommender)

之前,分享了一篇关于多任务学习的文章:多任务学习MTL模型:MMoE、PLE,同样的还有关于多任务学习中的多目标loss优化策略。 这篇文章则开始一个与多任务学习有着紧密联系的系列:多场景建模学习。 前言 首先,讲一下多任务学习和多场景建模的区别: 多任务学习通常是聚焦于单独一个domain(场景、领域)内的不同任务的处理,即不同任务的label空间是不同的;而多场景建模则是关注于多个do

BestCoder Round #62 (div.2)Clarke and five-pointed star(极角排序,判断五边形)

题目链接 题意:给你五个点,问这五个点是否可以组成正五边形(正五角星,等价于正五边形)。 解答:先极角排序,(让五个点按照顺时针或者逆时针的顺序)然后我们计算五条边是不是一样,然后在看对角线是不是都一样。 #include<cstdio>#include<iostream>#include<algorithm>#include<cmath>#include<set>#includ

猫头虎 分享:如何用STAR(情境、任务、行动、结果)方法来结构化回答问题?

猫头虎 分享:如何用STAR(情境、任务、行动、结果)方法来结构化回答问题? 🧠💡 今天猫头虎带您了解STAR法则的结构化魔力! 大家好!我是你们的老朋友 猫头虎 🐯。最近有不少粉丝在问我,如何在面试、职场沟通或者项目汇报中,结构化地表达观点,特别是在描述自己解决问题的能力时,如何既简洁又全面地展现出自己的专业水平。 这时候,我要强烈推荐一个超级好用的工具——STAR方法。它不仅可以帮

3.2K Star,一个极简主义个人网站

Hi,骚年,我是大 G,公众号「GitHub 指北」会推荐 GitHub 上有趣有用的项目,一分钟 get 一个优秀的开源项目,挖掘开源的价值,欢迎关注。 今天推荐一个极简主义的个人网站,纸的纯净、雪的清新。 特点 🚀 SEO 100%,性能优秀:在 LightHouse 中表现优秀,性能 > 90%,最佳实践 > 90%。🎨UI 现代化,简洁而不简单:用户界面设计现代化,简洁而不简

Star-CCM+探针查看与创建

在实际应用工况中,数值计算结束后为了产看某个点的标量场或矢量场可以采用探针查看。而在软件中可以通过“,”、“。”快捷键进行创建与查看。两者的区别具体如下所示: 鼠标放在要查看部件的位置,同时点击键盘上的“。”键,即可在输出窗口输出标量场的值。  鼠标放在要查看部件的位置,同时点击键盘上的“,”键;即可在输出窗口标定该点标量场的值(2022.1版本之后)。也可以通过创建衍生零部件“点”——注