POJ-1741-treeDP+分治

TPM2-Startup-学习手册.docx 内容概要:本文深入解析了TPM 2.0中首个必要命令TPM2_Startup的工作机制,涵盖其在芯片初始化中的核心作用、启动类型决策逻辑、内部九个初始化阶段的详细流程,以及DRTM/H-CRTM安全机制的实现原理。文档结合源码(ibmswtpm2-tpm2)与实测报文,系统阐述了Startup如何通过状态校验、locality控制、PCR管理、密码学初始化、DA防护、ACT定时器、NV索引处理等环节,确保TPM在安全可信的状态下启动,并重点剖析了commitNonce重置、DA计时器跨重启续接、ACT减半防攻击等关键安全设计。; 适合人群:对TPM安全芯片感兴趣的零基础或初级开发者,以及从事可信计算、固件安全、系统启动安全相关工作的研发人员。; 使用场景及目标:①理解TPM为何必须以Startup作为第一条命令及其安全意义;②掌握SU_CLEAR、SU_STATE、SU_RESUME、SU_RESTART、SU_RESET等启动类型的决策逻辑与状态迁移;③深入学习DRTM与H-CRTM机制,理解动态信任根的建立过程;④分析DA防护、ACT定时器、有序NV索引等子系统的初始化行为与安全考量;⑤通过实验复现各类启动场景,提升对TPM底层机制的实战理解。; 阅读建议:建议结合文档提供的源码注释、实测报文和动手实验逐步验证,重点关注Startup与Shutdown的配对关系、状态持久化机制(NV)以及各类标志位(如g_DrtmPreStartup、g_StartupLocality3)的作用,注意区分规范定义与具体实现间的差异,并利用附录常量与术语表辅助理解。 立即下载

。。。


const int inf = 0x3f3f3f3f;
const int N = 10009;

int dis[N], vis[N];
int size[N], hash[N];
int sum[N];//子孙数 ;
int big[N]; //儿子的最大子孙数
int n, k, ans, cnt;
vector<pair<int, int> >v[N];

void num_child(int s, int pre) //求子孙数
{
    sum[s] = 1;
    big[s] = 0;
    int i, ss;
    for(i=0; i<v[s].size(); i++)
    {
        ss = v[s][i].first;
        if(ss==pre || vis[ss]) continue;
        num_child(ss, s);
        sum[s] += sum[ss];
        big[s] = max(big[s], sum[ss]);
    }

    size[cnt] = big[s];
    hash[cnt++] = s;
}

int getroot(int s)//找到以s为根节点的子树的重心
{
    cnt = 0;
    num_child(s, 0);
    int aa = inf, ans, tmp = sum[s];

    for(int i=0; i<cnt; i++)
    {
        size[i] = max(size[i], tmp-size[i]);
        if(size[i]<aa)
        {
            aa = size[i];
            ans = hash[i];
        }
    }
    return ans;
}

void distance(int s, int pre, int len) //子树中的每个点到root的距离
{
    dis[cnt++] = len;
    int i, ss, dd;
    for(i=0; i<v[s].size(); i++)
    {
        ss = v[s][i].first;
        dd = v[s][i].second;
        if(ss==pre || vis[ss] || len+dd>k) continue;
        distance(ss, s, len+dd);
    }
}

void count1()
{
    sort(dis, dis+cnt);
    int l = 0, r = cnt-1;
    while(l<r)
    {
        if(dis[l]+dis[r]<=k) ans+=r-l, l++;
        else r--;
    }
}

void count2(int s)
{
    int ss, dd, i;
    for(i=0; i<v[s].size(); i++)
    {
        ss = v[s][i].first;
        dd = v[s][i].second;
        if(vis[ss]) continue;

        cnt = 0;
        distance(ss, s, dd);
        sort(dis, dis+cnt);
        int l = 0, r = cnt-1;
        while(l<r)
        {
            if(dis[l]+dis[r]<=k) ans-=r-l, l++;
            else r--;
        }
    }
}

void solve(int s, int pre)
{
    int root = getroot(s);
    vis[root] = 1;
    cnt = 0;
    distance(root, 0, 0);

    count1(); //如果在一个孩子里就会加重复了
    //如样例中(3,5)以1为根的之后加一次,以3为根的时候又加一次。
    count2(root); //减去在一个孩子里的

    for(int i=0; i<v[root].size(); i++)
    {
        int ss = v[root][i].first;
        if(ss!=pre && vis[ss]==0) solve(ss, root);
    }
}

