原创 java 大整數開方模板與常用方法

BigInteger開方:public static BigInteger Sqrt(BigInteger xx) { BigDecimal x=new BigDecimal(xx); BigDecimal n1=BigDecima

原创 ccf 2017-09-04 通信網絡 圖的遍歷

中文題意,不在重複。 開始時用的傳遞閉包思想,三層循環,結果給了35分,超時了。 後來,看了別人的代碼,發現暴力搜圖就可以了。 我們只需遍歷n個點(發現n才1000。。。),每次都將此時的節點當做起點,然後開始查詢通過此點能到達的所有點。

原创 矩形面積交(模板)

#include <algorithm> #include <cctype> #include <cmath> #include <cstdio> #include <cstdlib> #include <cstring> #includ

原创 bfs 三維標記

做訓練賽遇到的一道題,感覺很好。 大致題意: 現在給你一個地圖n*m,' . '代表是空格子,' * '代表是有柱子阻隔。現在你站在a點,要走到b點。走的時候要遵循一個規則:必須走相鄰的格子,如果相鄰的格子爲有柱子格子,那麼這個格子與有柱

原创 hdu-1151(最小路徑覆蓋)

大致題意:有n個十字路口,m條街道,每兩個十字路口組成的街道是單向的,現在要在一些十字路口放置一些士兵進行看護,士兵可以通過街道從一個十字路口到達另一個十字路口(注意是單向的,且每個路口最多被一個士兵看護),問最少需要幾個士兵就可以看護所

原创 ccf 公共鑰匙盒 模擬

這道題理解不難,但是實現真的。。。 網上沒有答案,也不知道自己錯在哪裏了,於是自己測試樣例找錯誤,最後終於找對了。 我的大致思想就是純模擬(這道題除了模擬,應該沒有其他做法,有的話,請大佬告訴我)。 利用一個vector模擬鑰匙盒,然後模

原创 二分匹配-hdu-1281

這道題如果讀懂了,就很簡單。大致題意:一個n*m的棋盤,有k個可以放‘車’的格子,放完‘車’之後,要保證不能互相攻擊。假設最多能放t個‘車’。如果某個能放‘車’的格子現在不可以放了,且結果最多能放的‘車’數目不是t了,就稱這個格子爲重要點

原创 樹狀數組區間修改區間查詢

#include<stdio.h> #include<string.h> #include<algorithm> #include<iostream> using namespace std; long long num[200050];

原创 ccf 除法

#include<stdio.h> #include<iostream> #include<string.h> #define ll long long using namespace std; ll num[100050]; ll c[

原创 差分數組

給你一個序列,現在進行多次操作(很多),操作分兩種,一種是在(x,y)區間內加減某個數,另一個操作是查詢(x,y)內的所有數的和。 看到這種題,我們第一想到的就是樹狀數組和線段樹,如果暴力做,那肯定會tle。 現在把這種題型改一下,改成先

原创 sdsad

#include<stdio.h> #include<iostream> #include<algorithm> using namespace std; #define overlow -2 #define error -1 #defi

原创 第十五次CCFCSP認證——數據中心(SPFA變形)

題意: 題目比較繁瑣,其實就是從給的圖中,找出一棵樹,使得這棵樹最大的邊儘可能小,然後求的就是這條“最大邊”。 有兩種解法,一是最小生成樹中最大邊即是答案(最小生成樹採用貪心策略,每次選最小的邊,那麼生成的樹中最大邊一定是所有生成樹中最大

原创 CCFCSP認證——壓縮編碼(動態規劃)

思路: 題目的內容很容易使我們想到哈夫曼樹(右圖),但是哈夫曼每次是選擇兩個權值最小的,這樣形成的編碼字典序可能不是最小。而左圖構造的樹所形成的編碼纔是字典序最小的,因爲它是按照相鄰的順序進行構造,這樣從樹根走到葉子形成的編碼一定保證

原创 第九屆藍橋杯A組省賽——全球變暖

【題目描述】 你有一張某海域NxN像素的照片,"."表示海洋、"#"表示陸地,如下所示: 其中"上下左右"四個方向上連在一起的一片陸地組成一座島嶼。例如上圖就有2座島嶼。 由於全球變暖導致了海面上升,科學家預測未來幾十年,島嶼邊緣一個像素

原创 2018 ACM-ICPC北京網絡賽 A.Saving Tang Monk II(bfs)

好久沒bfs了,沒想到用三維數組去標記狀態來進行bfs。。。但仔細一想想,這麼解很有道理。。。 因爲這個圖每個格子可以走多遍,我們考慮,對於一個格子,如果帶着相同的氧氣瓶走兩次,那結果是相同的。所以我們從這個約束進行搜索,開一個三位數字,