2023河南萌新聯賽第(四)場:河南大學 F - 小富的idea

2023河南萌新聯賽第(四)場:河南大學 F - 小富的idea

時間限制:C/C++ 1秒,其他語言2秒
空間限制:C/C++ 262144K,其他語言524288K
64bit IO Format: %lld

題目描述

要注意節約

卷王小富最近又在內卷,并且學了一門新的技能:書法,但是不幸的是在國慶節的書法大賽上,小富不小心打翻了墨水瓶,導致很多墨滴濺在了他的書法紙上,看著墨水不斷擴散,浸透了他的書法紙,小富突然萌生了一個想法:我能不能知道某時刻紙上一共有多少墨塊?

我們假設墨滴是同時濺在紙上的,并且它們起始大小都為 0 0 0,由于墨滴大小不同,因此它們的擴散速度也不同,姑且假設墨滴都是按圓形擴散,如果兩個或以上墨滴在擴散過程中相遇,那么就稱它們為一個墨塊(單獨一個墨滴也是墨塊),并且假設墨滴相遇不影響它的擴散,對于任意時刻 t t t,小富想知道紙上有多少墨塊

由于小富是 c c p c ccpc ccpc 金牌,這個問題對他來說簡直是小菜一碟,并且小富還要繼續他的書法大賽,于是他決定把這個問題交給你來解決,希望你不要辜負他的期望哦

輸入描述:

第一行一個整數 n n n,表示一共 n n n 個墨滴 ( 1 ≤ n ≤ 1 0 3 ) (1\le n \le 10^3) (1n103)
接下來 n n n 行,每行三個整數 x , y , v x,y,v x,y,v,分別表示墨滴的位置 ( x , y ) (x,y) (x,y),以及墨滴擴散的速度 v ( 0 ≤ x , y , v ≤ 1 0 3 ) v(0\le x, y, v\le10^3) v(0x,y,v103)
接下來一行一個整數 q q q,表示 q q q 次查詢 ( 0 ≤ q , t ≤ 1 0 3 ) (0\le q,t \le 10^3) (0q,t103)
之后是 q q q 行,每行一個整數 t t t ,表示查詢 t t t 時刻紙上一共多少個墨塊

輸出描述:

q q q 行,每行一個整數,表示 ttt 時刻紙上一共多少個墨塊

輸入

3
0 2 1
0 0 1
7 7 2
3
0
1
5

輸出

3
2
1

說明

0時刻墨滴面積均為0,故答案為3
1時刻墨滴12相切,也記為相遇,故答案為2
5時刻三個墨滴都相遇,答案為1

對于任意一個墨滴,計算出它與其他所有墨滴的融合時間,并按時間從小到大排序,用并查集存儲所有墨滴,然后從小到大枚舉所有的融合時間,如果某個時間點發生兩個墨滴融合,那么當前時間之后紙上墨滴數就減一,當然,如果融合的墨滴本身就在一個墨塊里,總墨滴數不變標記出所有的墨滴減少的時間點,最后對于每次查詢,輸出當前墨滴數量即可

import java.io.*;
import java.util.ArrayList;
import java.util.Collections;class edg implements Comparable<edg> {double d;int x, y;public edg(double d, int x, int y) {this.d = d;this.x = x;this.y = y;}@Overridepublic int compareTo(edg o) {return Double.compare(this.d, o.d);}
}public class Main {static int[] p = new int[1001];public static int find(int x) {if (x != p[x]) p[x] = find(p[x]);return p[x];}public static void main(String[] args) throws IOException {BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));int n = Integer.parseInt(bf.readLine());int[][] a = new int[n][3];for (int i = 0; i < n; i++) {String[] str = bf.readLine().split(" ");a[i][0] = Integer.parseInt(str[0]);a[i][1] = Integer.parseInt(str[1]);a[i][2] = Integer.parseInt(str[2]);p[i] = i;}ArrayList<edg> edgs = new ArrayList<>();for (int i = 0; i < n; i++) {for (int j = i + 1; j < n; j++) {if (a[i][2] == 0 && a[j][2] == 0) continue;double D = Math.sqrt((a[i][0] - a[j][0]) * (a[i][0] - a[j][0]) + (a[i][1] - a[j][1]) * (a[i][1] - a[j][1]));double V = a[i][2] + a[j][2];edgs.add(new edg(D / V, i, j));}}Collections.sort(edgs);int[] res = new int[1001];int cnt = n;for (int i = 0, j = 0; i <= 1000; i++) {while (j < edgs.size() && edgs.get(j).d <= i) {int u = find(edgs.get(j).x), v = find(edgs.get(j).y);j++;if (u == v) continue;p[u] = v;cnt--;}res[i] = cnt;}int q = Integer.parseInt(bf.readLine());while (q-- > 0) {int t = Integer.parseInt(bf.readLine());bw.write(res[t] + "\n");}bw.close();}
}

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

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

