Acdream 1424 Diversion 树链剖分+线段树

VLOOKUP_fixed.py 立即下载

题意:

给定n个城市,和一些道路,道路有两种,一种是石头路,还有一种是乡村路,石头路形成了一棵树,即两两城市都可达,乡村路的加入使所有的石头路都处于一个或多个环中,即任意石头路被破坏后,城市间依然可以通过乡村路连通,现在敌国可以破坏一条石头路和一条乡村路,问,有多少种破坏方案,可以使破坏后,至少有一对城市不能互相到达。

题解:

仔细想想可以发现,石头路形成了一棵树,当这棵树上某一段道路被乡村路只覆盖一次时,那么破坏掉这条乡村路,这段路上的所有石头路破坏任意一条都能满足条件,所以只需要先把石头路形成的树剖分成链,然后用线段树来依次将乡村路往上覆盖,最后只需统计被覆盖次数为1的道路即为答案

代码:

#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
const int maxn = 2e4 + 10;
const int maxe = 1e5 + 10;
int fir[maxn], nxt[maxe<<1], edge[maxe<<1], cnt_edge;
void add_edge(int u, int v)
{
    edge[cnt_edge] = v;
    nxt[cnt_edge] = fir[u];
    fir[u] = cnt_edge++;
    edge[cnt_edge] = u;
    nxt[cnt_edge] = fir[v];
    fir[v] = cnt_edge++;
}

int fa[maxn], son[maxn], sz[maxn], dep[maxn];
int id[maxn], top[maxn], num, root;
struct
{
    void init()
    {
        root = 1;
        fa[root] = num = dep[root] = 0;
    }
    void dfs(int u)
    {
        sz[u] = 1; son[u] = 0;
        for (int i = fir[u]; i != -1; i = nxt[i])
        {
            int v = edge[i];
            if (v == fa[u]) continue;
            fa[v] = u; dep[v] = dep[u] + 1;
            dfs(v);
            sz[u] += sz[v];
            if (sz[son[u]] < sz[v]) son[u] = v;
        }
    }
    void build_tree(int u, int tp)
    {
        id[u] = num++; top[u] = tp;
        if (son[u]) build_tree(son[u], top[u]);
        for (int i = fir[u]; i != -1; i = nxt[i])
        {
            int v = edge[i];
            if (son[u] == v || v == fa[u]) continue;
            build_tree(v, v);
        }
    }
    void run()
    {
        init();
        dfs(root);
        build_tree(root, root);
        num--;
    }
}div_chain;

int n, m;
struct Road
{
    int u, v;
    Road(int u = 0, int v = 0) : u(u), v(v) {}

}road[maxe];
int road_cnt;

struct segment
{
#define lson o<<1, L, M
#define rson o<<1|1, M+1, R
    int col[maxe<<2];
    void build(int o, int L, int R)
    {
        col[o] = 0;
        if (L <= R) return ;
        int M = (L + R) >> 1;
        build(lson);
        build(rson);
    }
    void PushDown(int o)
    {
        if (col[o])
        {
            col[o<<1] += col[o];
            col[o<<1|1] += col[o];
            col[o] = 0;
        }
    }
    void update(int p1, int p2, int v, int o, int L, int R)
    {
        if (p1 <= L && p2 >= R)
        {
            col[o] += v;
            return ;
        }
        PushDown(o);
        int M = (L + R) >> 1;
        if (p1 <= M) update(p1, p2, v, lson);
        if (p2 > M) update(p1, p2, v, rson);
    }
    void Find(int a, int b)
    {
        int ta = top[a], tb = top[b];
        while (ta != tb)
        {
            if (dep[ta] < dep[tb])
            {
                swap(ta, tb); swap(a, b);
            }
            update(id[ta], id[a], 1, 1, 1, num);
            a = fa[ta]; ta = top[a];
        }
        if (a == b) return;
        if (dep[a] < dep[b])
        {
            swap(a, b);
        }
        update(id[son[b]], id[a], 1, 1, 1, num);
    }
    int query(int o, int L, int R)
    {
        if (L == R)
        {
            if (col[o] == 1)
            {
                return 1;
            }
            else return 0;
        }
        PushDown(o);
        int M = (L + R) >> 1;
        return query(lson) + query(rson);
    }

}seg;
int main()
{
    //freopen("/Users/apple/Desktop/in.txt", "r", stdin);
    
    while (scanf("%d%d", &n, &m) != EOF)
    {
        memset(fir, -1, sizeof(fir));
        cnt_edge = 0, road_cnt = 0;
        for (int i = 0; i < m; i++)
        {
            int u, v, w; scanf("%d%d%d", &u, &v, &w);
            if (w == 1) add_edge(u, v);
            else road[road_cnt++] = Road(u, v);
        }
        div_chain.run();
        seg.build(1, 1, num);
        for (int i = 0; i < road_cnt; i++)
        {
            seg.Find(road[i].u, road[i].v);
        }
        printf("%d\n", seg.query(1, 1, num));
    }
    
    return 0;
}


