提交记录 10763


用户 题目 状态 得分 用时 内存 语言 代码长度
duck router32. 测测你的路由器 Wrong Answer 50 4.454 s 9716 KB C++ 618 B
提交时间 评测时间
2019-09-29 23:53:35 2020-08-01 02:28:04
#include "router.h"
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;
}
}
}

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 OKScore: N/A

Testcase #110.78 us24 KBAcceptedScore: 25

Testcase #23.472 ms9 MB + 500 KBAcceptedScore: 25

Testcase #32.229 s9 MB + 500 KBWrong AnswerScore: 0

Testcase #44.454 s9 MB + 500 KBWrong AnswerScore: 0


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