題目鏈接:hdu 4760 Good Firewall
題目大意:有1個防火墻,具有添加1個子網(wǎng)絡(luò),刪除1個子網(wǎng)絡(luò),和轉(zhuǎn)發(fā)包的操作。
解題思路:對子網(wǎng)掩碼前綴建立字典樹,每一個前綴終止節(jié)點用1個set記錄屬于哪些子網(wǎng)絡(luò),ip下限。那末增加和刪除操
作既可以解決了。對查詢操作,分別查詢兩個ip,處理除兩個ip可能屬于的網(wǎng)絡(luò),判斷有沒有共同便可。
#include <cstdio>
#include <cstring>
#include <set>
#include <algorithm>
using namespace std;
typedef long long ll;
typedef pair<int, ll> pii;
typedef set<pii>::iterator iter;
const int maxn = 1024 * 15 + 10;
const int maxm = 105;
const int sigma_size = 2;
struct Tire {
int sz, sv;
int g[maxn * maxm][sigma_size];
int idx[maxn * maxm], cnt[1030];
set<pii> ans, vis[maxn];
void init();
int newSet();
void addSet(int id, ll limt);
void insert(char* str, pii x);
void remove(char* str, pii x);
void find(char* str);
bool judge(char* a, char* b);
}T;
struct Network {
int n;
ll suf[20];
char ip[20][maxm];
Network() {
n = 0;
memset(suf, 0, sizeof(suf));
}
}net[1030];
ll change(char* ans, bool flag) {
char str[105];
int n = strlen(str), a[4], b;
if (flag)
scanf("%d.%d.%d.%d/%d", &a[0], &a[1], &a[2], &a[3], &b);
else {
scanf("%d.%d.%d.%d", &a[0], &a[1], &a[2], &a[3]);
b = 32;
}
int t = 0;
ll ret = 0;
for (int i = 0; i < 4; i++) {
for (int j = 7; j >= 0; j--) {
if (t < b)
ans[t] = ((a[i]>>j)&1) + '0';
else if (((a[i]>>j)&1))
ret |= (1LL<<(31-t));
t++;
}
}
ans[t] = '
主站蜘蛛池模板:
青青草久
|
精品久久久久久久久久久久包黑料
|
九九精品在线观看
|
国产精品日韩精品
|
av毛片|
国产精品一区二区久久久久
|
国产福利91精品一区二区三区
|
国产91精品久久久久久久网曝门
|
国产精品久久久久久久久久久久久
|
亚洲欧洲激情在线乱码蜜桃
|
亚洲成人综合视频
|
国产成年人
|
另类视频区
|
欧美一级黄色片免费观看
|
国产一区二区三区四区在线观看
|
一区二区三区国产片
|
亚洲香蕉在线观看
|
国产成人高清精品免费5388
|
日韩精品免费在线观看
|
精品国产乱码一区二区三区
|
国产精品一区二区三区免费视频
|
国产精品久久久久9999鸭
|
久久91精品国产91久久跳
|
福利视频网址导航
|
久久精品8|
色综合综合
|
日韩在线视频在线
|
欧美一区二区网站
|
中文在线一区
|
亚洲午夜在线观看
|
天天综合网日日夜夜
|
午夜网站在线观看
|
国产精品久久久久久久久免费看
|
麻豆网页
|
亚洲视频免费观看
|
噜噜社|
国产精品国产三级国产aⅴ无密码
|
久久中文字幕一区二区
|
久久香视频
|
国内久久
|
麻豆毛片|