bzoj [Usaco2009 Hol]Cattle Bruisers 殺手游戲

Description

?

Input

?第1行輸入N,R,BX,BY,?BVX,BVY,之后N行每行輸入四個整數Xi,Yi,VXi,VYi.

?

Output

?

????一個整數,表示在逃脫過程中,某一個時刻最多有這個數理的殺手可以射殺貝茜.

Sample Input

3 1 0 0 0 2
0 -3 0 4
1 2 -1 1
1 -2 2 -1

Sample Output

2

OUTPUT DETAILS:

At time 1.5, Bessie is at point (0, 3), and the three bruisers are
at points (0, 3), (-0.5, 3.5), and (4, -3.5). The first two cattle
bruisers are within 1 unit of Bessie, while the third will never
be within 1 unit of Bessie, so 2 is the most achievable.
思路:? 我們可以計算出每個殺手可以射擊的一個時間范圍,然后做掃描線。時間復雜度$O(nlogn)$
 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 int const N = 50000 + 3;
 4 double const eps = 1e-8;
 5 int n, r, m, in[N], out[N], cnt;
 6 double bx, by, bvx, bvy, x[N], y[N], vx[N], vy[N], t1[N], t2[N], t[N << 2];
 7 void calc(int k) {
 8     double tx = x[k] - bx;
 9     double ty = y[k] - by;
10     double v1 = vx[k] - bvx;
11     double v2 = vy[k] - bvy;
12     double a = v1 * v1 + v2 * v2;
13     double b = 2 * v1 * tx + 2 * v2 * ty;
14     double c = tx * tx + ty * ty - 1.0*r * r;
15     double d = b * b - 4 * a * c;
16     if(fabs(a) < eps ) {
17         if( c<0) { // 這個我始終覺得很奇怪,為什么c小于0就無限解了。
18             m++;
19             t1[m] = 0;
20             t2[m] = 1e10;
21         }
22         return ;
23     }
24     if(d<0) return ;
25     t1[k] = (-b - sqrt(d)) / (2 * a);
26     t2[k] = (-b + sqrt(d)) / (2 * a);
27     if(t2[k] <0)
28         return ;
29     t1[k] = max(0.0, t1[k]);
30     m++;
31     t1[m] = t1[k];
32     t2[m] = t2[k];
33 }
34 int main() {
35     scanf("%d%d%lf%lf%lf%lf", &n, &r, &bx, &by, &bvx, &bvy);
36     for(int i = 1; i <= n; i++) {
37         scanf("%lf%lf%lf%lf", &x[i], &y[i], &vx[i], &vy[i]);
38         calc(i);
39     }
40     for(int i = 1; i <= m; i++) {
41         ++cnt;
42         t[cnt] = t1[i];
43         ++cnt;
44         t[cnt] = t2[i];
45     }
46     sort(t + 1, t + cnt + 1);
47     int c = unique(t, t + cnt + 1) - t - 1;
48     for(int i = 1; i <= m; i++) {
49         int a = lower_bound(t + 1, t + c + 1, t1[i]) - t;
50         int b = lower_bound(t + 1, t + c + 1, t2[i]) - t;
51         in[a]++;
52         out[b]++;
53     }
54     int ans = 0, now = 0;
55     for(int i = 1; i <= c; i++) {
56         now += in[i];
57         ans = max(ans, now);
58         now -= out[i];
59     }
60     printf("%d\n", ans);
61     return 0;
62 }
View Code

?

轉載于:https://www.cnblogs.com/ZJXXCN/p/10771266.html

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

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

相關文章

Visual Studio Code 使用 ESLint 增強代碼風格檢查 - gyzhao - 博客園

前言 在團隊協作開發中&#xff0c;為了統一代碼風格&#xff0c;避免一些低級錯誤&#xff0c;應該設有團隊成員統一遵守的編碼規范。很多語言都提供了Lint工具來實現這樣的功能&#xff0c;JavaScript也有類似的工具&#xff1a;ESLint。除了可以集成到構建工具中(如&#x…

CS 325 HW

代做CS 325作業、代寫C, C/Python編程設計作業、代做Python/c實驗作業CS 325 – HW 51. (6 points) Consider an undirected graph G(V,E) with nonnegative edge weights w(u,v)0. Supposethat you have computed a minimum spanning tree G, and that you have also computed…

express下使用ES6 - dtdxrk - 博客園

express下使用ES6 1 2 3 4 5 6 7 8 9 //環境切換配置 package.json scripts:{ "service": "NODE_ENVproduction PORT3000 npm start" } //node js判斷 var app express(); app.get(env) production 原文地址&#xff1a;https://segmentfault.com/a…

java中的內部類詳解

https://www.cnblogs.com/dolphin0520/p/3811445.html https://www.cnblogs.com/chenssy/p/3388487.html轉載于:https://www.cnblogs.com/codeLei/p/9934195.html

eclipse下使用git插件上傳代碼至github

eclipse下使用git插件上傳代碼至github 1.eclipse下安裝git 正常情況下&#xff0c;eclipse 是自帶 git 插件的&#xff0c;那么即可跳至步驟1的最后一小步&#xff0c;配置 git 。 如果十分悲劇&#xff0c;你的 eclipse 中見不到 git 的身影&#xff0c;那么也沒關系&#…

VS(C++)配置Halcon(一次配置,永久使用)

【說明】只需配置一次&#xff0c;以后新項目無需再次配置。 本教程是64位版本&#xff0c;32位可參考本教程。VS與Halcon無論哪個版本&#xff0c;都可參考本教程。 【步驟】以VS2015Halcon18.11為例 1、新建一個C|Win32控制臺應用程序項目 2、視圖|其他窗口|屬性管理器 在 De…

