【BZOJ-4523】路由表 Trie树 + 乱搞
4523: [Cqoi2016]路由表
Time Limit: 30 Sec Memory Limit: 512 MB
Submit: 155 Solved: 98
[Submit][Status][Discuss]
Description
路由表查找是路由器在转发IP报文时的重要环节。通常路由表中的表项由目的地址、掩码、下一跳(Next Hop)地址和其他辅助信息组成。例如:
.png)
.png)
Input
Output
包含若干行,每行仅有一个整数,依次对应每个查询操作。
Sample Input
A 128.0.0.0/ A 128.0.0.0/ A 100.200.20.0/ A 241.170.96.0/ A 74.128.0.0/ A 193.24.0.0/ A 128.0.0.0/ A 128.0.0.0/ A 128.0.0.0/ A 128.0.0.0/ A 128.0.0.0/ A 192.0.0.0/ Q 192.0.0.13 A 128.0.0.0/ Q 128.0.0.15 A 74.0.0.0/ A 96.0.0.0/ A 193.24.0.0/ A 100.192.0.0/ A 128.0.0.0/ A 128.0.0.0/ Q 128.0.0.4 A 192.0.0.0/ A 192.0.0.0/ Q 128.0.0.7 A 128.0.0.0/ A 74.128.0.0/ A 128.0.0.0/ A 128.0.0.0/ A 74.128.0.0/ Q 128.0.0.9 A 96.0.0.0/ A 64.0.0.0/ A 74.0.0.0/ A 100.192.0.0/ A 128.0.0.0/ A 193.24.0.0/ Q 128.0.0.3 Q 74.128.0.12 A 128.0.0.0/ A 193.24.0.0/ Q 128.0.0.7 A 192.0.0.0/ Q 128.0.0.3 A 100.192.0.0/ Q 241.170.96.2 Q 100.192.0.4 A 74.0.0.0/ A 192.0.0.0/ A 128.0.0.0/ Q 74.128.0.5 Q 74.128.0.6 A 192.0.0.0/ A 100.192.0.0/ Q 128.0.0.6 A 100.128.0.0/ Q 74.0.0.13 A 100.0.0.0/ A 96.0.0.0/ A 128.0.0.0/ A 192.0.0.0/ A 240.0.0.0/ Q 100.0.0.1 A 128.0.0.0/ Q 128.0.0.6 A 193.24.0.0/ Q 96.0.0.15 A 3.220.186.0/ A 192.0.0.0/ Q 128.0.0.13 A 74.0.0.0/ A 232.0.0.0/ Q 128.0.0.11 A 192.0.0.0/ A 100.128.0.0/ Q 3.220.186.4 A 64.0.0.0/ Q 100.0.0.5 A 96.0.0.0/ A 192.0.0.0/ Q 128.0.0.3 A 128.0.0.0/ A 100.0.0.0/ A 193.24.0.0/ A 192.0.0.0/ Q 128.0.0.0 A 96.0.0.0/ Q 128.0.0.10 Q 100.0.0.5 A 96.0.0.0/ A 100.192.0.0/ A 128.0.0.0/ A 192.0.0.0/ A 128.0.0.0/ Q 64.0.0.0 Q 96.0.0.0 A 192.0.0.0/ A 100.0.0.0/ A 193.24.0.0/ Q 100.128.0.6 Q 192.0.0.2 Q 128.0.0.2 A 0.0.0.0/ A 100.192.0.0/ A 192.0.0.0/ Q 74.128.0.11 A 100.128.0.0/ A 192.0.0.0/ A 74.0.0.0/ Q 193.24.0.12 A 163.214.12.64/ A 232.0.0.0/ A 100.128.0.0/ A 192.0.0.0/ A 100.0.0.0/ A 128.0.0.0/ Q 64.0.0.5 A 74.0.0.0/ A 128.0.0.0/ Q 193.24.0.14 A 0.0.0.0/ A 74.0.0.0/ Q 100.192.0.6 A 100.192.0.0/ Q 192.0.0.6 Q 193.24.0.0 A 96.0.0.0/ A 128.0.0.0/ A 193.24.0.0/ A 192.0.0.0/ Q 74.0.0.8 A 100.0.0.0/ A 100.192.0.0/ Q 128.0.0.4 A 193.24.0.0/ Q 128.0.0.4 Q 128.0.0.4 A 192.0.0.0/ A 100.192.0.0/ Q 193.24.0.12 Q 96.0.0.10 Q 241.170.96.10 Q 128.0.0.3 Q 3.220.186.2 Q 192.0.0.11 A 240.0.0.0/ A 128.0.0.0/ A 193.24.0.0/ A 64.0.0.0/ A 0.0.0.0/ Q 192.0.0.10 Q 128.0.0.3 A 193.24.0.0/ A 8.0.0.0/ A 96.0.0.0/ A 128.0.0.0/ Q 74.128.0.8 A 232.0.0.0/ Q 74.128.0.13 A 100.128.0.0/ A 100.128.0.0/ A 192.0.0.0/ A 192.0.0.0/ A 0.0.0.0/ Q 193.24.0.14 A 192.0.0.0/ Q 100.0.0.3 A 100.192.0.0/ A 96.0.0.0/ A 240.0.0.0/ A 8.0.0.0/ A 0.0.0.0/ A 100.200.0.0/ Q 192.0.0.12 A 0.0.0.0/ A 8.0.0.0/ A 0.0.0.0/ Q 128.0.0.0 A 100.0.0.0/ Q 232.0.0.14 Q 74.0.0.1 A 240.0.0.0/ A 100.128.0.0/ Q 8.0.0.11 A 100.128.0.0/ A 8.0.0.0/ A 128.0.0.0/ A 193.24.0.0/ Q 74.0.0.12 Q 100.192.0.9 A 0.0.0.0/ A 0.0.0.0/ Q 232.0.0.12 Q 192.0.0.5 A 193.0.0.0/ A 240.0.0.0/ Q 0.0.0.2 Q 128.0.0.6 A 100.192.0.0/ Q 192.0.0.3 A 8.0.0.0/ Q 192.0.0.6 Q 96.0.0.0 A 0.0.0.0/ A 192.0.0.0/ Q 74.0.0.9 A 100.128.0.0/ Q 100.192.0.14 Q 100.200.20.13 Q 100.192.0.3 Q 100.128.0.2 Q 8.0.0.0 A 160.0.0.0/ Q 100.0.0.8 A 0.0.0.0/ A 100.192.0.0/ Q 128.0.0.8 Q 0.0.0.15 A 8.0.0.0/ A 100.192.0.0/ Q 128.0.0.12 Q 128.0.0.4 A 96.0.0.0/ Q 193.24.0.13 Q 240.0.0.5 A 100.128.0.0/ Q 193.0.0.10 A 100.128.0.0/ A 3.192.0.0/ A 224.0.0.0/ Q 0.0.0.7 Q 100.128.0.1 Q 193.24.0.2 Q 100.200.20.3 A 74.0.0.0/ A 193.0.0.0/ Q 193.24.0.2 Q 128.0.0.6 A 213.251.112.0/ A 241.160.0.0/ A 96.0.0.0/ A 100.0.0.0/ A 96.0.0.0/ Q 192.0.0.8 Q 96.0.0.12 A 100.128.0.0/ A 193.0.0.0/ Q 96.0.0.1 Q 100.192.0.13 A 192.0.0.0/ Q 193.24.0.4 A 100.0.0.0/ A 100.128.0.0/ Q 241.170.96.7 A 100.128.0.0/ Q 100.128.0.1 Q 192.0.0.13 A 192.0.0.0/ Q 96.0.0.2 A 74.0.0.0/ A 100.192.0.0/ Q 193.24.0.12 A 96.0.0.0/ A 74.128.0.0/ A 0.0.0.0/ A 74.0.0.0/ A 193.0.0.0/ Q 100.0.0.2 A 96.0.0.0/ A 193.0.0.0/ Q 100.192.0.7 A 100.0.0.0/ Q 74.0.0.14 A 96.0.0.0/ Q 100.128.0.7 Q 163.214.12.69 Q 128.0.0.1 A 96.0.0.0/ A 74.0.0.0/ A 192.0.0.0/ Q 100.0.0.3 Q 192.0.0.8 Q 74.0.0.4 A 74.128.0.0/ Q 0.0.0.1 Q 241.160.0.1 A 224.0.0.0/ Q 192.0.0.5 Q 232.0.0.10 A 192.0.0.0/ Q 100.192.0.1 A 100.0.0.0/ A 100.0.0.0/ A 64.0.0.0/ A 8.0.0.0/ Q 100.0.0.14 A 74.0.0.0/ A 100.128.0.0/ A 163.214.12.0/ A 0.0.0.0/ A 0.0.0.0/ A 72.0.0.0/ A 193.24.0.0/ Q 100.128.0.1 A 193.0.0.0/ A 100.128.0.0/ A 232.0.0.0/ Q 100.128.0.10 A 128.0.0.0/ Q 192.0.0.13 A 96.0.0.0/ Q 128.0.0.13 Q 128.0.0.5 A 0.0.0.0/ A 193.88.0.0/ A 0.0.0.0/ A 100.192.0.0/ A 213.240.0.0/ A 100.0.0.0/ A 72.0.0.0/ A 3.192.0.0/ A 74.0.0.0/ A 100.192.0.0/ Q 96.0.0.9 Q 192.0.0.7 A 160.0.0.0/ Q 0.0.0.2 Q 100.128.0.12 Q 192.0.0.4 Q 100.0.0.14 A 232.0.0.0/ A 0.0.0.0/ A 72.0.0.0/ Q 128.0.0.2 Q 100.192.0.5 Q 192.0.0.12 Q 193.0.0.8 Q 74.128.0.4 A 0.0.0.0/ A 0.0.0.0/ Q 100.128.0.11 A 16.0.0.0/ Q 192.0.0.11 A 232.0.0.0/ A 74.128.0.0/ A 232.0.0.0/ A 241.160.0.0/ A 96.0.0.0/ A 74.0.0.0/ A 162.0.0.0/ A 100.192.0.0/ A 193.24.0.0/ A 64.0.0.0/ A 193.0.0.0/ A 155.49.0.0/ Q 128.0.0.4 Q 193.24.0.2 A 240.0.0.0/ Q 100.200.0.5 A 74.128.0.0/ A 193.16.0.0/ Q 74.0.0.4 Q 128.0.0.0 A 0.0.0.0/ A 72.0.0.0/ A 120.0.0.0/ A 0.0.0.0/ A 100.0.0.0/ A 0.0.0.0/ Q 192.0.0.11 Q 100.0.0.2 Q 193.24.0.2 Q 74.0.0.6 A 96.0.0.0/ A 232.0.0.0/ A 128.0.0.0/ A 128.0.0.0/ A 74.128.0.0/ Q 128.0.0.10 A 74.0.0.0/ Q 100.192.0.5 Q 100.0.0.8 A 16.0.0.0/ A 193.0.0.0/ Q 72.0.0.0 Q 240.0.0.3 A 224.0.0.0/ A 0.0.0.0/ A 100.128.0.0/ A 100.192.0.0/ A 3.220.186.0/ Q 193.24.0.0 A 193.24.0.0/ Q 72.0.0.1 Q 16.0.0.10 A 240.0.0.0/ A 72.0.0.0/ A 16.0.0.0/ Q 3.192.0.3 A 232.0.0.0/ A 8.0.0.0/ A 8.0.0.0/ Q 224.0.0.5 Q 96.0.0.4 A 16.0.0.0/ Q 100.0.0.11 A 213.240.0.0/ A 96.0.0.0/ Q 74.128.0.13 Q 100.192.0.5 A 193.0.0.0/ Q 193.0.0.0 A 74.0.0.0/ Q 232.0.0.0 A 179.11.167.64/ Q 192.0.0.0 A 193.0.0.0/ Q 128.0.0.13 Q 72.0.0.9 Q 100.192.0.0 A 224.0.0.0/ Q 96.0.0.15 Q 16.0.0.5 Q 193.24.0.3 Q 100.128.0.0 Q 74.0.0.12 A 162.0.0.0/ Q 192.0.0.12 A 241.160.0.0/ Q 193.24.0.2 A 100.0.0.0/ A 241.170.96.0/ A 100.192.0.0/ A 179.11.0.0/ A 100.200.20.0/ A 193.0.0.0/ A 224.0.0.0/ Q 232.0.0.5 Q 128.0.0.1 A 3.220.160.0/ Q 74.0.0.4 A 0.0.0.0/ Q 192.0.0.5 A 3.192.0.0/ A 72.0.0.0/ A 160.0.0.0/ Q 128.0.0.12 A 224.0.0.0/ A 179.11.0.0/ Q 192.0.0.14 A 213.0.0.0/ A 178.0.0.0/ A 240.0.0.0/ A 100.0.0.0/ Q 128.0.0.2 Q 100.128.0.8 A 74.128.0.0/ Q 100.128.0.9 A 74.128.0.0/ A 240.0.0.0/ Q 240.0.0.2 A 232.0.0.0/ A 74.0.0.0/ Q 8.0.0.11 Q 224.0.0.2 Q 100.192.0.5 A 72.0.0.0/ A 72.0.0.0/ Q 193.0.0.7 A 74.0.0.0/ Q 100.128.0.14 A 192.0.0.0/ A 240.0.0.0/ A 240.0.0.0/ A 100.0.0.0/ A 96.0.0.0/ A 224.0.0.0/ Q 100.192.0.1 Q 8.0.0.8 Q 74.0.0.15 Q 0.0.0.4 A 247.48.0.0/ A 162.0.0.0/ A 240.0.0.0/ Q 96.0.0.11 A 72.0.0.0/ Q 74.0.0.12 A 74.128.0.0/ A 100.0.0.0/ Q 100.0.0.2 A 96.0.0.0/ Q 72.0.0.12 Q 96.0.0.9 A 16.0.0.0/ A 64.0.0.0/ Q 213.240.0.1 A 100.128.0.0/ A 100.0.0.0/ Q 96.0.0.10 A 120.0.0.0/ A 224.0.0.0/ Q 74.0.0.11 A 224.0.0.0/ A 232.0.0.0/ A 0.0.0.0/ Q 16.0.0.2 Q 0.0.0.14 A 74.0.0.0/ A 232.0.0.0/ Q 128.0.0.7 Q 96.0.0.6 A 16.0.0.0/ A 192.0.0.0/ A 20.30.128.0/ A 100.0.0.0/ A 179.11.0.0/ Q 179.11.0.6 A 224.0.0.0/ Q 213.240.0.1 Q 74.0.0.1 Q 192.0.0.10 A 100.192.0.0/ A 100.0.0.0/ A 224.0.0.0/ Q 72.0.0.7 Q 100.192.0.5 A 74.0.0.0/ Q 74.0.0.6 Q 232.0.0.10 A 74.128.0.0/ A 72.0.0.0/ A 74.128.0.0/ A 224.0.0.0/ A 191.11.64.0/ A 224.0.0.0/ Q 224.0.0.13 A 8.0.0.0/ A 100.192.0.0/ Q 193.16.0.2 Q 0.0.0.15 A 16.0.0.0/ A 241.160.0.0/ Q 100.0.0.1 A 72.0.0.0/ A 118.101.156.224/ A 100.200.0.0/ Q 100.0.0.7 A 232.0.0.0/ Q 100.0.0.11 Q 8.0.0.13 A 20.30.128.0/ A 213.0.0.0/ A 8.0.0.0/ Q 100.128.0.5 A 128.0.0.0/ A 3.220.160.0/ A 3.192.0.0/ A 213.0.0.0/ A 240.0.0.0/ Q 100.192.0.0 Q 96.0.0.9 Q 100.128.0.11 A 74.0.0.0/ A 62.188.0.0/ A 162.0.0.0/ Q 128.0.0.9 A 193.0.0.0/ A 96.0.0.0/ A 0.0.0.0/ Q 128.0.0.6 A 232.0.0.0/ A 0.0.0.0/ Q 192.0.0.0 A 64.0.0.0/ A 96.0.0.0/ Q 193.24.0.0 A 100.128.0.0/ Q 193.24.0.13 A 241.160.0.0/ Q 0.0.0.9 A 8.0.0.0/ Q 74.0.0.7 A 100.192.0.0/ A 191.0.0.0/ A 96.0.0.0/ A 100.0.0.0/ Q 8.0.0.10 A 213.0.0.0/ A 8.0.0.0/ A 3.0.0.0/ A 118.101.128.0/ Q 74.128.0.14 A 0.0.0.0/ A 241.170.96.0/ Q 74.128.0.8 Q 20.30.128.6 A 191.0.0.0/ A 213.0.0.0/ A 64.0.0.0/ Q 179.11.0.12 Q 0.0.0.11 Q 120.0.0.6 Q 8.0.0.6 A 64.0.0.0/ Q 96.0.0.15 A 16.0.0.0/ A 179.11.0.0/ A 160.0.0.0/ A 74.0.0.0/ Q 192.0.0.8 A 224.0.0.0/ A 8.0.0.0/ Q 128.0.0.11 A 72.0.0.0/ Q 224.0.0.11 A 240.0.0.0/ A 0.0.0.0/ Q 96.0.0.13 A 193.24.0.0/ A 192.0.0.0/ A 3.208.0.0/ A 179.0.0.0/ Q 240.0.0.2 A 64.0.0.0/ Q 240.0.0.6 A 232.0.0.0/ A 247.48.0.0/ A 193.0.0.0/ A 160.0.0.0/ A 16.0.0.0/ Q 128.0.0.8 Q 128.0.0.11 Q 100.0.0.2 Q 224.0.0.0 Q 96.0.0.6 A 20.0.0.0/ A 100.128.0.0/ A 224.0.0.0/ Q 128.0.0.5 Q 74.0.0.14 Q 100.128.0.14 Q 240.0.0.13 Q 160.0.0.2 A 8.0.0.0/ Q 193.0.0.14 A 16.0.0.0/ A 192.0.0.0/ A 74.0.0.0/ A 74.0.0.0/ A 241.160.0.0/ Q 100.0.0.14 Q 162.0.0.14 Q 74.128.0.3 Q 128.0.0.3 A 72.0.0.0/ A 122.38.0.0/ A 240.0.0.0/ Q 0.0.0.14 Q 213.0.0.13 A 213.0.0.0/ A 232.0.0.0/ A 232.0.0.0/ Q 74.0.0.4 A 20.0.0.0/ Q 16.0.0.2 Q 100.128.0.7 A 94.3.0.0/ Q 240.0.0.10 A 163.208.0.0/ A 95.0.0.0/ Q 224.0.0.1 A 232.0.0.0/ Q 72.0.0.3 A 160.0.0.0/ A 191.11.0.0/ A 240.0.0.0/ A 163.214.0.0/ A 72.217.252.176/ A 241.160.0.0/ Q 192.0.0.4 A 20.0.0.0/ A 120.0.0.0/ Q 0.0.0.6 Q 100.192.0.1 A 240.0.0.0/ Q 128.0.0.12 A 74.128.0.0/ A 232.0.0.0/ A 96.0.0.0/ Q 192.0.0.15 A 160.0.0.0/ A 179.0.0.0/ A 74.128.0.0/ A 8.0.0.0/ Q 74.128.0.6 Q 128.0.0.10 A 240.0.0.0/ Q 100.192.0.11 A 8.0.0.0/ Q 162.0.0.12 Q 100.192.0.7 Q 128.0.0.9 A 64.0.0.0/ Q 3.208.0.9 Q 178.0.0.0 Q 72.0.0.10 A 72.0.0.0/ Q 128.0.0.14 A 0.0.0.0/ A 151.48.12.96/ A 191.0.0.0/ Q 74.128.0.14 Q 74.0.0.7 A 100.0.0.0/ A 179.11.167.64/ A 8.0.0.0/ A 3.128.0.0/ A 193.88.0.0/ Q 120.0.0.1 A 120.0.0.0/ Q 94.3.0.8 Q 100.128.0.8 Q 240.0.0.5 Q 162.0.0.14 A 240.0.0.0/ A 160.0.0.0/ A 213.248.0.0/ Q 16.0.0.6 A 64.0.0.0/ Q 100.192.0.8 A 224.0.0.0/ Q 100.192.0.0 A 120.0.0.0/ A 103.119.244.96/ A 240.0.0.0/ Q 232.0.0.1 Q 96.0.0.8 Q 224.0.0.13 A 160.0.0.0/ A 241.160.0.0/ A 64.0.0.0/ A 160.0.0.0/ A 100.200.0.0/ Q 179.11.0.4 Q 193.24.0.4 A 96.0.0.0/ A 16.0.0.0/ Q 100.192.0.4 A 8.0.0.0/ A 163.208.0.0/ A 178.0.0.0/ A 160.0.0.0/ Q 191.11.64.4 Q 224.0.0.15 Q 192.0.0.9 Q 193.24.0.15 A 151.48.8.0/ A 224.0.0.0/ A 213.128.0.0/ A 191.0.0.0/ A 74.128.0.0/ A 120.0.0.0/ Q 193.24.0.1 Q 8.0.0.11 Q 192.0.0.8 Q 192.0.0.12 Q 192.0.0.0 A 151.48.12.0/ A 3.192.0.0/ Q 240.0.0.10 A 8.0.0.0/ A 120.0.0.0/ A 162.0.0.0/ A 64.0.0.0/ Q 100.0.0.15 A 118.101.128.0/ A 120.0.0.0/ A 179.11.0.0/ A 240.0.0.0/ A 224.0.0.0/ A 247.48.0.0/ A 240.0.0.0/ A 20.30.128.0/ A 224.0.0.0/ A 213.0.0.0/ Q 72.0.0.14 A 134.161.96.0/ A 193.88.0.0/ A 160.0.0.0/ Q 240.0.0.14 A 160.0.0.0/ Q 74.128.0.13 Q 0.0.0.8 Q 0.0.0.0 Q 74.0.0.2 Q 0.0.0.1 A 213.0.0.0/ A 193.0.0.0/ Q 179.11.167.78 A 160.0.0.0/ A 179.11.0.0/ A 162.0.0.0/ A 3.192.0.0/ Q 128.0.0.6 A 191.0.0.0/ A 191.0.0.0/ Q 64.0.0.4 A 215.172.0.0/ Q 0.0.0.6 A 112.0.0.0/ A 224.0.0.0/ A 162.0.0.0/ Q 162.0.0.15 A 240.0.0.0/ A 224.0.0.0/ A 64.0.0.0/ A 100.128.0.0/ A 240.0.0.0/ Q 241.170.96.14 A 213.0.0.0/ A 3.0.0.0/ A 212.0.0.0/ Q 193.0.0.4 Q 74.128.0.7 Q 100.0.0.1 Q 94.3.0.7 A 120.0.0.0/ A 3.0.0.0/ Q 72.0.0.14 A 232.0.0.0/ A 100.200.0.0/ A 20.30.128.0/ Q 179.11.0.0 A 64.0.0.0/ Q 64.0.0.15 A 215.172.0.0/ Q 160.0.0.14 A 64.0.0.0/ Q 213.0.0.15 A 8.0.0.0/ A 224.0.0.0/ Q 178.0.0.12 A 162.0.0.0/ A 100.200.16.0/ A 3.128.0.0/ A 191.0.0.0/ Q 224.0.0.15 Q 74.0.0.12 Q 193.0.0.10 A 213.0.0.0/ A 3.128.0.0/ Q 224.0.0.2 Q 193.88.0.15 A 100.0.0.0/ A 120.0.0.0/ Q 240.0.0.12 A 191.0.0.0/ Q 72.0.0.8 A 241.160.0.0/ Q 0.0.0.14 A 242.128.0.0/ Q 16.0.0.8 Q 160.0.0.14 A 120.0.0.0/ A 72.0.0.0/ A 232.0.0.0/ Q 100.0.0.14 A 120.0.0.0/ A 8.0.0.0/ A 120.0.0.0/ Q 96.0.0.4 A 179.0.0.0/ A 151.0.0.0/ Q 100.192.0.0 Q 16.0.0.4 A 3.192.0.0/ A 185.212.64.0/ Q 193.24.0.7 A 162.0.0.0/ Q 193.24.0.8 A 224.0.0.0/ A 120.0.0.0/ A 155.0.0.0/ Q 191.0.0.12 Q 100.0.0.3 A 224.0.0.0/ Q 8.0.0.13 A 162.0.0.0/ Q 0.0.0.0 A 151.48.8.0/ A 74.128.0.0/ A 100.0.0.0/ A 179.11.0.0/ Q 179.11.0.1 A 193.0.0.0/ A 160.0.0.0/ Q 0.0.0.0 Q 232.0.0.0 Q 100.0.0.8 A 191.0.0.0/ A 176.0.0.0/ A 100.128.0.0/ Q 96.0.0.11 Q 74.128.0.15 A 160.0.0.0/ A 100.200.0.0/ A 72.0.0.0/ A 212.0.0.0/ A 162.0.0.0/ A 160.0.0.0/ A 120.0.0.0/ A 160.0.0.0/ Q 240.0.0.6 Q 100.192.0.14 A 191.11.64.0/ A 100.200.20.0/ A 100.0.0.0/ A 160.0.0.0/ A 193.16.0.0/ A 163.214.0.0/ A 179.0.0.0/ A 232.0.0.0/ Q 224.0.0.11 A 151.48.8.0/ A 213.0.0.0/ Q 192.0.0.8 A 185.208.0.0/ Q 224.0.0.3 A 112.0.0.0/ Q 241.160.0.11 Q 118.101.128.7 A 193.24.0.0/ A 193.24.0.0/ A 72.0.0.0/ Q 100.128.0.1 Q 191.0.0.3 Q 192.0.0.3 A 213.0.0.0/ A 74.128.0.0/ Q 162.0.0.9 A 3.192.0.0/ Q 232.0.0.4 Q 213.0.0.14 Q 163.214.0.1 A 16.0.0.0/ A 193.0.0.0/ A 213.0.0.0/ Q 16.0.0.14 Q 163.214.0.15 Q 103.119.244.96 Q 100.192.0.14 A 179.0.0.0/ A 100.200.0.0/ A 96.0.0.0/ Q 163.214.0.5 Q 0.0.0.9 A 72.0.0.0/ A 16.160.0.0/ Q 128.0.0.14 A 191.0.0.0/ A 232.0.0.0/ Q 0.0.0.14 A 208.0.0.0/ A 191.0.0.0/ Q 16.0.0.1 Q 3.192.0.7 A 120.0.0.0/ A 72.0.0.0/ A 16.0.0.0/ Q 74.128.0.0 A 100.200.0.0/ Q 100.192.0.2 A 120.0.0.0/ A 64.0.0.0/ A 213.128.0.0/ A 16.0.0.0/ Q 72.0.0.1 Q 215.172.0.10 A 145.16.0.0/ A 16.0.0.0/ Q 64.0.0.11 A 162.0.0.0/ Q 160.0.0.8 Q 96.0.0.15 Q 192.0.0.4 A 155.0.0.0/ A 64.0.0.0/ A 3.128.0.0/ A 215.128.0.0/ Q 232.0.0.7 A 160.0.0.0/ A 241.0.0.0/ A 0.0.0.0/ Q 240.0.0.14 Q 240.0.0.0 A 144.0.0.0/ Q 3.192.0.0 Q 193.24.0.6 A 96.0.0.0/ A 62.170.234.0/
Sample Input
Sample Output
Sample Output
HINT
2.route
对于一次查询的一种理解方式是:无视其它所有查询操作,只看添加操作。先清空路由表,然后执行第1到a-1次添加操作。之后再统计第a到b次添加操作过程中,统计匹配改变的次数
数据范围:
设一条表项的掩码长度为L,数据保证将目的地址转为二进制串后,末尾的32-L位均为0
Source
Solution
BZOJ良心数据...
读入随便搞搞,按照掩码建Trie树,在末尾标记时间戳
对于每个询问,在Tri树上跑,把跑到的拿出来,随便搞搞统计一下答案...实际上可以用单调栈高效一点
Code
#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
using namespace std;
int m,Ip[];
#define maxn 1000100
int ch[maxn][],pos[maxn],rt=,cnt=,sz=,ti=;
void Insert(int *ip,int l,int x)
{
int now=rt;
for (int i=; i<=l; i++)
{
if (!ch[now][ip[i]])
ch[now][ip[i]]=++sz;
now=ch[now][ip[i]];
}
pos[now]=x;
}
struct Node
{
int a,b;
bool operator < (const Node & A) const
{return a<A.a;}
};
Node stack[maxn]; int top;
int Query(int *ip,int L,int R)
{
int now=rt,re=,m=-; top=;
for (int i=; i<=; i++)
{
if (!ch[now][ip[i]]) break;
now=ch[now][ip[i]];
if (pos[now] && pos[now]<=R)
stack[++top]=Node{pos[now],i+};
}
sort(stack+,stack+top+);
for (int i=; i<=top; i++)
{
Node now=stack[i];
if (m<now.b) {m=now.b; if (now.a>=L) re++;}
}
return re;
}
int main()
{
scanf("%d",&m);
for (int i=; i<=m; i++)
{
char opt[]; scanf("%s",opt);
if (opt[]=='A')
{
ti++; int ip,len=,l;
memset(Ip,,sizeof(Ip));
for (int j=; j<=; j++)
{
scanf("%d.",&ip);
for (int k=; k>=; k--)
Ip[++len]=(&(ip>>k)); }
scanf("%d/",&ip);
for (int k=; k>=; k--) Ip[++len]=(&(ip>>k));
scanf("%d",&l);
//for (int j=1; j<=len; j++) printf("%d",Ip[j]); puts("");
Insert(Ip,l,ti);
}
if (opt[]=='Q')
{
int ip,len=,l,r;
memset(Ip,,sizeof(Ip));
for (int j=; j<=; j++)
{
scanf("%d.",&ip);
for (int k=; k>=; k--)
Ip[++len]=(&(ip>>k));
}
scanf("%d",&ip);
for (int k=; k>=; k--) Ip[++len]=(&(ip>>k));
scanf("%d %d",&l,&r);
//for (int j=1; j<=len; j++) printf("%d",Ip[j]); puts("");
printf("%d\n",Query(Ip,l,r));
}
}
return ;
}
这题写了近1h30min,也是没救了...不过轻松1A了....
【BZOJ-4523】路由表 Trie树 + 乱搞的更多相关文章
- BZOJ 4523 [Cqoi2016]路由表 Trie树
Trie树的应用题目. 在线建立一棵01 Trie树,然后按照要求用询问在上面跑,用单调栈维护答案即可. #include<iostream> #include<cstdio> ...
- [bzoj1067][SCOI2007]降雨量——线段树+乱搞
题目大意 传送门 题解 我国古代有一句俗话. 骗分出奇迹,乱搞最神奇! 这句话在这道题上得到了鲜明的体现. 我的方法就是魔改版线段树,乱搞搞一下,首先借鉴了黄学长的建树方法,直接用一个节点维护年份的区 ...
- 【BZOJ4523】[Cqoi2016]路由表 Trie树模拟
[BZOJ4523][Cqoi2016]路由表 Description 路由表查找是路由器在转发IP报文时的重要环节.通常路由表中的表项由目的地址.掩码.下一跳(Next Hop)地址和其他辅助信息组 ...
- 洛谷P5211 [ZJOI2017]字符串(线段树+乱搞)
题面 传送门 题解 为什么大佬们全都是乱搞的--莫非这就是传说中的暴力能进队,乱搞能AC-- 似乎有位大佬能有纯暴力+玄学优化\(AC\)(不算上\(uoj\)的\(Hack\)数据的话--这要是放到 ...
- bzoj 4260 REBXOR —— Trie树
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=4260 用 Trie 树可以找出前缀异或的最大值和后缀异或的最大值,拼起来即可: 注意要先加入 ...
- 【Luogu】P2221高速公路(线段树乱搞)
题目链接 这题……我从一开始就想歪了qwq. 为了缅怀逝去的一小时我就把我的30分暴力思路放上来. 首先我们观察枚举的区间.假设我们要枚举的范围是1~5之间的四条路,为了方便我们把它们叫做abcd. ...
- 【NOI2013模拟】坑带的树(仙人球的同构+圆方树乱搞+计数+HASH)
[NOI2013模拟]坑带的树 题意: 求\(n\)个点,\(m\)条边的同构仙人球个数. \(n\le 1000\) 这是一道怎么看怎么不可做的题. 这种题,肯定是圆方树啦~ 好,那么首先转为广义圆 ...
- 【BZOJ】2456 mode(乱搞)
Description 给你一个n个数的数列,其中某个数出现了超过n div 2次即众数,请你找出那个数. Input 第1行一个正整数n.第2行n个正整数用空格隔开. Output 一行一个正整数表 ...
- bzoj 4900 [CTSC2017]密钥 模拟+乱搞
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=4900 #include<cstring> #include<cmath&g ...
随机推荐
- Java 集合系列06之 Vector详细介绍(源码解析)和使用示例
概要 学完ArrayList和LinkedList之后,我们接着学习Vector.学习方式还是和之前一样,先对Vector有个整体认识,然后再学习它的源码:最后再通过实例来学会使用它.第1部分 Vec ...
- [py]给函数传递数组和字典
一 , 1.1传元组 def fun(x): print x t=(1,2) fun(t) 1.2传元组 #传元组 def fun(x,y): print x,y # t=(1,2) t=(1,2,3 ...
- font和lineheight冲突。
font:14px bold arial; line-height:40px; 这样写font的话line-height不会有效,只要把font拆分写就有效,chrome ie ff下都是.
- TinyFrame升级之八:实现简易插件化开发
本章主要讲解如何为框架新增插件化开发功能. 在.net 4.0中,我们可以在Application开始之前,通过PreApplicationStartMethod方法加载所需要的任何东西.那么今天我们 ...
- Expression Blend4经验分享:自适应布局浅析
今天分享一下Blend制作自适应分辨率布局的经验,大家先看下效果图: 这是一个标准的三分天下的布局,两侧的红色区域是背景区域,是用来干吗的呢,下面简单的分析一下,大家就明白了. 1.拿到一个项目,进行 ...
- <实训|第六天>偷偷让新手的Linux无限重启附linux主机名称不是随便乱改的!
先说个事情:这几天我正在忙一个项目的设计,8月1号之前要弄出来,所以每天都要弄到很晚,可能更新就有点跟不上了,不过我如果有时间的话,我就更新,没时间的话,我会在8月1号之后统一更新出来,希望大家谅解! ...
- des解密不完整,前面几位是乱码的解决办法
在工作中遇到的Des解密问题,第三方发来的数据需要我们进行des解密,但是解密的结果前几位始终是乱码.废了半天劲,终于找到了问题所在. 下面先介绍一下des,了解des的同学可以直接看下面的解决办法. ...
- 腾讯 or 华为 =》 求职者的困惑
本文目的: 希望有老司机指点迷津 个人背景: 本人软件工程专业,硕士研究生,2017年7月毕业,个人喜欢Java开发,希望有机会从事Java分布式应用开发 故事背景一: 本人2016年4月份参加了腾讯 ...
- Adaboost 算法的原理与推导
0 引言 一直想写Adaboost来着,但迟迟未能动笔.其算法思想虽然简单“听取多人意见,最后综合决策”,但一般书上对其算法的流程描述实在是过于晦涩.昨日11月1日下午,邹博在我组织的机器学习班第8次 ...
- UltraEdit 编译输出中文乱码的解决办法
配置UE的时候,都告诉大家javac %n%e 接可以了,但是再运行的时候,会出现乱码,再加上-J-Duser.language=GBK就可以了,也就是下面的样子. javac -J-Duser. ...