提交记录 13299


用户 题目 状态 得分 用时 内存 语言 代码长度
imalyd router32. 测测你的路由器 Wrong Answer 25 129.337 ms 9820 KB C++ 738 B
提交时间 评测时间
2020-08-01 10:03:56 2020-08-01 10:03:59
#include "router.h"
struct TrieNode{
	unsigned nexthop;
	unsigned padding1;
	unsigned padding2;
	unsigned padding3;
	TrieNode *c0;
	TrieNode *c1;
}T[26466817];
void init(int n, int q, const RoutingTableEntry *a) {
	TrieNode *t=T;
	for(const RoutingTableEntry *i=a,*e=a+n;i!=e;++i){
		TrieNode *v=T;
		for(char l=31,r=31-i->len;l!=r;--l){
			unsigned char c=(i->addr)>>l;
			if(c){
				if(v->c1)v=v->c1;
				else v=v->c1=++t;
			}else{
				if(v->c0)v=v->c0;
				else v=v->c0=++t;
			}
		}
		v->nexthop=i->nexthop;
	}
}
unsigned query(unsigned addr) {
	unsigned cur=0;
	TrieNode *v=T;
	for(char l=31;~l;--l){
		unsigned char c=addr>>l;
		if(c)v=v->c1;else v=v->c0;
		if(v){if(v->nexthop)cur=v->nexthop;}
		else return cur;
	}
	return cur;
}

CompilationN/AN/ACompile OKScore: N/A

Testcase #112.76 us28 KBAcceptedScore: 25

Testcase #222.56 ms9 MB + 604 KBWrong AnswerScore: 0

Testcase #375.953 ms9 MB + 604 KBWrong AnswerScore: 0

Testcase #4129.337 ms9 MB + 604 KBWrong AnswerScore: 0


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