面試算法編程題

面試算法編程題記錄

題目 : 羊圈里的狼
題目背景 :
一到了晚上,草原牧民的羊就會被趕進羊圈里。這時,野外的狼群就會打羊羔的主意。為了保護羊羔,牧民需要將羊圈里的狼趕走或殺死。由于來的狼很多,他需要快速甄別哪些狼在羊圈里面,哪些狼在羊圈外面。請寫一個程序幫助他。
描述 :
羊圈由n 個連續點組成{ Pi }, 1 <= i <= n; 3 <= n <= 100.其中, P1與Pn首尾相連,形成一個閉合的羊圈。假設狼的位置為(x, y),且保證該點不在墻上,需要判斷其在圈里還是圈外。
輸入格式
輸入第一行,一個正整數 n(3 <= n <= 100)表示圈坐標點的個數。接下來輸入n行,每行兩個浮點數代表羊圈的坐標點 Pi;
輸入多行數據,每行數據兩個浮點數(x, y),表示該條狼的位置。
輸出格式 :
輸出多行數據,每行數據為一個字符串,表示該條狼是否在羊圈里。如果在里面輸出True,否則輸出 False。


#include <iostream>
#include <vector>struct Point {double x;double y;
};
bool isInsideCircle(const std::vector<Point>& circle, const Point& wolf) {int crossCount = 0;for (int i = 0; i < circle.size(); ++i) {const Point& p1 = circle[i];//先后兩個點const Point& p2 = circle[(i + 1) % circle.size()];if ((p1.y > wolf.y) != (p2.y > wolf.y) &&wolf.x < (p2.x - p1.x) * (wolf.y - p1.y) / (p2.y - p1.y) + p1.x) {++crossCount;}}return crossCount % 2 == 1;
}
int main() {int n;std::cin >> n;std::vector<Point> circle(n);for (int i = 0; i < n; ++i) {std::cin >> circle[i].x >> circle[i].y;}int m;std::cin >> m;for (int i = 0; i < m; ++i) {Point wolf;std::cin >> wolf.x >> wolf.y;std::cout << (isInsideCircle(circle, wolf) ? "True" : "False") << std::endl;}return 0;
}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/42930.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/42930.shtml
英文地址,請注明出處:http://en.pswp.cn/news/42930.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

FANUC機器人加減速倍率指令ACC的使用方法說明

FANUC機器人加減速倍率指令ACC的使用方法說明 單位有一臺FANUC機器人(型號:M-900iB 360kg),偶爾會在啟動的瞬間會報SRVO-050碰撞檢測報警,而事實上機器人并沒有開始移動或和其他工件產生碰撞,一直查了很長時間,也沒有查到具體的原因,也嘗試過重新進行負載推算,但是偶爾…

恒運資本:CPO概念發力走高,兆龍互聯漲超10%,華是科技再創新高

CPO概念15日盤中發力走高&#xff0c;截至發稿&#xff0c;華是科技漲超15%再創新高&#xff0c;兆龍互聯漲逾11%&#xff0c;中貝通訊漲停&#xff0c;永鼎股份、太辰光漲超5%&#xff0c;天孚通訊漲逾4%。 消息面上&#xff0c;光通訊聞名咨詢機構LightCounting近日發布的202…

國產之光:訊飛星火最新大模型V2.0

大家好&#xff0c;我是herosunly。985院校碩士畢業&#xff0c;現擔任算法研究員一職&#xff0c;熱衷于機器學習算法研究與應用。曾獲得阿里云天池比賽第一名&#xff0c;CCF比賽第二名&#xff0c;科大訊飛比賽第三名。擁有多項發明專利。對機器學習和深度學習擁有自己獨到的…

每天一道leetcode:1466. 重新規劃路線(圖論中等廣度優先遍歷)

今日份題目&#xff1a; n 座城市&#xff0c;從 0 到 n-1 編號&#xff0c;其間共有 n-1 條路線。因此&#xff0c;要想在兩座不同城市之間旅行只有唯一一條路線可供選擇&#xff08;路線網形成一顆樹&#xff09;。去年&#xff0c;交通運輸部決定重新規劃路線&#xff0c;以…

OpenCV-Python中的圖像處理-視頻分析

OpenCV-Python中的圖像處理-視頻分析 視頻分析Meanshift算法Camshift算法光流Lucas-Kanade Optical FlowDense Optical Flow 視頻分析 學習使用 Meanshift 和 Camshift 算法在視頻中找到并跟蹤目標對象: Meanshift算法 Meanshift 算法的基本原理是和很簡單的。假設我們有一堆…

Failed to init API, possibly an invalid tessdata path: ./ ubuntu

1、問題描述 Failed to init API, possibly an invalid tessdata path: ./2、解決方案&#xff1a; 添加“TESSDATA_PREFIX”到系統環境變量中&#xff0c;值為testdata的父路徑&#xff08;一般就是 Tesseract-OCR 的安裝路徑&#xff09;亦可解決。在~/.bashrc中添加 expo…

【學習日記】【FreeRTOS】空閑任務與阻塞延時

寫在前面 本文是基于野火 RTOS 教程對空閑任務和阻塞延時的詳解。 一、什么是任務中的阻塞延時 說到阻塞延時&#xff0c;筆者的第一反應就是在單片機的 while 循環中&#xff0c;使用一個 for 循環不斷遞減一個大數&#xff0c;通過 CPU 不斷執行一條指令的耗時進行延時。這…

python優雅地爬蟲!

背景 我需要獲得新聞&#xff0c;然后tts&#xff0c;在每天上班的路上可以聽一下。具體的方案后期我也會做一次分享。先看我喜歡的萬能的老路&#xff1a;獲得html內容-> python的工具庫解析&#xff0c;獲得元素中的內容&#xff0c;完成。 好家伙&#xff0c;我知道我爬…

視頻云存儲/安防監控/視頻匯聚EasyCVR平臺新增設備經緯度選取

視頻云存儲/安防監控EasyCVR視頻匯聚平臺基于云邊端智能協同&#xff0c;支持海量視頻的輕量化接入與匯聚、轉碼與處理、全網智能分發、視頻集中存儲等。音視頻流媒體視頻平臺EasyCVR拓展性強&#xff0c;視頻能力豐富&#xff0c;具體可實現視頻監控直播、視頻輪播、視頻錄像、…

公網遠程連接Redis數據庫「內網穿透」

文章目錄 1. Linux(centos8)安裝redis數據庫2. 配置redis數據庫3. 內網穿透3.1 安裝cpolar內網穿透3.2 創建隧道映射本地端口 4. 配置固定TCP端口地址4.1 保留一個固定tcp地址4.2 配置固定TCP地址4.3 使用固定的tcp地址連接 前言 潔潔的個人主頁 我就問你有沒有發揮&#xff0…

藍牙資訊|蘋果Apple Watch可手勢操控Mac和Apple TV等設備

根據美國商標和專利局&#xff08;USPTO&#xff09;公示的清單&#xff0c;蘋果公司近日獲得了一項技術專利&#xff0c;概述了未來的 Apple Watch 手表&#xff0c;使用手勢等操控 Mac 和 Apple TV 等設備。 該專利描述未來 Apple Watch 可以交互實現編輯圖像、繪圖、處理文…

02:STM32--EXTI外部中斷

目錄 一:中斷 1:簡歷 2:AFIO 3:EXTI ?編輯 4:NVIC基本結構 5:使用步驟 二:中斷的應用 A:對外式紅外傳感計數器 1:連接圖?編輯 2:函數介紹 3:硬件介紹 4:計數代碼 B;旋轉編碼計數器 1:連接圖 2:硬件介紹 3:旋轉編碼器代碼: 一:中斷 1:簡歷 中斷&#xff1a;在主程…

Flutter 測試小結

Flutter 項目結構 pubspec.yaml 類似于 RN 的 package.json&#xff0c;該文件分別在最外層及 example 中有&#xff0c;更新該文件后&#xff0c;需要執行的 Pub get lib 目錄下的 dart 文件為 Flutter 插件封裝后的接口源碼&#xff0c;方便在其他 dart 文件中調用 example 目…

python通過S7協議讀取西門子200smart數據

發現網上很多關于python通過s7協議控制200smart的代碼都失敗&#xff0c;我猜應該是版本的問題。自己搗鼓了半天&#xff0c;終于測試成功 from snap7 import util,clientmy_plc client.Client() #建立一個客戶端對象 my_plc.set_connection_type(3) #如果是200smart,必須有此…

Flink流批一體計算(14):PyFlink Tabel API之SQL查詢

舉個例子 查詢 source 表&#xff0c;同時執行計算 # 通過 Table API 創建一張表&#xff1a; source_table table_env.from_path("datagen") # 或者通過 SQL 查詢語句創建一張表&#xff1a; source_table table_env.sql_query("SELECT * FROM datagen&quo…

QT實現天氣預報

1. MainWindow類設計的成員變量和方法 public: MainWindow(QWidget* parent nullptr); ~MainWindow(); protected: 形成文本菜單來用來右鍵關閉窗口 void contextMenuEvent(QContextMenuEvent* event); 鼠標被點擊之后此事件被調用 void mousePressEvent(QMouseEv…

Leetcode每日一題:1444. 切披薩的方案數(2023.8.17 C++)

目錄 1444. 切披薩的方案數 題目描述&#xff1a; 實現代碼與解析&#xff1a; 二維后綴和 動態規劃 原理思路&#xff1a; 1444. 切披薩的方案數 題目描述&#xff1a; 給你一個 rows x cols 大小的矩形披薩和一個整數 k &#xff0c;矩形包含兩種字符&#xff1a; A …

Spring(三):Spring中Bean的生命周期和作用域

前言 在 Spring 中&#xff0c;那些組成應用程序的主體及由 Spring IOC 容器所管理的對象&#xff0c;被稱之為 bean。簡單地講&#xff0c;bean 就是由 IOC 容器初始化、裝配及管理的對象&#xff0c;除此之外&#xff0c;bean 就與應用程序中的其他對象沒有什么區別了。而 b…

Oracle數據庫運維大全

以下是一些常見的Oracle數據庫運維任務和對應的語句腳本示例&#xff1a; 檢查數據庫實例狀態&#xff1a; SELECT instance_name, status, startup_time FROM v$instance; 查看數據庫版本和補丁級別&#xff1a; SELECT * FROM v$version; SELECT patch_id, action, status …

LeetCode 熱題 100(四):48. 旋轉圖像、240. 搜索二維矩陣 II、234. 回文鏈表

一.48. 旋轉圖像 題目要求&#xff1a;就是一個順時針的旋轉過程。 思路&#xff1a;觀察矩陣&#xff0c;得出翻轉前第i行的第J個元素 等于 翻轉后倒數第i列的第J個元素&#xff0c;舉例說明&#xff0c;第1行第2個元素為“2”&#xff0c;翻轉后到了 倒數第1列的第2個元素…