int main()
{
    int i, a, b, c;
    while(scanf("%d%d", &n, &k), n)
    {
        for(i=1; i<=n; i++) v[i].clear();
        memset(vis, 0, sizeof(vis));
        ans = 0;
        for(i=1; i<n; i++)
        {
            scanf("%d%d%d", &a, &b, &c);
            v[a].push_back(make_pair(b, c));
            v[b].push_back(make_pair(a, c));
        }

        solve(1, 0);
        printf("%d\n", ans);
    }
	return 0;
}



国央企创新负责人如何快速识别关键技术成果并推动落地?.docx 科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。 立即下载

相关推荐

三相电压型PWM整流器PI双闭环控制Matlab仿真

内容概要:本文档系统介绍了三相电压型PWM整流器的PI双闭环控制技术及其在Matlab/Simulink环境下的仿真建模方法,重点阐述了电流内环与电压外环的协同控制机制,旨在实现高功率因数、低电流谐波畸变及稳定的直流母线电压输出。内容涵盖多种典型电力电子变换器的建模与控制策略,包括三相维也纳(Vienna)整流器、双有源桥(DAB)变换器、LLC谐振变换器等,并深入探讨SVPWM调制、滞环电流控制、中点电位平衡、软开关技术、畸变抑制等关键技术。文档提供丰富的仿真模型、Mathcad计算书及参考文献,支持从基础控制结构到高级优化算法(如基于KKT条件的协同最小应力控制)的多层次研究与复现。; 适合人群:电气工程、自动化、电力电子与电力传动等相关专业的高校本科生、研究生,以及从事新能源发电、电动汽车、轨道交通等领域电能变换系统研发的科研人员与工程技术人员;要求具备Matlab/Simulink仿真基础及电力电子、自动控制理论的相关知识背景。; 使用场景及目标:①作为高校课程设计与实验教学的辅助材料,帮助学生掌握PWM整流器双闭环控制系统的设计流程与仿真方法;②支撑科研项目中对高性能整流器控制策略的验证、优化与EI级论文复现;③为工业界在新能源并网、车载充电机、直流配电系统等应用场景中的控制器开发提供仿真依据与参数设计工具;④结合Mathcad计算书实现不同功率等级与电压等级系统的自主建模与参数匹配。; 阅读建议:建议读者按照资源目录顺序循序渐进地学习,先掌握PI双闭环控制的基本架构与仿真调试方法,再逐步拓展至中点平衡控制、电网不平衡工况下的功率调节、软开关优化等高级主题;重点关注“顶级EI复现”案例以提升学术研究深度;推荐结合提供的仿真模型、计算书与参考文献进行对照分析与代码调试,强化理论与实践的融合能力。

POJ 1741 树的分治(点分治)入门

看一下09年漆子超的论文,是论文的第一题,思路在其中讲得很清楚了。 复杂度分析:每次先找当前树的重心,再从重心为根遍历这颗树, 从表面上看来这个复杂度很大,但事实并非如此,通过找多次重心,使整棵树的深度不超过log(n), 所以对于每个点的访问次数不超过log(n), 总体复杂度nlog(n), 如果在dfs里面添加一些操作,那么就要把复杂度乘上去,这题cal的复杂度是log(n), 总体复杂度

Nicolas 1608

FreeSWITCH实战:5分钟搞定阿里云SDM(MRCP-SERVER)语音机器人搭建(含Docker部署技巧)

本文详细介绍了如何利用FreeSWITCH与阿里云SDM(MRCP-SERVER)快速搭建高可用语音机器人,包括Docker部署技巧、系统调优及高可用架构设计。通过实战案例和优化建议,帮助开发者5分钟内完成部署,提升语音交互系统的性能和稳定性。

stone的博客 504

poj 1741 Tree

题意:给定一棵n节点的树(n<=10000),求满足dis(i,j)<=k的点数个数。 p.s.准备学习树链剖分。。先从qzc的论文开始。。 解法:树上分治。    我们可以通过dfs求出每个点到子树根的距离,对于以u为根的子树,满足条件并且路径过u的点对数=满足条件的所有点对数-路径不过u的点对数。    求法就是对所有dis排序然后两个指针扫,时间复杂度O(n).和http...

