百度之星 資格賽 IP聚合

2021-07-02 20:19:55 字數 1878 閱讀 7313

保持著也不知道什麼情懷,覺得到現在才能發出來。這道題做完之後看了其他人的**,然後再看我的,不得不說,真是幼稚的很,尤其是輸入這一塊,都什麼跟什麼啊。

但相較於之前來說,不像以前慌張了,學會先思考再去寫**,明白了函式的一些用處與含義。我知道乙個大四的老狗說這種話倒還真是夠沒面子的,但希望自己每天都在成長。你眼裡的小草,我心中的大樹。

ip

聚合

problem description

當今世界,網路已經無處不在了,小度熊由於犯了錯誤,當上了度度公司的網路管理員,他手上有大量的

ip列表,小度熊想知道在某個固定的子網掩碼下,有多少個網路位址。網路位址等於子網掩碼與

ip

子網掩碼:

a.b.c.d

ip a.b.c.d

(a&a).(b&b).(c&c).(d&d)

input

第一行包含乙個整數t,

(1≤t≤50

)代表測試資料的組數,

接下來t組測試資料。每組測試資料報含若干行,

第一行兩個正整數n(

1≤n≤1000,1≤

m≤50),

m。接下來

n行,每行乙個字串,代表乙個

ip 位址,

再接下來

m行,每行乙個字串代表子網掩碼。

ip 位址和子網掩碼均採用a.

b.c.

d的形式,其中a、

b、c、

d均為非負整數,且小於等於

255。

output

對於每組測試資料,輸出兩行:

第一行輸出

:"case #i:" 。i

代表第i

組測試資料。

第二行輸出測試資料的結果,對於每組資料中的每乙個子網掩碼,輸出在此子網掩碼下的網路位址的數量。

sample input2

5 2

192.168.1.0

192.168.1.101

192.168.2.5

192.168.2.7

202.14.27.235

255.255.255.0

255.255.0.0

4 2127.127.0.1

10.134.52.0

127.0.10.1

10.134.0.2

235.235.0.0

1.57.16.0

sample output

case #1: 3

2case #2: 3

4**:

#include #include using namespace std;

int ip[1005][5];

int yanma[55][5];

int m,n;

int result[1005][5];

vectorxiangdeng;

void yihuo(int count) }}

bool panduan(int a)

}} for(count1=1;count1<=n;count1++)

}} cout<<"case #"<

看了其他人的ac**,首先你看人家的輸入scanf(「%d.%d.%d.%d」),另外一點就是完全可以把ip位址弄成乙個數去比較,<<8  <<16 <<24即可。而不用像我一直在想如何在多個陣列中找,太麻煩了。

最後的感受就是一種思路不行的時候,換乙個別的可能就會ok。一開始只想找差別,各種wrong。最後的想法是找相同的,統計不同的就行了。

但總之,這是我第一次比賽中的ac,不管題多簡單,自己做得又是有多麻煩,希望這是起點。

百度之星資格賽

1001 給你1 n這n個數字,公升序排列,接下來按照陣列a進行位置變換,a i 代表第i個數字會變到a i 位置上,a中的數字也是從1 n。現在問有多少個不同的陣列能滿足做一次變換和做三次變換結果相同。我們可以這樣分析,x y是唯一的到y的途徑,假設x y為第一次變換,因此在第三次變換的時候任然為...

2016 百度之星 資格賽

變懶了,最近做的很多題目都不想貼了。本來就sb,還那麼懶,沒救了。a沒想太多,設個逆元就過了。b斐波那契數列高精度。n 0時輸出換行。c字典樹,記錄結點的單詞數 以及 當前結點是否是單詞的末尾,delete時需要先找出字首對應的串數,那麼就dfs統計末尾結點總數,然後用字首減掉就好了。一開始dfs跑...

2015百度之星資格賽1001

題目名稱 大搬家 problem description 近期b廠組織了一次大搬家,所有人都要按照指示換到指定的座位上。指示的內容是坐在位置 i 上的人要搬到位置 j 上。現在b廠有 n 個人,一對一到 n 個位置上。搬家之後也是一一對應的,改變的只有位次。在第一次搬家後,度度熊由於疏忽,又要求大家...