相關文章

密碼檢查-C語言/Java

描述 小明同學最近開發了一個網站&#xff0c;在用戶注冊賬戶的時候&#xff0c;需要設置賬戶的密碼&#xff0c;為了加強賬戶的安全性&#xff0c;小明對密碼強度有一定要求&#xff1a; 1. 密碼只能由大寫字母&#xff0c;小寫字母&#xff0c;數字構成&#xff1b; 2. 密碼不…

偽類和偽元素有何區別?

聚沙成塔每天進步一點點 ? 專欄簡介? 偽類&#xff08;Pseudo-class&#xff09;? 偽元素&#xff08;Pseudo-element&#xff09;? 區別總結? 寫在最后 ? 專欄簡介 前端入門之旅&#xff1a;探索Web開發的奇妙世界 記得點擊上方或者右側鏈接訂閱本專欄哦 幾何帶你啟航前…

信號調制原理演示,模擬和數字調制技術大比拼

【中英雙語字幕】信號調制原理演示&#xff0c;模擬和數字調制技術大比拼&#xff01;_嗶哩嗶哩_bilibili

騰訊云輕量應用服務器Typecho應用模板搭建博客流程

騰訊云百科分享使用騰訊云輕量應用服務器Typecho應用模板搭建博客流程&#xff0c;Typecho 是開源的博客建站平臺&#xff0c;具有輕量、高效、穩定等特點&#xff0c;操作界面簡潔友好。該鏡像基于 CentOS 7.6 64 位操作系統&#xff0c;并已預置 Nginx、PHP、MariaDB 軟件。您…

4.0 Python 變量與作用域

在python中&#xff0c;變量的作用域決定了變量在哪些位置可以被訪問。一個程序中的變量并不是所有的地方都可以訪問的&#xff0c;其訪問權限決定于變量的賦值位置。python中有兩種最基本的變量作用域&#xff1a;局部作用域和全局作用域。局部變量是在函數內部定義的變量&…

day24-106.從中序與后序遍歷序列構造二叉樹

106.從中序與后序遍歷序列構造二叉樹 力扣題目鏈接(opens new window) 根據一棵樹的中序遍歷與后序遍歷構造二叉樹。 注意: 你可以假設樹中沒有重復的元素。 例如&#xff0c;給出 中序遍歷 inorder [9,3,15,20,7]后序遍歷 postorder [9,15,7,20,3] 返回如下的二叉樹&am…

前端跨域問題解決方法

跨域是WEB瀏覽器專有的同源限制訪問策略。(后臺接口調用和postman等工具會出現) 跨源資源共享&#xff08;CORS&#xff0c;或通俗地譯為跨域資源共享&#xff09;是一種基于 HTTP 頭的機制&#xff0c;該機制通過允許服務器標示除了它自己以外的其他源&#xff08;域、協議或端…

java項目打包運行報異常:Demo-1.0-SNAPSHOT.jar中沒有主清單屬性

檢查后發現pom文件中有錯誤&#xff0c;需要添加build內容才能恢復正常。 添加下面文件后再次啟動恢復正常。 <build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactI…

C語言atoi函數將字符串類型轉換為整型

atoi() 是C標準庫中的一個函數&#xff0c;用于將字符串轉換為整數。函數原型如下&#xff1a; int atoi(const char *str); 參數 str 是一個指向要轉換的字符串的指針。atoi() 函數會嘗試將字符串中的數字部分轉換為整數&#xff0c;并返回轉換后的整數值。如果字符串中不僅包…

Add-in Express for Microsoft Office and Delphi Crack

Add-in Express for Microsoft Office and Delphi Crack 適用于Microsoft Office和Delphi VCL的Add-in Express使您能夠在幾次點擊中為Microsoft Office開發專業插件。它生成基于COM的項目&#xff0c;這些項目包含Microsoft Office外接程序或智能標記的所有必要功能&#xff0…

