提交记录 10764


用户 题目 状态 得分 用时 内存 语言 代码长度
duck router32. 测测你的路由器 Compile Error 0 0 ns 0 KB C++ 662 B
提交时间 评测时间
2019-09-29 23:54:50 2020-08-01 02:25:13
#include "router.h"
#include <algorithm>
int nn;
RoutingTableEntry *b;
void init(int n, int q, const RoutingTableEntry *a) {
	b=(RoutingTableEntry *)a;nn=n;
for (int i=0;i<nn;i++){
unsigned t;
if (b[i].len>0){
t=b[i].addr>>(32-b[i].len)<<(32-b[i].len);
}else{
t=0;
}
if (b[i].addr!=t){
b[i].addr=t;
}
}
std::sort(b,b+nn,cmp);
}

unsigned query(unsigned addr) {
for (int k=32;k>=0;k--){
int lo=nn-1,hi=-1;
while (lo-hi>1){
int mid=(lo+hi)/2;
if (b[mid].addr>=addr) lo=mid;
else hi=mid;
}
for (int i=lo;i<nn;i++){
if (b[i].addr==addr){
if (b[i].len==k) return b[i].nexthop;
}else{
break;
}
}
if (k<=1){
addr=0;
}else{
addr>>=(33-k);
addr<<=(33-k);
}
}
	return 0;
}

CompilationN/AN/ACompile ErrorScore: N/A


Judge Duck Online | 评测鸭在线
Server Time: 2026-03-29 00:20:27 | Loaded in 1 ms | Server Status
个人娱乐项目,仅供学习交流使用 | 捐赠