CF918B Radio Station 題解
阿新 • • 發佈:2021-12-21
CF918B Radio Station 題解
的列舉就能夠解決。具體怎麼解決?很簡單,輸入完每一次命令,直接再在所有 \(n\) 個 IP 地址中一個一個去找,看是否有和當前命令的 IP 地址相等的,一旦碰到相等的就直接輸出就好了。
Content
有 \(n\) 個形如 \(a_i.b_i.c_i.d_i\) 的 IP 地址。有 \(m\) 條命令,每條命令由一條字串 \(s\) 和一個形如 \(p.q.r.s\) 的 IP 地址,你需要輸出這個命令,並輸出這個命令所指向的 IP 地址對應的名稱。
資料範圍:\(1\leqslant n,m\leqslant 1000,0\leqslant a_i,b_i,c_i,d_i,p,q,r,s\leqslant 255,1\leqslant|s|\leqslant 10\)。
Solution
這題乍一看有些高大上,但看到這個資料範圍之後,我就認定了這道題目只需要 \(\mathcal{O}(nm)\)
Code
string name[1007]; int n, m, a[1007], b[1007], c[1007], d[1007]; int main() { getint(n), getint(m); _for(i, 1, n) {cin >> name[i]; scanf("%d.%d.%d.%d", &a[i], &b[i], &c[i], &d[i]);} _for(i, 1, m) { string tmpname; int tmpa, tmpb, tmpc, tmpd; cin >> tmpname; scanf("%d.%d.%d.%d;", &tmpa, &tmpb, &tmpc, &tmpd); _for(j, 1, n) if(tmpa == a[j] && tmpb == b[j] && tmpc == c[j] && tmpd == d[j]) { cout << tmpname << ' '; writeint(tmpa), putchar('.'); writeint(tmpb), putchar('.'); writeint(tmpc), putchar('.'); writeint(tmpd), putchar(';'), putchar(' '), putchar('#'); cout << name[j] << endl; break; } } return 0; }