YOLO26算法心电图十二导联目标检测+训练好的模型+368张数据集+pyqt可视化界面.zip 附训练好的 YOLO 权重与 PyQt 可视化检测界面,页面底部含可视化效果预览,毕设/课设开箱即用。 【数据集概况】 · 检测类别(中文):[导联I(I), 导联II(II), 导联III(III), 胸导联V1(V1), 胸导联V2(V2), 胸导联V3(V3), 胸导联V4(V4), 胸导联V5(V5), 胸导联V6(V6), 加压肢体导联aVF(aVF), 加压肢体导联aVL(aVL), 加压肢体导联aVR(aVR)] · 训练集:313 张 · 验证集:37 张 · 测试集:18 张 · 总计:368 张 该数据集聚焦于临床心电图信号的精准识别与定位,其核心检测目标为标准12导联心电图中的各个独立导联波形区域,涵盖肢体导联(I、II、III)与加压肢体导联(aVR、aVL、aVF),以及胸前导联(V1至V6),适用于心电图自动分析系统中对各导联位置的快速准确标注与分类。数据采集场景真实还原了医院心电图室或急诊监护环境下的标准心电图记录纸,波形清晰、基线稳定,具有高度临床参考价值。... 【训练曲线与评估图】 【模型训练配置】 参数 | 值 模型 | yolo26n 训练轮数 | 100 epochs 输入尺寸 | 640x640 批次大小 | 24 优化器 | auto 初始学习率 | 0.01 训练设备 【关键指标汇总】 训练了 57 个 epoch,最终轮指标: 指标 | 数值 mAP50 | **0.9708** mAP50-95 | 0.6344 Precision | 0.8990 Recall | 0.9191 train/box_loss | 1.2231 train/cls_loss | 0.9703 val/box_loss | 1.2779 val/cls_loss | 0.... 使用场景:毕业设计、课程设计、深度学习入门、工业场景落地验证。 立即下载

相关推荐

企业级AI助手平台 开箱即用的全栈AI平台,支持多智能体协同、Supervisor模式编排、多种决策模式、RAG技术和流程编排能力 支持多厂商大模型统一接入与管理,安全可控的企业知识库与高精度检索优化

企业级AI应用开发框架,支持多厂商大模型统一接入与管理,安全可控的企业知识库与高精度检索优化能力,提供可视化流程编排、自主决策智能体与多智能体协同调度,兼容主流 Agent Skill 协议,帮助企业与开发者零门槛快速构建安全、高效、可落地的AI智能体应用与行业解决方案。

ACdream 1424 Diversion(树链剖分+线段树)

传送门:ACdream 1424 Diversion 题意:给一个边双联通图,n个点m条边,其中n-1条边构成树,点1为树根(值为1,以下称为黑边),其他m-n+1条边为普通边(值为0,以下称为白边)。。要求最多去掉一条黑边和一条白边使图不联通,求方案数。 思路:在树上把连接白边的两个节点进行路径染色,重复染色的边说明该边不止与一条白边相连,去掉该边和与之相连的其中一条白边图也依旧

obsolescence的博客 379

基于动态窗口法DWA的机器人路径规划研究(Matlab代码实现)

内容概要:本文系统研究了基于动态窗口法(DWA)的机器人局部路径规划算法,深入剖析其在动态环境中实现自主避障与实时轨迹优化的核心机制。文章详细阐述了DWA算法的速度空间采样策略、轨迹预测模型、动力学约束处理及多目标代价函数的设计原理,并通过构建完整的Matlab仿真框架验证算法有效性。结合典型场景的仿真实验,展示了机器人在复杂障碍物环境下如何实时生成安全、平滑且符合运动学约束的最优路径,充分体现了DWA在移动机器人导航中的实用性与鲁棒性。; 适合人群:具备机器人运动规划基础知识和Matlab编程能力,从事智能移动机器人、自动驾驶或服务机器人研发的研究生、科研人员及工程技术人员。; 使用场景及目标:①深入理解DWA算法的理论基础与实现细节;②掌握机器人局部路径规划的仿真实现方法;③为实际机器人系统的导航模块开发提供可复用的算法原型与代码参考;④作为进一步研究高级导航算法(如TEB、MPC)的技术基础。; 阅读建议:建议结合提供的Matlab代码逐模块分析与调试,重点关注速度采样、轨迹积分、障碍物距离计算及代价评估等关键环节,通过调整参数在不同地图环境中进行对比实验,以深刻把握算法性能与参数之间的关系,进而提升对实时路径规划系统设计的理解与应用能力。

