提交记录 13319


用户 题目 状态 得分 用时 内存 语言 代码长度
imalyd router32. 测测你的路由器 Wrong Answer 50 154.502 ms 17268 KB C++ 725 B
提交时间 评测时间
2020-08-01 10:27:11 2020-08-01 10:27:13
#include "router.h"
struct TrieNode{
	unsigned nexthop;
	unsigned is;
	unsigned padding1;
	unsigned padding2;
	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){
			if((i->addr)>>l&1){
				if(v->c1)v=v->c1;
				else v=v->c1=++t;
			}else{
				if(v->c0)v=v->c0;
				else v=v->c0=++t;
			}
		}
		v->is=1;
		v->nexthop=i->nexthop;
	}
}
unsigned query(unsigned addr) {
	unsigned cur=0;
	TrieNode *v=T;
	if(v->is)cur=v->nexthop;
	for(char l=31;~l;--l){
		if(addr>>l&1)v=v->c1;else v=v->c0;
		if(v){if(v->is)cur=v->nexthop;}
		else return cur;
	}
	return cur;
}

CompilationN/AN/ACompile OKScore: N/A

Testcase #114.19 us28 KBAcceptedScore: 25

Testcase #243.462 ms16 MB + 884 KBAcceptedScore: 25

Testcase #398.997 ms16 MB + 884 KBWrong AnswerScore: 0

Testcase #4154.502 ms16 MB + 884 KBWrong AnswerScore: 0


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