提交记录 10733


用户 题目 状态 得分 用时 内存 语言 代码长度
Zhengyi_Wang router32. 测测你的路由器 Time Limit Exceeded 50 30 s 9728 KB C++ 932 B
提交时间 评测时间
2019-09-28 18:10:53 2020-08-01 02:25:06
//#define Debug 
#ifndef Debug
#include "router.h"
#endif
#ifdef Debug
typedef struct {
    unsigned addr;
    unsigned char len;
    char pad[3];  // Padding for memory alignment
    unsigned nexthop;
} __attribute__((packed)) RoutingTableEntry;
#endif

#include <iostream>
#include <cstdlib>
unsigned ones_prefix[33];
unsigned mask_addr[33];
unsigned int ans=-1;
int maxlen=-1;
int n;
int q;
RoutingTableEntry *a;

void init(int _n, int _q, const RoutingTableEntry *_a) {
	n=_n;
	q=_q;
	a=(RoutingTableEntry*)_a;
	for (int i=1;i<=32;i++){
		ones_prefix[i]=ones_prefix[i-1]|(1<<(32-i));
	}
	for (int i=0;i<n;i++){
		a[i].addr&=ones_prefix[a[i].len];
	}
}


unsigned query(unsigned addr) {
	for (int i=1;i<=32;i++){
		mask_addr[i]=addr&ones_prefix[i];
	}

	for (int i=0;i<n;i++){
		if ((mask_addr[a[i].len]==a[i].addr)&&(a[i].len>maxlen)){
			maxlen=a[i].len;
			ans=a[i].nexthop;
		}
	}	
	if (maxlen==-1) return 0;
	return ans;
}


CompilationN/AN/ACompile OKScore: N/A

Testcase #136.57 us36 KBAcceptedScore: 25

Testcase #23.791 ms9 MB + 512 KBAcceptedScore: 25

Testcase #330 s9 MB + 508 KBTime Limit ExceededScore: 0

Testcase #430 s9 MB + 508 KBTime Limit ExceededScore: 0


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