hdu 2771(uva 12171) Sculpture bfs+离散化

题意: 给出一些边平行于坐标轴的长方体,这些长方体可能相交,也可能相互嵌套,这些长方体形成了一个雕塑,求这个雕塑的总体积和表面积。 题解: 最容易想到直接进行bfs或者dfs统计,但此题的麻烦之处在于求整个雕塑的外表面积和雕塑内部可能出现四个长方体所搭成的空心,空心不能计算到表面积中,但是计算总体积却要计入,于是直接bfs或者dfs不好处理,于是,可以想到直接统计整个雕塑外围的所有小方块,即

myHelperIsMe的专栏 2313

vmware虚拟机网络连接问题

主机:ubuntu14.04 Vitual Network Editor

入门虽易,精通不易,且学且珍惜! 1354

前端零代码丨UIOTOS + NodeRed:无代码搭建工控上位机的绝配组合!

用户类型价值硬件产品商软硬一体方案,无代码GUI上位机成新卖点软件服务商售前原型演示利器,交付成本降低至1/3平台开发商融合无代码技术,同质化竞争中脱颖而出🚀 总结UIOTOS的前端零代码设计(页面嵌套、属性继承、节点连线)与NodeRed的后端流程自动化,堪称工控与IoT开发的黄金组合。无论是串口通信、SCADA监控还是业务管理,均能实现“无代码交付”,真正让前端不求人,硬件交互触手可及!探索更多案例:UIOTOS官网在线体验。

2502_91192798的博客 757

2015-2016 ACM ICPC Baltic Selection Contest [解题报告]

新地址链接A题:AHB 水题,直接上代码:#include <cstdio> #include <cstring> #include <iostream> #include <algorithm> using namespace std; typedef long long Long; const int maxn = 1e5 + 10; const int maxm = 256;int main(

myHelperIsMe的专栏 1838

【保姆级教程/代码】GNSS反演大气可降水量(Precipitable Water Vapor, PWV)

GPS精密单点定位(PPP)是一种采用精密卫星星历和卫星钟差进行非差单点定位的方法,在观测过程中采用双频载波相位观测法以确保高精度定位精度。本文利用PPP技术来求解天顶对流层延迟(zenith tropospheric delay,ZTD)。ZTD由湿延迟(ZWD)和干延迟(ZHD)组成,其中占比90%的ZHD与地面测站高程、大气压和测站纬度等参数有良好的相关性,可以通过Saastamoinen模型精确求出;

weixin_43910227的博客 2923

codeforces GYM 100792H

题意:给出n个1个字节的数(1<=n<=100000),用16进制的形式给出,每个数的范围00-FF, 找出一个子序列s, 使得0^s[0]+1^s[1]+2^s[2]+…k^s[k]的和最大,输出这个最大值。第一步:首先很容易想到一个简单的dp方程 dp[i][j] = max(dp[i-1][j], dp[i-1][j-1]+(arr[i]^j)) dp[i][j]:代表前i个数一共选了j

myHelperIsMe的专栏 1386

Oracle19c集群节点故障恢复:从主机重装到重新加入集群的完整指南

本文详细介绍了Oracle19c集群节点故障恢复的全过程,从主机重装到重新加入集群的完整指南。重点讲解了保持集群配置一致性、彻底清理故障节点残留信息和分阶段验证等关键恢复原则,帮助DBA高效解决节点故障问题,确保集群稳定运行。

weixin_42524276的博客 256

2、TCGA数据处理(差异分析前处理)

注意:1、是R语言中用于读取文本文件并创建数据框的函数。它可以从文本文件中读取数据并将其存储为数据框的形式,每一列代表一个变量,每一行代表一个观察值。2、括号要成对,不能少了;3、file = 'TCGA-LIHC.htseq_counts.tsv'引号可以是单或双引号,建议单;4、逗号主要中英文,都是用英文模式才没错;5、.tsv文件类型必须要有,不能删除,否则读不进来;6、上面代码将TCGA-LIHC.htseq_counts.tsv文件读入并赋值给count1。

PLW_12的博客 2666

uva 11853 Paintball dfs找连通块

题意: 给出一个矩形湖, 湖里面有一些圆形地小岛, 问能否从左岸乘船到达右岸,如果能,找出最上面的起点和终点。 题解: 如果能从左岸到达右岸,那么一定不能存在一个连通的岛屿从上岸连到下岸, 所以直接从上到下做dfs,判断是否存在从上岸到下岸地连通块,完成判断。那么接下来就是如何找出最上方地点了,画画图便发现,对于起点,如果存在跨越上岸和左岸地连通岛屿,那么起点一定只能在左岸地交点下方,所以,

myHelperIsMe的专栏 1357