weixin_30878361的博客 147

从零到一:手把手教你用海康VisionMaster完成第一个字符识别项目(附完整流程与避坑点)

本文详细介绍了如何使用海康VisionMaster完成首个字符识别项目,涵盖从环境搭建、图像预处理到系统集成的完整流程。特别分享了Blob分析配置、字符识别优化等实战技巧,帮助开发者避开常见陷阱,快速掌握VisionMaster的基本操作,提升工业自动化场景下的字符识别效率。

weixin_29313423的博客 665

解决 `version ‘GLIBCXX_3.4.32‘ not found‘ not found` 错误

解决 `version 'GLIBCXX_3.4.32' not found' not found` 错误

engchina的专栏 5676

【点分治】POJ 1741 Tree

第一次写点分治,一道入门题,稍微理解到了点分治解决的顺序和大致流程。 每次寻找当前子树的重心,围绕重心计算答案,这道题计算当前子树内经过了当前重心的满足条件的节点对数,用子树内总的符合条件的对数减去两个节点在同一子树内的对数。然后继续向子树分治。 #include&amp;lt;iostream&amp;gt; #include&amp;lt;cstdio&amp;gt; #include&amp;lt;algorithm&amp;gt...

wans__的博客 192

CE 7.4中文版实战:如何用自动汇编功能快速生成游戏修改器(附CT表保存技巧)

本文详细介绍了CE 7.4中文版中自动汇编功能的使用方法,帮助用户快速生成游戏修改器。从环境配置、内存地址定位到自动汇编代码注入,再到CT表保存和独立EXE生成,提供全流程实战指南,适合逆向工程爱好者和游戏修改器开发者。

keras9composer的博客 357

POJ1741--Tree[平衡树]

利用启发式合并的优良性质实现可靠的暴力

Sdywolf的博客 914

对Palantir的本体论的理解

本体论Ontology是Palantir的整个技术架构的核心与基石,它远不止是一个数据模型,而是一个旨在对企业决策本身进行建模的“数字世界的操作系统”。

liuyukuan的专栏 1149

保姆级教程:用海思PQTool搞定ISP图像调试,从参数读取到固件烧录全流程

本文提供海思PQTool的ISP图像调试全流程指南,从参数读取、实时调试到固件烧录,涵盖环境配置、核心功能解析、参数固化及生产部署。通过实战案例和避坑指南,帮助开发者高效提升图像质量,适用于海思开发板的ISP调试与优化。

weixin_30872337的博客 280

[日常摸鱼]poj1741Tree-点分治

还有两天就要去FJWC啦… 题意:一颗无根树,$k$为给定常数,求树上距离不超过$k$的点对的数量,多组数据,$n \leq 10^4$. 应该是点分治经典题~ 一般对于无根树我们都可以把它转变成有根树(其实树上路径不管哪个根都一样嘛),假设我们已经钦定了一个根$rot$(后面会说其实这个根应该是重心),对于$rot$这颗树中的对答案有贡献的路径,要么经过$r...

190

基于YOLOv8的野生菌菇检测、识别与分类系统

YOLOv8是YOLO系列模型的最新版本,继承了YOLO系列高效、精确的特点。YOLOv8采用了新的网络架构,并优化了推理速度和检测精度。与传统的目标检测算法(如Faster R-CNN)不同,YOLO模型通过一次前向传播同时完成目标定位与分类,因而具有非常高的计算效率。

YOLO 1284

[POJ 1741] DP + Tree 分治