CTFshow web93-104關

這周要學習的是php代碼審計 根據師兄的作業 來做web入門的93-104關 93關 看代碼 進行分析 他的主函數 include("flag.php"); highlight_file(__FILE__); if(isset($_GET[num])){ $num $_GET[num]; if($num4476){ die("no no no!"); …

認識http的方法、Header、狀態碼以及簡單實現一個http的業務邏輯

文章目錄 http的方法http狀態碼http重定向http常見Header實現簡單業務邏輯Protocol.hppUtil.hppServer.hppServer.cc 效果 http的方法 方法說明支持的HTTP版本GET獲取資源1.0/1.1POST傳輸實體主體1.0/1.1PUT傳輸文件1.0/1.1HEAD獲得報文首部1.0/1.1DELETE刪除文件1.0/1.1OPTIO…

【ts】【cocos creator】excel表格轉JSON

需要將表格導出為text格式放到項目resources/text文件夾下 新建場景&#xff0c;掛載到Canvas上運行 表格文件格式&#xff1a; 保存格式選text tableToJson : import CryptoJS require(./FileSaver);const { ccclass, property } cc._decorator;ccclass export default c…

SpringBoot案例-部門管理-新增

根據頁面原型&#xff0c;明確需求 頁面原型 需求 閱讀接口文檔 接口文檔鏈接如下&#xff1a; 【騰訊文檔】SpringBoot案例所需文檔 https://docs.qq.com/doc/DUkRiTWVaUmFVck9N 思路分析 前端在輸入要新增的部門名稱后&#xff0c;會以JSON格式將數據傳入至后端&#xf…

SpringBoot 3.x整合Fluent Mybatis極簡流程

此為基礎配置&#xff0c;不包括其他高級配置&#xff0c;需要其他高級配置請查閱官方文檔&#xff1a;[fluent mybatis特性總覽 - Wiki - Gitee.com](https://gitee.com/fluent-mybatis/fluent-mybatis/wikis/fluent mybatis特性總覽) 版本信息 Spring Boot 版本&#xff1a…

C語言創建目錄(文件夾)之mkdir

一、mkdir 說明&#xff1a;創建目錄。 頭文件庫&#xff1a; #include <sys/stat.h> #include <sys/types.h>函數原型&#xff1a; int mkdir(const char *pathname, mode_t mode);mode方式&#xff1a;可多個權限相或&#xff0c;如0755表示S_IRWXU | S_IRGRP…

undefined reference to `dlopen‘ ‘SSL_library_init‘ `X509_certificate_type‘

使用Crow的時候需要注意crow依賴asio依賴OpenSSL&#xff0c;asio要求1.22以上版本&#xff0c;我使用的是1.26.0&#xff1b; 這個版本的asio要求OpenSSL是1.0.2&#xff0c;其他版本我得機器上編不過&#xff0c;ubuntu上默認帶的OpenSSL是1.1.1; 所以我下載了OPENSSL1.2.0重…

MySQL高階知識點(一)一條SQL【更新】語句是如何執行的

一條SQL【更新】語句是如何執行的 首先&#xff0c;可以確定的說&#xff0c;【查詢】語句的那一套流程&#xff0c;【更新】語句也是同樣會走一遍&#xff0c;與查詢流程不一樣的是&#xff0c; 更新語句涉及到【事務】&#xff0c;就必須保證事務的四大特性&#xff1a;ACID&…

項目介紹:《WeTalk》網頁聊天室 — Spring Boot、MyBatis、MySQL和WebSocket的奇妙融合

目錄 引言&#xff1a; 前言&#xff1a; 技術棧&#xff1a; 主要功能&#xff1a; 功能詳解&#xff1a; 1. 用戶注冊與登錄&#xff1a; 2. 添加好友 3. 實時聊天 4. 消息未讀 5. 刪除聊天記錄 6. 刪除好友 未來展望&#xff1a; 項目地址&#xff1a; 結語&am…

【redis 3.2 集群】

目錄 一、Redis主從復制 1.概念 2.作用 2.1 數據冗余 2.2 故障恢復 2.3 負載均衡 2.4 高可用 3.缺點 4.流程 4.1 第一步 4.2 第二步 4.3 第三步 4.4 第四步 5.搭建 5.1 主 5.2 從 6.驗證 二、Reids哨兵模式 1.概念 2.作用 2.1 監控 2.2 自動故障轉移 2.…