Time of Update: 2018-12-04
嗯,今晚狀態不錯,除了卡最後一題以外沒有什麼太大的問題。最後一題到最後還是wa了,估計卡精度卡的不夠好。 A Reconnaissance 2好吧,水題,直接暴力,枚舉相鄰元素即可,注意一下最後一個和第一個相鄰就好了。 My Code:#include <cstdio>#include <cstring>#include <cstdlib>#include <algorithm> using namespace std; int ar[1100];
Time of Update: 2018-12-04
下午和隊友一起做了下杭州賽區的比賽題,結果被虐了,只過了三題,兩個隊友沒一會兒就開始打醬油。。。。實在受不了。 這道題裸的計算幾何,求出多邊形的重心,求重凸包,然後直接判斷重心到凸包各點的投影是否線上段上,注意這裡不用求出投影直接用點積即可,隊友看錯題WA了一次,我看了發現90的時候是不穩的。。。。到此整題就理論AC了,只要代碼穩,可以輕鬆拿下。 My Code:#include <cstdio>#include <cstring>#include
Time of Update: 2018-12-04
花點時間整理下以前A掉的水題 , 鞏固下基礎 ,也希望能再細節處理上有所提高可以用動態規劃來解決的問題 要滿足無後效性(DAG)、最優子結構 【無特殊說明都是JOJ的題】/***********************************************************************************/2526: medic採藥問題, 經典01背包,不必裝滿1維空間,用組合數學的產生函數思想更好理解一些#include
Time of Update: 2018-12-04
RMQ 即 range maximum/minimum query 1、樸素(即搜尋),O(n)-O(qn) online。 2、線段樹,O(n)-O(qlogn) online。 3、ST(實質是動態規劃),O(nlogn)-O(1) online。 ST演算法(Sparse Table),以求最大值為例,設d[i,j]表示[i,i+2^j-1]這個區間內的最大值,那麼在詢問到[a,b]區間的最大值時答案就是max(d[a,k], d[b-2^k+1,k]),其中k是滿足2^k&
Time of Update: 2018-12-04
由於題目不是自己人出的,所以題面就不給了吧CSDN貼代碼不能縮到一起了,所以這篇文章會顯得比較冗長Day1:1.Hash or 尾碼數組大概的做法:枚舉答案長度,暴力匹配驗證答案即可代碼:program syj;type arr=array[0..200005]of longint;var m,task,n,i,j,k,l,z,ans,o:longint; aa,a,b,c,sa,tmp,rank:arr; h:array[0..19]of arr; cc:char;
Time of Update: 2018-12-04
寫入:A a(...);file.write((char*) &a,sizeof(A));讀取:A *b = new A(); file.read((char*)
Time of Update: 2018-12-04
文章目錄 InputOutputSample InputSample Output ResultTIME LimitMEMORY LimitRun TimesAC TimesJUDGE3s8192K14352StandardParhelic, codger and I are good friends. As we know, the educational net can not access to foreign websites.
Time of Update: 2018-12-04
JOJ 2662: 採購方案 (二分答案+多重匹配)CCST@JLU 要舉辦這次的程式設計大賽。為了節省開支,在各方面都得考慮仔細,比賽場地布置也不例外。在布置場地時,需要為每台電腦提供電源,由於電腦和電源的位置已經固定,所以要採購一些電源線來串連電腦和電源。kkk在採購時發現,購買相同數量的等長電源線總比購買長度不一的電源線要便宜很多(雖然電源線的價格和長度成正比,卻不影響這個規律:)),所以kkk決定購買相同長度的電源線來布置場地。kkk想節省開支,你能協助他嗎? 題解 :二分答案 +
Time of Update: 2018-12-04
簡單的平衡二叉樹題,支援三個操作,插入、查詢最值、刪除,在結構體中用到了運算子多載,為了編碼方便,如果不用重載,應該會跑得更快。 My Code:#include <cstdio>#include <cstring>#include <cstdlib>#include <algorithm>using namespace std;const int MAX=1100000;struct In{int id;int pro;In(){}In(int
Time of Update: 2018-12-04
題意:一個hero要超越雷區,hero有一定的血,觸雷要掉一定血,雷是已知半徑和殺傷力的,求hero能否活著穿過雷區,且耗費最少的血;題解:我們將所有的圓映射成無向圖上的點,並且把任意兩個相交的圓(包括相切和包含)之間連上一條無向邊;將上邊界當成邏輯來源點,下邊界當成邏輯匯點,所有與之相交的圓都分別向它們連上一條有向邊。模型抽象為若存在一條從源點到匯點的獨立軌,則人必須觸一次雷,而人想通過街道,意味著要破壞這些獨立軌,使得源點和匯點之間失去連通性。這個顯然是一個無向圖的最小權點割問題了。將除了源
Time of Update: 2018-12-04
給出n個人物關係,p個查詢,詢問每個人的推薦好友(公用好友最多的且不是好友的人)。將人物看作點,存在好友關係看作邊,則題意轉化為查詢與某點最短路徑長度為2的最多重路徑的點。這樣直接構圖後BFS即可,將深度為2的存進隊列查詢次數,注意下輸出格式和數組的大小,人是有可能超過1000的!桂副隊長的代碼,好長。。。#include<stdio.h>#include<queue>#include<iostream>#include<map>#include&
Time of Update: 2018-12-04
這題Dancing Links寫的好糾結,二分寫掛了一次。這題的思路是預先處理出所有點對的距離,然後進行對半徑二分,跑重複覆蓋即可。注意二分的時候不能對距離二分,那樣會逾時,我們考慮極限情況,也就是消防隊恰好可以到達某一房子,也就是距離相等時的情況,這樣,我們就維護一個que數組表示可以選到的距離,對此進行二分。 My Code:#include <cstdio>#include <cstring>#include <cstdlib>#include <
Time of Update: 2018-12-04
學了拆點之後,發現這題的構圖就很簡單了 , 不過昨天因為構圖時控制方向的k的範圍出了點小問題 , 本應k<4 ,卻寫成了k<3 , 導致卡了一天 , 今天重寫一遍的時候發現了這個問題 , 改過來之後就AC了,時間跑了第一^ ^ 。題意:曹操在一個area上,孫劉聯軍為了防止曹操逃跑就必須設法堵住他的所有逃跑去路,即不能達到area的邊緣。構圖的方法就是:1.設定一個額外源點與所有邊界點相連 , 一個額外匯點與所有0相連 ,由於對於所有-1我們可以看成是需要0的時間去毀掉它 ,
Time of Update: 2018-12-04
計算幾何難寫主要的原因就是太不直觀,而手畫圖“精度”有限,效率也不高,怎麼辦?寫程式畫是一個不錯的想法!於是我就找盾哥學了一下graph和crt單元的一些用法,做了這樣一個簡陋的畫圖器為了方便使用,我把這個畫圖器做成了一個庫,要使用就只要uses draw_lib;就可以了代碼:unit draw_lib;interfaceprocedure init(k:longint);procedure putpoint(x,y:longint);procedure
Time of Update: 2018-12-04
這題是演算法導論上的經典模型,將發電站看成源,使用者看成匯,這樣就形成了多源多匯網路流模型,直接加一個總的源匯即可。源到發電站的容量為發電站的容量,使用者到匯 的容量為使用者容量,直接跑最大流即可。 My Code:#include <cstdio>#include <cstdlib>#include <cstring>#include <algorithm>using namespace std;const int MAX=120;const
Time of Update: 2018-12-04
在網上找了很多解題報告,看了很久才理解,不過理解之後代碼還是很好實現的><還是對每個格2種狀態 ,1表示被占 , 0表示不被占 ,對每一行可以做橫放 , 豎放 , 不放, 3種操作, 沒種操作都要求出對應上一行的狀態, 比如若豎放 , 上一行的狀態就必須是0 , 既沒被佔用,橫放和不放對應的上一行必須是1,這樣才能將所有的格子都填滿,其次對第一行只有橫放和不放2種操作, 對狀態的轉換自己YY下就可以出來,對於狀態的轉換,是樹狀的, 所以用DFS更好理解#include
Time of Update: 2018-12-04
題裡給出了沒點的度都小於等於2這個條件,既圖只能是環和鏈組成的圖,其中點包括在鏈裡,這樣只需遍曆下各個連通分量,記錄他們是否是環還是鏈,以及點的個數,之後在排序對比下即可。#include <cstdio>#include <algorithm>using namespace std;const int inf =0x3fffffff;const int maxn=10005;struct graph{ int chain[maxn],ring[maxn];
Time of Update: 2018-12-04
一、只有1,3,5,7,9#include <iostream>#include <cmath>#include <string>#include <sstream>#include <vector>using namespace std;void Perm(int k,int n,int a[], vector<int> &ivec){ if(k==n){int ret = 0;for(int i=0;i<
Time of Update: 2018-12-04
文章目錄 InputOutputSample InputSample Output ResultTIME LimitMEMORY LimitRun TimesAC
Time of Update: 2018-12-04
在正多邊形內部有一點,給出該點到多邊形各點的距離,求正多邊形的邊長從正多邊形的定義出發,各邊相等各角也相等的多邊形,直接二分答案 , 枚舉邊長 , 滿足各邊所對角的和為2*pi的即可能為答案 ,此時再判斷一下多邊型各角是否相等即可,出現impossible的情況有2種 , 一個是二分搜不到滿足條件的邊長 ,一個是搜到邊不滿足角相等,因為三角形2邊確定,則夾角所對邊和夾角都是單調遞增。#include <cstdio>#include <cmath>const