提交记录 10307
| 提交时间 |
评测时间 |
| 2019-09-17 15:41:49 |
2020-08-01 02:07:05 |
#include "router.h"
#include <bits/stdc++.h>
using namespace std;
struct MyEntry
{
unsigned addr, len, nexthop;
};
bool operator<(const MyEntry &a, const MyEntry &b)
{
if(a.addr != b.addr) return a.addr < b.addr;
return a.len < b.len;
}
vector<pair<unsigned, unsigned>> V;
void init(int n, int q, const RoutingTableEntry *a)
{
set<MyEntry> S;
S.insert((MyEntry) {0, 0, 0});
for(int i = 0; i < n; i++) S.insert((MyEntry) {a->addr, a->len, a->nexthop});
for(auto it = S.begin(); it != S.end(); ++it)
{
auto jt = it; ++jt;
if(jt != S.end() && jt->addr == it->addr)
{
if(jt->len != it->len + 1) S.insert((MyEntry) {it->addr, it->len + 1, it->nexthop});
S.insert((MyEntry) {it->addr | 1u << (31 - it->len), it->len + 1, it->nexthop});
}
else V.push_back(make_pair(it->addr, it->nexthop));
}
}
unsigned query(unsigned addr)
{
return lower_bound(V.begin(), V.end(), make_pair(addr, ~0u))[-1].second;
}
| Compilation | N/A | N/A | Compile OK | Score: N/A | 显示更多 |
| Testcase #1 | 34.3 us | 36 KB | Wrong Answer | Score: 0 | 显示更多 |
| Testcase #2 | 5.502 ms | 9 MB + 512 KB | Wrong Answer | Score: 0 | 显示更多 |
| Testcase #3 | 8.931 ms | 9 MB + 512 KB | Wrong Answer | Score: 0 | 显示更多 |
| Testcase #4 | 12.363 ms | 9 MB + 512 KB | Wrong Answer | Score: 0 | 显示更多 |
Judge Duck Online | 评测鸭在线
Server Time: 2026-03-31 18:17:13 | Loaded in 1 ms | Server Status
个人娱乐项目,仅供学习交流使用 | 捐赠