(轉)msys2使用教程

一、安裝 官方下載地址 http://www.msys2.org/ 指定好安裝路徑&#xff08;一般D根目錄即可&#xff09;&#xff0c;一路下一步就好。 二、配置國內鏡像、設置窗體修改顏色 使用[清華大學開源軟件鏡像站]中的地址&#xff0c;修改\etc\pacman.d目錄下的三個文件。 配置教程 ht…

簡單使用Git和Github來管理自己的代碼和讀書筆記

簡單使用Git和Github來管理自己的代碼和讀書筆記 以前不知道使用代碼管理工具&#xff0c;最后寫的一些東西都沒有了&#xff0c;由于硬盤壞了或者不小心格式化了之類的&#xff0c;后來使用了Git 和Github來托管自己的代碼和讀書筆記方便了不少&#xff0c;到哪里只要有網就可…

android 資源

在進行APP開發的過程當中&#xff0c;會用到許多資源&#xff0c;比如&#xff1a;圖片&#xff0c;字符串等。現對android資源知識進行簡單記錄。 具體的詳細信息及用法&#xff0c;點擊查看官方文檔 分類 一般android資源分為可直接訪問的系統資源和不可直接訪問的原生資源 r…

virtualbox 采用 NAT 還是 BRIDGE

正如標題所言&#xff0c;其實這兩個都可以讓虛擬機上網&#xff0c;但是還是有些差別的。 選擇NAT的話&#xff0c; 虛擬機之間無法PING通 虛擬機可以PING通主機 主機無法PING通虛擬機 這是因為虛擬機不能在網絡里擁有自己的IP&#xff0c;它是借助主機才能上網。 選擇橋接的話…

vue 集成html5 plus - 懶懶de尐彪 - 博客園

首先要安裝一個包 vue-html5plus npm i vue-html5plus -S 然后配置這個文件 在main.js添加一串代碼 var onPlusReady function (callback, context this) { if (window.plus) { callback.call(context) } else { document.addEventListener(plusready, callback.bind(cont…

ssh整合學習(1)

Hibernate框架 1 hibernate核心配置文件 &#xff08;0&#xff09;orm思想 -對象關系映射 &#xff08;1&#xff09;數據庫信息 &#xff08;2&#xff09;hibernate信息 &#xff08;3&#xff09;映射配置 &#xff08;4&#xff09;hibernate核心配置文件 -如果單純使用hi…

MongoDB在不同主機間復制數據庫和集合的教程_MongoDB_腳本之家

MongoDB在不同主機間復制數據庫和集合的教程 更新時間&#xff1a;2016年07月04日 15:49:51 作者&#xff1a;lucifercn MongoDB自帶了clone一族JavaScript函數來進行數據的復制,這里我們總結了MongoDB在不同主機間復制數據庫和集合的教程,列舉出了一些主從復制操作中常用…

2018-2019-2 網絡對抗技術 20165305 Exp6 信息搜集與漏洞掃描

1.實踐目標 掌握信息搜集的最基礎技能與常用工具的使用方法。 2.實踐內容 &#xff08;1&#xff09;各種搜索技巧的應用 &#xff08;2&#xff09;DNS IP注冊信息的查詢 &#xff08;3&#xff09;基本的掃描技術&#xff1a;主機發現、端口掃描、OS及服務版本探測、具體服務…

Java 觀察者模式

定義&#xff1a;定義了對象之間的一對多依賴&#xff0c;讓多個觀察者對象同時監聽某一個主題對象&#xff0c;當主題對象發生變化時&#xff0c;它的依賴者&#xff08;觀察者&#xff09;都會收到通知并更新 適用場景&#xff1a; 關聯行為場景&#xff0c;建立一套觸發機制…

蘋果電腦快捷鍵有哪些?mac系統快捷鍵大全詳細介紹(全部)_蘋果MAC_操作系統_腳本之家

蘋果電腦快捷鍵有哪些&#xff1f;mac系統快捷鍵大全詳細介紹(全部) 電腦中的每對快捷鍵有對應了一種操作效果&#xff0c;對于使用蘋果電腦的操作系統的新人來說&#xff0c;快捷鍵是個很麻煩的問題&#xff0c;要一個個的找到快捷鍵也不是很容易的問題&#xff0c;本文就為大…

Oracle數據庫基礎入門《一》Oracle服務器的構成

Oracle數據庫基礎入門《一》Oracle服務器的構成 Oracle 服務器是一個具有高性能和高可靠性面向對象關系型數據庫管理系統&#xff0c;也是一 個高效的 SQL 語句執行環境。 Oracle 服務器具備以下的特點&#xff1a; ● 能夠可靠的進行多用戶環境下大量數據的處理&#xff0c;允…

虛擬機配置域名

1.虛擬機的hosts文件 2.本地電腦的hosts文件 轉載于:https://www.cnblogs.com/xiaobiaomei/p/10790907.html

查看端口、關閉端口

1.在dos命令下查看tomcat占用的進程&#xff0c;首先在運行里輸入cmd進入dos&#xff0c;輸入命令“netstat -ano | findstr 8080”&#xff08;tomcat默認端口為8080&#xff09;。查出PID&#xff08;最后一列就是&#xff09;&#xff0c;假設PID為207340&#xff0c;輸入命…

HTML5 新標簽總匯

HTML5 新標簽總匯 2010-12-16 20:44 聶微東 閱讀(5060) 評論(8) 編輯 收藏 HTML5新標簽總匯&#xff1a; 有問題歡迎指出,有關于CSS3方面的知識點較多,下周一前整理出來. <article> 標簽定義外部的內容&#xff08;外部內容如blog,news&#xff09;。     …