题意: 给一棵树,有边权。问边权和 解法: TreeDp+分治。漆子超的论文。。 const int N = 1e4 + 9; int n , k , ans; struct EDGE{ int to , len , next; }edge[N << 1]; int head[N] , tot; void addedge(int u , int v , int len){

向往纳木错的程序猿生活 806

使用亚组分析进行子组分析并可视化森林图 - R语言

通过亚组分析和森林图的结合,我们可以更好地理解不同子组之间的差异和效果大小。当然,在实际应用中,还需要考虑多种因素,如样本量、异质性等,以得到更准确的结果和结论。每个森林图中的水平线代表了每个子组的效应估计,线的长度表示了该效应估计的置信区间。假设我们有一个包含研究对象的数据框(data frame),其中包括了治疗组和对照组的结果数据,以及一些可能的影响因素作为调整变量。在本例中,我们将比较两种不同的治疗方法(A和B)对结果变量的影响,并调整了一个额外的变量。是结果变量和对照组变量的列名。

2301_79326857的博客 1235

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

poj 1741 点分治

题意,一棵树,边有权值,问有多少点对之间的路径 思路,树分治基础,直接点分治,合并的时候分边依次计算。维护处理边的dis数组和某重心已经处理过的dis数组就好了,记得保证有序性方便二分计数。 代码: //#include #include #include #include using namespace std; #define X first #define Y s

zxl博客 321

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

POJ-1741 Tree(树分治)

Tree Time Limit: 1000MS   Memory Limit: 30000K Total Submissions: 22767   Accepted: 7527 Description Give a tree with n vertices,each edge has a length(positive integer

十分残念的博客 1260

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

POJ1741

树分治,每次把每个点的deep取出,排序。。。尺取法。。。# include <stdio.h> # include <stdlib.h> # include <iostream> # include <algorithm> # include <string.h> # define IL inline # define RG register # define Fill(a, b) memset(

Cyhlnj 339

「POJ1741」Tree

点分治 感觉像线性数据结构上的二分 或者说线性数据结构上的二分就是点分治的特殊情况 1 #include<cstdio> 2 #include<iostream> 3 #include<cstring> 4 #include<algorithm> 5 using namespace std; 6 const int ...

weixin_30571465的博客 161

poj 1741 Tree 树的分治

题意:给定一棵边带权的树,求多少对点之间的距离小于k 1 #include<iostream> 2 #include<cmath> 3 #include<cstdio> 4 #include<cstring> 5 #include<algorithm> 6 using namespace std; 7 #define NMA...

weixin_30724853的博客 127

POJ 1741 树的分治

题意就是求树上距离小于等于K的点对有多少个 n2的算法肯定不行,因为1W个点 这就需要分治。可以看09年漆子超的论文 本题用到的是关于点的分治。 一个重要的问题是,为了防止退化,所以每次都要找到树的重心然后分治下去,所谓重心,就是删掉此结点后,剩下的结点最多的树结点个数最小。 每次分治,我们首先算出重心,为了计算重心,需要进行两次dfs,第一次把以每个结点为根的子树大小求出来,第二次是从

水 1万+

poj1741 Tree解题报告

题意:给定一棵n个结点的树和边上的权值,树上两点之间的距离为经过边的权值之和,若两点之间距离 (据说是楼教主男人八题之一...做了很久,又参考了网上各种大牛们的代码,终于A掉了,自己真是太弱了。。。) 分析: 由于点有10000个,所以直接枚举两个点是TLE的,本题要用到树的分治(可以参看漆子超大牛09年的论文)。首先我们可以将所有的点对分为两种: 1.经过根节点 2.不经过根节点

ayecsz的专栏 515

POJ - 1741 Tree(点分治模板题)

题目链接:点击查看 题目大意:给出一棵 n 个节点的树,现在定义 dis( x , y ) 为点 x 和点 y 之间的路径长度,现在问 dis ( x , y ) <= k 的点对有多少 题目分析:点分治的模板题目,干货博客:https://www.cnblogs.com/PinkRabbit/p/8593080.html 自己写的时候写了一堆bug。。提示一下,如果是WA的话可能有点无从下手,但如果用的是链式前向星,还仍然 TLE 的话,大概率是重心的地方出现细节问题了,因为如果重心使用不当,

Falcon的博客 454

POJ - 1741 Tree (点分治 求路径距离小于等于k的点对)

Tree Give a tree with n vertices,each edge has a length(positive integer less than 1001). Define dist(u,v)=The min distance between node u and v. Give an integer k,for every pair (u,v) of vertices...

YOONGI 1192

POJ 1741 Tree(经典点分)题解

青少年是一个美好而又是一去不可再得的时期,是将来一切光明和幸福的开端。——加里宁 这道题是经典的点分,拿来练练手。 题目大意: 一行n,m范围是100000。(n是树的节点树木,m是树上链长度上限) 下面n-1行每行三个数给定树,(前两个给定树的边,后一个为长度)。 注意:是多组数据,最后两个0 0结束。 然后询问树上不超过m的链的个数。 Example: IN PUT:

蒟蒻的博客 638
上一篇: POJ-2152-treeDP
下一篇: POJ-3162-treeDP+线段树
walk_up
博客等级 码龄15年 2粉丝 34原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值