提交记录 15144
| 提交时间 |
评测时间 |
| 2020-11-29 00:11:43 |
2020-11-29 00:11:49 |
#include "router.h"
#include <unordered_map>
uint32_t big2little32(uint32_t big){
return (
((big & 0xff000000) >> 24) |
((big & 0x00ff0000) >> 8) |
((big & 0x0000ff00) << 8) |
((big & 0x000000ff) << 24)
);
}
uint32_t truncated(uint32_t u, int high, int low){
uint32_t tmp = (uint32_t)0xffffffff;
tmp = (tmp >> (32 - high + low));
tmp = tmp << low;
tmp = tmp & u;
return tmp;
}
std::unordered_map<uint32_t, RoutingTableEntry> routeMap;
void init(int n, int q, const RoutingTableEntry *a) {
for(int i = 0; i < n; i++){
uint32_t addr = big2little32(a[i].addr);
addr = addr >>(32 - unsigned(a[i].len));
routeMap[addr] = a[i];
}
}
unsigned query(unsigned addr) {
int len = 32;
addr = big2little32(addr);
while(len){
uint32_t cur_addr = truncated(addr, 32, 32 - len);
cur_addr = cur_addr >> (32 - len);
auto got = routeMap.find(cur_addr);
if(got != routeMap.end()){
return got->second.nexthop;
}
len--;
}
return 0;
}
| Compilation | N/A | N/A | Compile OK | Score: N/A | 显示更多 |
| Testcase #1 | 14.42 us | 24 KB | Accepted | Score: 25 | 显示更多 |
| Testcase #2 | 133.26 ms | 42 MB + 244 KB | Wrong Answer | Score: 0 | 显示更多 |
| Testcase #3 | 1.453 s | 42 MB + 244 KB | Wrong Answer | Score: 0 | 显示更多 |
| Testcase #4 | 2.767 s | 42 MB + 244 KB | Wrong Answer | Score: 0 | 显示更多 |
Judge Duck Online | 评测鸭在线
Server Time: 2026-03-21 07:39:38 | Loaded in 1 ms | Server Status
个人娱乐项目,仅供学习交流使用 | 捐赠