UVALive 7043 International Collegiate Routing Contest 字典树,递归

盘点那些好用的SAP FIORI App(二) -上传凭证Upload Journal Entry SAP FICO运维问题及解决方案分享 阅读详情

题目链接:这里
题意:给出n个IPv4的子网地址,格式是a-b-c-d/l,a b c d l都是十进制数,然后l是网络地址的长度,最长到32,要求输出最低限度的所有的未能划分出的子网地址,这些子网和给出的n个子网没有交集,这些地址和给出的n个地址能组成完整的网络地址。
解法:把所有的ip地址插进字典树,并且标记单词节点,之后然后暴力递归找所有未被包含在已有子网里的子网地址。其实就是trie树上暴力。。。。不过题意看pdf看了超久,还是在网上的解题报告弄清题意的,读题需要训练了。

//LA 7043

#include <bits/stdc++.h>
using namespace std;
const int maxn = 1000010;

struct Trie{
    struct node{
        int a, b, c, d, l;
        node(){}
        node(int a, int b, int c, int d, int l) : a(a), b(b), c(c), d(d), l(l) {}
    };
    int n, cnt, ans[40];
    char s[40];
    vector <node> v;
    int root, sz, ch[maxn][2], flag[maxn];
    void get(int x){
        for(int i = 7; i >= 0; i--){
            if((x>>i)&1) s[cnt++] = '1';
            else s[cnt++] = '0';
        }
    }
    void init(){
        root = 0;
        sz = 1;
        memset(ch[0], 0, sizeof(ch[0]));
        v.clear();
    }
    void insert(char *s, int len){
        int u = root;
        for(int i = 0; i < len; i++){
            int now = s[i] - '0';
            if(!ch[u][now]){
                memset(ch[sz], 0, sizeof(ch[sz]));
                flag[sz] = 0;
                ch[u][now] = sz++;
            }
            u = ch[u][now];
        }
        flag[u] = 1;
    }
    void query(int u, int cur){
        if(flag[u]) return;
        for(int j = 1; j >= 0; j--){
            ans[cur] = j;
            if(ch[u][j]){
                query(ch[u][j], cur+1);
            }
            else{
                int a, b, c, d;
                int tt, l, r;
                tt = 0, l = 0, r = 7;
                for(int i = l; i <= r; i++) tt = tt * 2 + ans[i];
                a = tt;
                tt = 0, l = 8, r = 15;
                for(int i = l; i <= r; i++) tt = tt * 2 + ans[i];
                b = tt;
                tt = 0, l = 16, r = 23;
                for(int i = l; i <= r; i++) tt = tt * 2 + ans[i];
                c = tt;
                tt = 0, l = 24, r = 31;
                for(int i = l; i <= r; i++) tt = tt * 2 + ans[i];
                d = tt;
                v.push_back(node(a, b, c, d, cur));
            }
        }
    }
    void run(){
        int T, ks = 0;
        scanf("%d", &T);
        while(T--){
            init();
            scanf("%d", &n);
            printf("Case #%d:\n", ++ks);
            if(n == 0){
                printf("1\n");
                printf("0.0.0.0/0\n");
            }
            else{
                for(int i = 0; i < n; i++){
                    int a, b, c, d, l;
                    scanf("%d.%d.%d.%d/%d", &a, &b, &c, &d, &l);
                    cnt = 0;
                    get(a), get(b), get(c), get(d);
                    s[cnt] = 0;
                    insert(s, l);
                }
                query(0, 0);
                cout << v.size() << endl;
                for(int i = 0; i < (int)v.size(); i++){
                    printf("%d.%d.%d.%d/%d\n", v[i].a, v[i].b, v[i].c, v[i].d, v[i].l + 1);
                }
            }
        }
    }
}ac;
int main()
{
    ac.run();
    return 0;
}
Jetson Orin NX系统克隆术:如何快速备份与还原你的开发环境(附完整命令行) 本文详细介绍了Jetson Orin NX系统克隆的完整流程,这是一种超越简单备份的完整镜像方案。通过命令行操作,可实现开发环境(包括引导程序、内核、根文件系统及所有配置)的快速备份与还原,确保批量部署时环境的完全一致性与高效性,尤其适合机器人、边缘AI等项目的团队协作。 阅读详情

相关推荐

计算机控制液压同步顶升系统,PLC四点多点同步顶升系统,同步液压顶升系统