告别手动群发!用IDA Pro和CE搞定企业微信4.1.38.6011的HOOK开发(附完整代码)

本文详细介绍了如何利用IDA Pro和Cheat Engine进行企业微信4.1.38.6011的HOOK开发,实现自动化群发功能。从逆向工程环境配置、关键函数定位到HOOK框架设计,提供完整代码示例,帮助企业提升运营效率。

weixin_42533120的博客 478

uvalive 6393(uva 1572) Self-Assembly 拓扑排序

题意: 给出一些正方形,这些正方形的每一条边都有一个标号,这些标号有两种形式:1.一个大写字母+一个加减号(如:A+, B-, A-......), 2.两个0(如:00);这些正方形可以随意翻转和旋转,当两个正方形通过旋转或翻转,使得他们的公共边为相同大写字母并且符号相反时,他们就可以彼此结合拼在一起,现在给出n中正方形,每种正方形有无限多种,问这些正方形能否拼成一个无限大的结构。 题解:

myHelperIsMe的专栏 1142

【2026年米哈游春招 - 3月14日 -第一题- 行列相等】(题目+思路+Java&C++&Python解析+在线测试)

摘要 本文解决了一个矩阵行列和匹配问题:统计矩阵中行和等于列和的所有行列对数量。算法首先计算每行和每列的元素和,然后利用哈希表统计各行列和的出现次数。通过遍历列和并查询对应的行和出现次数,高效计算出匹配对数。该方法时间复杂度为O(nm),空间复杂度为O(n+m),适用于大规模矩阵数据。代码实现了Python、Java和C++版本,通过哈希表优化避免了暴力枚举,显著提高了计算效率。

m0_73659489的博客 83

基于STM32设计的4G远程视频侦查小车(图传+远程控制+EMQX+MQTT)(204)

当前设计了一款基于STM32F103ZET6主控芯片和废旧Android手机改造的4G侦查小车。该设计充分利用已有的智能手机硬件资源,实现摄像头画面的实时采集与上传,以及远程控制功能。这样的设计不仅降低了成本,而且充分利用了废旧手机中高性能的硬件资源,如摄像头、4G通信模块和电池等,实现了资源的有效循环利用。

2527

codeforces 593D 树链剖分

题目链接 给出一棵树,每棵树有value值,两种操作:1 u v x, 用x依次除以u到v路径上的数,然后 输出x,2 p x, 把第p条边的权值改为x. 直接树链剖分,然后用线段树维护乘积即可。注意 乘积可能爆long long , 可以用inf/a如果#include <cstdio> #include <cstring> #include <algorithm> #define lson

myHelperIsMe的专栏 1038

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

hdu 1044 Collect More Jewels 解题报告 + 状态压缩分析

fd

myHelperIsMe的专栏 973

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

codeforces 593B Anton and Lines

题意:给出n条直线(1<=n<=1e5),问你在(x1,x2)这个区间是否存在交点当n = 1明显没有交点,NO当n = 2: 如下图其中a1为直线L1与x1的交点,b1为直线L1与x2的交点,可以发现如果两条直线要 在(x1,x2)之间相交,那么必须满足a1当n = 3:新博客地址我们发现如果L3与L1在(x1,x2)有交点,那么L3与L2在(x1,x2)必有交点,所以 所以,这种情况,我们只

myHelperIsMe的专栏 939

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

hdu 3810 Magina 队列模拟0-1背包

题意: 出一些独立的陆地,每片陆地上有很多怪物,杀掉每个怪物都需要一定的时间,并能获得一定的金钱,给出指定的金钱m, 求最少要多少时间可以得到m金钱,仅能选择一个陆地进行杀怪。 题解: 这题,如果不管数据范围,很容易想到对每片陆地求一次0-1背包(dp(i, j) = min(dp(i-1, j), dp[i-1, j-money] + time), i 为金钱),然后在所有陆地中找出最少的

myHelperIsMe的专栏 937

uva 12730 Skyrk's Bar 递推

题意: 给出n, 和 k(

myHelperIsMe的专栏 927

hdu 1075 What Are You Talking About 字典树 或 stl map

伐我爱你

myHelperIsMe的专栏 885

hdu Rank of Tetris 并查集 + 拓扑排序

题意: 给出一些大小关系,问根据这些关系

myHelperIsMe的专栏 806

hdu 3231 Box Relations 拓扑排序 详细解题报告

k l

myHelperIsMe的专栏 805

hdu 3648 Median Filter 树状数组+二分查找+优化

题意:gei yi

myHelperIsMe的专栏 738
上一篇: hdu 3810 Magina 队列模拟0-1背包
下一篇: hdu 2771(uva 12171) Sculpture bfs+离散化
吃掉吃掉
博客等级 码龄12年 7粉丝 30原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值