PLC同步顶升系统系统可分为5个部分:液压泵站、PLC计算机控制系统、液压终端、位移压力检测与人机界面操作系统,位移同步精度1mm,同步控制点数:4,8,12,16,20,40,80,99;产品特点:高速置零、低速顶升,升降速度可以任意控制;液压千斤顶内置式(或外置)位移、压力传感器、均载阀,保证了顶升系统在恶劣工作环境下的高可靠性;均载阀的过载保护功能,避免了多缸顶升时常见的胀缸事故;先进的进油...

weixin_30093045的博客 1434

UVALive 7043 International Collegiate Routing Contest(字典树)

题意: 输入IPv4地址空间中的一些子网号,构成一个网络集合。 输出个数最小的一个网络集合,要求其与输入集合没有交集,且相对IPv4地址空间全集,是输入集合的补集。 输出集合包含的子网号,格式遵循网络规范。 解析: 这题可以用Trie树来搞。 每个IP地址由32位二进制组成。整个地址空间可以表现为一棵二叉树。 以下4个子网的覆盖情况: 0.0.0.0/1 (

小G的ACM之路 1538

如何构建高质量的 QA 问答知识库

NLP 技术落地最普遍的场景就是智能客服,如阿里的”小蜜“,京东的“JIMI”等等。NLP 技术也广泛应用于搜索系统。无论是“智能客服”,还是“搜索系统”,构建的前提是拥有“高质量的QA知识库”。今天聊聊“如何构建高质量QA知识库。”。 历史对话数据分布分析 基于公司现有系统积累的大规模对话文本数据,需要对文本数据进行归类处理,分析每个部分数据的占比,挖掘出有价值的文本通过 NLP 相关技术进行商业价值转化。下文以医疗领域来举例说明,通过输入对象,可以将文本分为客服输入和用户输入两部分。挖掘相关问题,主要从

Jiassheng的博客 2153

UVALive 7043 International Collegiate Routing Contest 字典树

题意:给你一些子网 让你计算出最少的子网数 使得两者的并集为所有的ip地址 并且二者没有交集 思路:貌似只要有关ip地址的都要上字典树... 对于每一个输入的网段 我们将其转化为二进制形式并保存在Trie树中 如果存储到子网掩码的最后一位 则将其接下来链接的0和1用一个特殊的标记标记上 代表从这往后地址都属于我这一网段的子网地址 然后查询那些没有被“堵住”的地址 如何查询呢 我用的是动态分配的写

s_h_r 975

CTF---Web---文件包含---01

文章目录前言一、题目描述二、解题步骤1.查看源代码2.文件包含(/etc/passwd)3.解码总结 前言 题目分类: CTF—Web—文件包含 一、题目描述 题目:提示寻找passwd文件 二、解题步骤 1.查看源代码 提示所有图片存储路径是download.php?name=img, 此时name参数的存在就提示此题可能为“文件包含”。 2.文件包含(/etc/passwd) 两种查看方式: 2.1、访问view-source:http://192.168.87.180/download.php

qq_22160557的博客 1391

LSTM 怎么进行二维数据的输入呢

尽管LSTM并不天然地适用于处理图像、视频等二维数据,但通过时间序列化、卷积特征提取和双向LSTM等方法,我们可以将二维数据转化为适合LSTM输入的形式,从而利用LSTM的强大记忆能力和长期依赖学习能力对二维数据进行建模。未来的研究方向可以考虑将LSTM与其他模型结合,例如将LSTM与卷积神经网络(Convolutional Neural Network, CNN)结合,利用CNN提取图像的空间特征,然后利用LSTM学习时间序列的长期依赖;

xiamu_CDA的博客 1038

2014 西安站 I International Collegiate Routing Contest(trie)

trie

LJ__ 460

信捷CODESYS平台伺服电机转矩控制模式应用与切换

信捷CODESYS二次开发软件:XS Studio 在运动控制中的转矩控制案例

weixin_64614866的博客 1万+

2014西安现场赛I题 International Collegiate Routing Contest(字典树)

题意: 全域是CDIR的ipv4空间。 给若干个ip地址块,然后求他们的补。 思路: 容易想到使用二叉树来解决这个问题,相当一个补齐叶子的问题。缺掉的叶节点就是所求。 所以很自然的可以使用trie。最多30000个地址,每个最多32位,所以最多30000×32个节点。 注意:要标记地址的结束节点,在访问的时候遇到标记的节点必须返回。因为这种节点下面的子树都已经被覆盖了。 这道题,思路挺

slowlight93的专栏 1072

【人工智能】AI驱动值班巡检Agent(Hermes)

传统运维值班巡检场景中,存在四大核心痛点:本项目基于 Agent+Skills+浏览器自动化 架构,构建了具备自我进化能力的AI值班员,核心逻辑流如下:

奶爸的编程之路,也就一周冷个三天 178

PX4实战(十):PX4导航模块(Navigator)详解

本文将对 PX4 固件 v1.14.3 版本中的 Navigator(导航)模块进行详尽的技术剖析。作为飞行控制栈中的高层决策核心,Navigator 模块承担着将抽象的任务指令转化为具象的底层控制设定点的关键职责。本文基于对 src/modules/navigator 目录下源代码的深究研究与架构反推,详细阐述了该模块的文件组织结构、基于状态机的控制逻辑、uORB 异步通讯机制、核心任务模式(Mission)与返航模式(RTL)的实现细节,以及地理围栏(Geofence)与任务可行性检查(Feasibil

PX4-SLAM-PNC 669

Problem I. International Collegiate Routing ContestGym - 100548I

题目意思是,说给予n个32位IP地址,每个地址的后面有一个K,每个K代表与当前所给的IP地址的前K位相同的话,就为同一IP地址,然后问你,最少再补充多少的IP地址使得能构成所有的IP地址。  思路:字典树的题目,对于每个32位的串,输入字典树中,如果当前K小于32那么就只导入到第K位,然后在当前节点做标记,建完树后,跑一遍DFS就可以了。 #include #include #includ

落风听雨 381

SpringBoot实战教程-springboot概论

Spring Boot 是一个快速开发框架,能够快速的整合第三方框架,简化XML配置,全部采用注解形式,以及自动配置。内置web容器,帮助开发者能够实现快速开发,简化了应用系统的初始搭建以及开发过程。

鸟哥哥的专栏 4155

Codeforces GYM 100548 I - International Collegiate Routing Contest 2014 ACM Xian Regional Contest

比赛的时候愣是没看懂这一题是啥意思,最后队友写完了觉得有问题也木有submit== 前面说了一大串反转路由表,in short之后就是说取个当前子网集合的补集,全集是整个IPV4地址空间。我当时一直纠结main routing table as small as possible是为何,现在觉得是防止两个子网可以用一个子网代替的case吧,比如11100000.0.0.0/4+11110000.

TimeForMiracles 1353

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

uvalive 7043(trie)

题意:给出n个IPv4的子网地址,格式是a-b-c-d/l,a b c d l都是十进制数,然后l是网络地址的长度,最长到32,要求输出最低限度的所有的未能划分出的子网地址,这些子网和给出的n个子网没有交集,这些地址和给出的n个地址能组成完整的网络地址。 题解:把给出的所有子网地址建字典树,然后暴力递归找所有未被包含在已有子网里的子网地址。#include <cstdio> #include <c

俯瞰风景 825

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

UVALive 7043 字典树+DFS

题意分配子网,给一个子网地址,求出除了这个子网地址以外的所有子网地址。题解裸的字典树。只不过在子网地址记录上有一些技巧,因为子网地址恰好可以用32位整数表示,所以可以用一个unsigned int 进行状态压缩,这样就不用去搞字符串进行记录了。ORZ。。 至于寻找子网地址,在字典树上进行DFS,如果某个节点的子节点都不存在(比如说字典树为空的情况),那么就记录这个节点的状态。如果某个节点的某个子节

zhenlingcn的博客 340

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

CF GYM 100548 International Collegiate Routing Contest(2014ACM西安现场赛Problem I)不懂提

参考:http://blog.youkuaiyun.com/wujysh/article/details/43085233 ProblemI. International Collegiate Routing ContestDescriptionYou may know thatBluegao University (formly Bluefly University) is famous ofnetwork

now_ing的博客 377

Gym - 100548I International Collegiate Routing Contest (01字典树)

  题意:给你多个子网掩码,要你求一个最小的子网掩码补集。   解题思路:IPV4一共有 2^32个地址,实际上对应的就是一个完全字典树。现在给定的子网掩码,实际上就是给定了一个字典树,然后要你求这个字典树的补树,使得是一个完全字典树。实际上就是求这个字典树的所有补树形成的森林。 那么我们只要深搜即可。然后记录下答案,然后还原下答案即可。   #include &lt;bits/...

LP_Cong 612

西安现场赛 Problem I. International Collegiate Routing Contest

题目大意: 给你一些ip地址,ip地址的表示方式点分十进制加子网掩码,让你求出与给出的网络号没有重复网段并且所有网络号合并可以组成整个网络同时保证你列举 出来的网络数量最少,将网络地址输出。 这道题目模型是一棵树,问题可以抽象成询问需要加多少个节点使得树的每一个父亲都有两个儿子。 树的表示方法深度表示的ip中的第几位,一个节点遇到0到左儿子遇到1到右儿子,这样每个ip地址都可以用树上的一

ying_5的专栏 788

UVALive - 7043-International Collegiate Routing Contest

You may know that Bluegao University (formly Bluey University) is famous of networking technology. One day, their headmaster Yuege received a special router, along with a task about routing table. In

algzjh的博客 638

CF GYM 100548 International Collegiate Routing Contest(2014ACM西安现场赛Problem I)

解题思路: 每个IP地址由32位二进制组成。整个地址空间可以表现为一棵二叉树(简化的Trie树),如下图所示: 图中表示的是以下4个子网的覆盖情况: 0.0.0.0/1 (二进制前1位是0) 32.0.0.0/3(二进制前3位是001) 128.0.0.0/2 (二进制前2位是10) 224.0.0.0/3 (二进制前3位是111) 图中的红色节点代表网络覆盖的终结点,这一网络号覆盖红色节点下的完整一支;黄色节点也是包含在这个网络中的, 题目要求的就是树上没有被输入集合覆盖的分支。不能与

wujy的专栏 3289

2015 ACM Amman Collegiate Programming Contest训练总结【12/12】

题目连接:戳我戳我 训练结果:Rank 43 Ac题数:12 总罚时:1363 A.水题.结构体排序。 B.O(n^2)枚举一下x和y,然后通过n-x-y来得到z,判定是否胜利的时候,我们维护一个前缀和就可以O(1)查询了。过程统计一下可行方案数即可。 C.贪心水题,我们从左往右看,如果有一个位子此时没有被原先的灯照亮,那么我们在这个位子的右边放置一个灯即可。

mengxiang000000 586

2014 icpc 西安现场赛 I - International Collegiate Routing Contest

-0-马上上计网了,感觉没什么空再看笛卡尔树了2333来水篇博客 还一个多礼拜就要去西安当分母了。第一次当分母内心还有点小紧张2333 然后我们来看看这个强行银牌题。。 队友还是强啊,五分钟把铜牌题公式甩我脸上了然鹅QWQ 这个银牌题其实也不是很难(如果看得懂题的话) 首先把所有ip换成二进制表示,题目表示如果有效前缀相同那么他们在一个子网内。 那么怎么才算有效前缀呢。看/后面那个数字,

OneDay_pyf的博客 1014

第二届CCPC女生赛 简易题解

前言:2015/5/13用虚拟OJ的方式3人一台电脑打了CCPC女生赛,一共做出9题(共10题),因为自己太坑D题错了9发,罚时爆炸,在现场就只能排第2,上交小姐姐太强啦,很稳。接下来就把做出来的题,写个简易题解,题目在HDU上可以找到,题号对应为6023-6032。A:模拟水题,不说了。B:题意:有n个节点,我们可以选择在每个节点建或不建商店。 对于第i个点,其坐标是a[i].x,建设商店的成本为

I good vegetable a! 1260

CF 387C 贪心

题目链接:这里 题意:就是给处一个长度不超过10^5的十进制正整数, 是按照题目所给的方法从一个数组中拼出来的,为初始的那个数组最多有多少个元素。 解法:从末尾向开头贪心加更大字符串的字符串即可。//CF 387C#include <bits/stdc++.h> using namespace std; const int maxn = 100010; char s[maxn], tmp[max

I good vegetable a! 1056

哈尔滨理工大学第七届程序设计竞赛决赛 题解

比赛链接:https://www.nowcoder.com/acm/contest/30#question A: 在acimo星球, tabris 是一名勇敢的屠龙勇士,在上绿岛屠龙前决定挑选N种装备武装自己,现在每种装备有两个,**但每种装备tabris必须选择拿一个**,**不能多也不能少**。 每件装备有自己的属性值,能给tabris属性加成。 对于不同种类的装备之间有叠加效

I good vegetable a! 915
上一篇: UVALive 7040 Color 容斥,组合数递推,线形逆元,基础数论
下一篇: HDU 4781 Assignment For Princess 图论,构造,思维
just_sort
博客等级 码龄11年 2357粉丝 1667原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值