日常补题

TypeScript领域建模实战:基于斯坦福本体论七步法构建健壮数据模型 在软件工程中,领域建模是连接业务需求与技术实现的关键桥梁,其核心在于对业务概念、属性及其关系的显式定义与规范。通过系统化的建模方法,开发者能够将模糊的领域知识转化为清晰、可扩展且类型安全的数据结构,从而在编译时捕获潜在错误,提升代码质量与可维护性。这一过程的技术价值在于实现了从业务逻辑到类型系统的无损映射,确保了设计的一致性。在实践中,结合TypeScript的静态类型检查与Zod的运行时验证,可以构建起从概念到代码再到数据库的三层一致性约束。本文以电商、博客等常见应用场景为例,深入解析如何运用源自斯坦福知 阅读详情

CFR 363
给定一个序列:
ai equals 0, if on the i-th day of vacations the gym is closed and the contest is not carried out;
ai equals 1, if on the i-th day of vacations the gym is closed, but the contest is carried out;
ai equals 2, if on the i-th day of vacations the gym is open and the contest is not carried out;
ai equals 3, if on the i-th day of vacations the gym is open and the contest is carried out.
还有个要求:他不会连续两(>=2)天都做相同的运动: (=_=反正就是做活动要间隔像1,2,1,2,1,2)
问最少能休息几天。
dp[i][j]表示第 i 天做 j 类型的活动所能休息的最少时间。
如果x为1,则说明当天能休息或者去GYM,所以更新dp[ i ][1]和dp[ i ][0],同时当天不能做2类型的运动,所以dp[i][2]=INF;其他类型同理,递推下去就好了

/*cf 698A*/
#include<stdio.h>
#include<algorithm>
using namespace std;
int D[1005][3];
int main()
{
    //freopen("in.txt","r",stdin);
    int x,N;
    scanf("%d", &N);
    for (int i = 1; i <= N; i++)
    {
        scanf("%d",&x);
        if (x==3)
        {
            D[i][0] = min(min(D[i - 1][0], D[i - 1][1]),D[i-1][2])+1;
            D[i][1] = min(D[i - 1][0], D[i - 1][2]);
            D[i][2] = min(D[i - 1][0], D[i - 1][1]);
        }
        if (x==2)
        {
            D[i][0] = min(min(D[i - 1][0], D[i - 1][1]), D[i - 1][2]) + 1;
            D[i][2] = min(D[i - 1][0], D[i - 1][1]);
            D[i][1] = 100000000;
        }
        if (x==1)
        {
            D[i][0] = min(min(D[i - 1][0], D[i - 1][1]), D[i - 1][2]) + 1;
            D[i][2] = 100000000;
            D[i][1] = min(D[i - 1][0], D[i - 1][2]);
        }
        if (x==0)
        {
            D[i][0] = min(min(D[i - 1][0], D[i - 1][1]), D[i - 1][2]) + 1;
            D[i][1] = 100000000;
            D[i][2] = 100000000;
        }
    }
    printf("%d\n", min(min(D[N][0], D[N][1]), D[N][2]));


    return 0;

}

CF 698B
给一个数组a,
ai是 i 的父亲。
让你修改最少的元素pi让这数组变成一棵合法的树…

首先,要找出这个数组中有多少个环和多少个根节点( ai== i ) 的.
然后将每个环中的一个点当作这个环的根节点。
然后使用并查集解法是:
先把所有根节点都找出来,并将总的根节点num初始为其中的一个根节点。
再把所有的环都拆开,找出环中的一个点作为根节点a[i]==i。
然后把所有根结点都连向num。
注意: 优先把总根节点num初始化成a[i]==i,而不是拆开的环,因为要找的是操作数最少,找环的话操作次数会+1

这方法也是从CF一个看到的代码那里学习的…
我本来想把这棵树分成几个联通量…再把所有联通量都找出根节点,一 一连起来..
但是不知道怎么把环拆开…

/*并查集*/
#include <bits/stdc++.h>
using namespace std;
const int maxn = 200050;
int a[maxn],f[maxn],ans[maxn];
int Find(int x)
{
    return f[x] == x?x:f[x] = Find(f[x]);
}
int main()
{
#ifdef LOCAL
    freopen("in.txt","r",stdin);
#endif // LOCAL
    int n;
    scanf("%d",&n);
    for(int i = 1; i<=n; i++) f[i] = i;
    int cnt=0,num=-1;;
    for(int i = 1; i<=n; i++)
    {
        scanf("%d",&a[i]);
        int x=Find(i),y=Find(a[i]);
        if(a[i]==i) {num=i,ans[++cnt] = i;continue;}//这是一个根节点
        else if(x==y)//ai!=i,而i,a[i]在一个联通块里,此时又要将i连向a[i],所以肯定会出现环。
        {
            a[i]=i;//将所有环都拆开,并以这个点为根节点。
            cnt++;
        }
        f[x]=y;
    }
    if(num==-1)//如果没有找到根节点,再从拆开的环里面找出一个结点当根节点。
    {
        for(int i=1;i<=n;i++)
            if(a[i]==i)
            {
                num=i;
                cnt++;//只有环的话,改变的元素会多一个。
                break;
            }
    }
    printf("%d\n",--cnt);
    for(int i=1;i<=n;i++)
    {
        if(i==a[i]) a[i]=num;//将所有根节点都连向一个根节点num
        printf("%d%c",a[i],i==n?'\n':' ');
    }
}

BFS解法…其实和并查集差不多..
只是我把每个联通量的根节点都存了起来,再把所有根节点都连向root…
就是BFS判环和并查集判环不同。

/*BFS*/
#include <bits/stdc++.h>
using namespace std;
int f[200006];
int circle[200006],cnt,fa[200006];
bool vis[200006];
vector<int >E[200006];
int num=-1,flag=0;
int bfs(int x)
{
    queue<int>Q;
    Q.push(x);
    int t=0;
    bool cir=0;
    while(!Q.empty())
    {
        x=Q.front();
        if(f[x]==x) t=x;
        Q.pop();
        for(int i=0;i<E[x].size();i++)
        {
            if(!vis[E[x][i]])
            {
                Q.push(E[x][i]);
                fa[E[x][i]]=x;
                vis[E[x][i]]=1;
            }
            else if(fa[x]!=E[x][i]&&!cir)
            {
                if(num==-1) num=x;
                t=x;
                cir=1;//标记,免得环里的元素重复出现...
            }
        }
    }
    return t;//一个联通量里只会有一个根节点或者一个环
}
int main()
{
#ifdef LOCAL
    freopen("in.txt","r",stdin);
#endif // LOCAL
    int n;
    scanf("%d",&n);
    for(int i=1;i<=n;i++)
    {
        scanf("%d",&f[i]);
        if(f[i]==i) flag=1,num=i;
        E[i].push_back(f[i]);
        E[f[i]].push_back(i);
    }
    for(int i=1;i<=n;i++)
    {
        if(!vis[i])
        {
            vis[i]=1;//忘了这句一直WA...MDZZ
            int k=bfs(i);
            //cout<<k<<endl;
            circle[++cnt]=k;
        }
    }
    printf("%d\n",cnt-flag);
    for(int i=1;i<=cnt;i++)
    {
        f[circle[i]]=num;
    }
    for(int i=1;i<=n;i++)
    {
        printf("%d%c",f[i],i==n?'\n':' ');
    }
    return 0;

}

蒟蒻加油。

qq对接openclaw,通过qq发送命令 把 OpenClaw 接入 QQ 和微信,目前主流的微信文章和教程主要提供了两种截然不同的路径。我为你梳理了它们的核心区别和关键步骤,你可以根据自己的需求来选择。 阅读详情

相关推荐

距离多普勒谱(RD谱)绘制方法及理解

RD谱是信号处理领域常用的图形。原始信号往往是一维时域序列,如何将其二维化,并进行变换生成RD谱呢?由于刚刚接触,查阅了网络上、老师手里的资料,发现RD谱的绘制方法并不统一,有些存在一定问题。在此,将心得体会记录下来。

mddh_123的博客 3万+

日常补题——ICPC网络赛南京站第二题B.super_log

先放个题目 Super_log 来源:计蒜客 https://nanti.jisuanke.com/t/41299 In Complexity theory, some functions are nearlyO(1)O(1), but it is greater thenO(1)O(1). For example, the complexity of a typical...

478

速腾聚创多激光雷达点云采集,并用RVIZ进行显示

在ubuntu20.04系统下,使用速腾聚创官方提供的软件RSView,对激光雷达的默认IP地址、MSOP 包端口号、 DIFOP包端口号和时间模式等配置进行查看和修改。使用交换机对两个激光雷达进行组网,实现多激光雷达数据采集,并用RVIZ同时显示两个雷达点云。使用wireshark对比两个雷达数据包。

abanchao的博客 5888

vijosp1691-中位数&贪心-输油管道问题

https://www.vijos.org/p/1691 中文题意。 容易知道 距离和x无关,因为是从东到西的。暴力跑一遍也能过。1e8。。 或者 求一下中位数。 容易证明 中位数的时候,距离和最小。 设定 红色为中位数。(则x==y,为中位数左边和右边的数字数目)当选择中位数左边的数字时,有y+1 个的距离增加了a,x-1个减少了a 总距离变大。右边亦然。所以#include <b

天与云与山与水 622

深度残差网络的无人机多目标识别

深度残差网络的无人机多目标识别 人工智能技术与咨询 来源:《图学学报》。作者翟进有等 摘要:传统目标识别算法中,经典的区域建议网络(RPN)在提取目标候选区域时计算量大,时间复杂度较高,因此提出一种级联区域建议网络(CRPN)的搜索模式对其进行改善。此外,深层次的卷积神经网络训练中易产生退化现象,而引入残差学习的深度残差网络(ResNet),能够有效抑制该现象。对多种不同深度以及不同参数的网络模型进行研究,将两层残差学习模块与三层残差学习模块结合使用,设计出一种占用内存更小、时间复杂度更低的新型多捷.

m0_62870606的博客 3111

​银行IT运维人必看!IT运维监控指标大全,一篇讲透

文章摘要:本文从七个维度系统阐述了IT运维指标体系,涵盖机房环境、基础设施、网络设施、数据存储、虚拟化平台、数据库中间件和应用层。作者结合20年金融行业经验,详细分析了各层级关键监控指标、正常范围及异常后果,并给出典型故障场景。重点强调现代运维需从被动响应转向主动预防,通过精细化指标管理实现系统稳定性保障。文章特别指出,在国产化与DevOps背景下,运维工作需兼顾传统架构与新兴技术,构建全方位监控体系,将运维从"故障报警"升级为"业务守护"。

最近开始研究AIGC领域技术,欢迎交流 1106

CodeForces 补题日常

CodeForces 补题日常

qq_58430088的博客 255

老N卡福音:GT1030/GTX1050在MacOS Ventura 13.2上的完整驱动指南(附实测截图)

本文详细介绍了如何在MacOS Ventura 13.2上通过OCLP工具链驱动GT1030和GTX1050等老款NVIDIA显卡,涵盖硬件兼容性验证、BIOS设置、OpenCore配置、驱动安装及性能测试全流程。实测数据显示,这些基于Pascal和Maxwell架构的显卡在当代MacOS系统中仍能发挥实用价值,为老N卡用户提供完整解决方案。

weixin_30832143的博客 632

日常训练/补题进度

solved: + sloving: - 类型 年份 地点 A B C D E F G H I J K L M 总计 ICPC 2015 北京 + - + + - - + - + + + 7/11 CCPC 2016 杭州 + + + + + + - - - + + 8/11 ICPC 2013 南京 + + + - - - - + + + + 7/11 IC...

weixin_30407099的博客 101

STM32开发工具链选型:MDK、CubeIDE、VSCode与IAR深度对比

嵌入式开发工具链是连接软件逻辑与硬件行为的核心枢纽,其选择直接影响代码可靠性、调试效率与量产稳定性。从编译器优化能力、调试协议支持(如ARM CoreSight、SWO)、硬件抽象层级(寄存器/LL/HAL)到跨平台构建能力,不同工具在实时性保障、静态分析合规性(如MISRA-C)、WCET可预测性及生态开放度上存在本质差异。尤其在STM32平台,Keil MDK凭借深度调试能力成为HardFault定位首选,STM32CubeIDE依托图形化配置加速外设初始化,而VSCode+PlatformIO则以LS

weixin_42602368的博客 429

成功解决raise Py4JError py4j.protocol.Py4JError: py4j.protocol.Py4JError: Could not find py4j jar at 

成功解决raise Py4JError("Could not find py4j jar at {0}".format(jarpath)) py4j.protocol.Py4JError: Could not find py4j jar at 目录 解决问题 解决思路 解决方法 1、第一步安装jdk 2、第二步安装或升级py4j 解决问题 raise Py4JError("Could not find py4j jar at {0...

头部AI社区如有邀博主AI主题演讲请私信—心比天高,仗剑走天涯,保持热爱,奔赴向梦想!低调,专注,谦虚,自律,反思,成长,还算比较正能量的博主,公益免费传播…内心特别想在AI界做出一些可以推进历史进程影响力的技术(兴趣使然,有点小情怀,也有点使命感呀 4624

日常补题8.5

日常补题

qq_51803703的博客 187

基于Simulink的雷达跟踪系统仿真(附源码)

此示例包含对雷达系统的基本特征进行建模的子系统。该模型是用于目标位置和速度检测的雷达系统的典型模型。该示例包括雷达脉冲发生器、射频发射器子系统、移动目标的 Simulink 表示、射频接收器和接收模块(Rx 模块)。

珞瑜的博客 3515

Week 1 日常训练(补题)

日常训练

Don_Quijote__的博客 359

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

日常补题——ICPC网络赛上海站第二题B Light bulbs

日常补题——ICPC网络赛上海站第二题B Light bulbs 题目链接: https://nanti.jisuanke.com/t/41399 博客借鉴: https://blog.youkuaiyun.com/weixin_43701790/article/details/100867368 题目大意: 每次操作使 L,R区间内的等的状态改变,最后一共有多少开着的灯 题解: 这...

208

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

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

2018ICPC区域赛总结

青岛区域赛结束了,本赛季第一个全铁的队伍就此产生。 两场比赛最后都是差一点,还是太菜了。连着两场打铁,说明问题还是在于实力不足。 沈阳站,锅是我的。推公式极具迷惑性的推对了一半,中间过程对了,但是最后结果却有漏洞,导致我们按照错误的公式搞了半天,最后出题太慢,打铁回家。归根结底还是对数字不够敏感,毕竟老赵半个小时就推出了公式。菜是原罪。 青岛站,可能更多的问题在于心态。一开场我就翻开了最后一...

weixin_30622181的博客 139

日常补题——ICPC网络赛南京站第一题The beautiful values of the palace

The beautiful values of the palace 参考博文:https://blog.youkuaiyun.com/weixin_42856843/article/details/100559048 T: 1500msM: 524288Kjudge:计蒜客source:The Preliminary Contest for ICPC Asia Nanjing 2019 De...

150

2019/4/4日常CF练习Codeforces1140(A)补题(B,C,D)

A. Detective Book time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output Ivan recently bought a detective book. The book is so interesti...

wdaoyuanjun的博客 471

新生如何正确使用CF,ATC,牛客进行训练

CF题目最低难度为800,且难度都是100的整数,所以就从800-899开始训练,每一个分数段的题目训练5道题左右,如果拿到这个分数段的题目,不超过10分钟就有思路并写对,说明已经可以进入下一个区间,难度就递增100,刷900-999,以此类推,否则就继续写这个分数段的题目。除了必需的比赛,对于日常的训练来说,在CF和ATC上面训练即可,牛客只作比赛用途即可。注意到右边有一个难度筛选,可以填入你想要的难度。下有难度分类,方法和CF一样,不再赘述。首先进入网站,点击题库。思路和CF一样,进入。

qq_74451530的博客 1112

【fight for first wrong answer】的训练记录

队员:pp__qq、Andy01_、kitalekita 本篇文章主要是用来记录fight for first wrong answer队伍的日常训练的记录(打过的那几个训练赛的赛时做出的题以及赛后所补的题)和一些赛后的总结,便于更好的查漏补缺。 自主训练: 2020/11/7:The 14th Chinese Northeast Collegiate Programming Contest(题数:5/12) ...

kitalekita的博客 228

暑期训练 day6

暑期训练 day6 赵景乐 昨天也在补题,就是感觉看书的进度有点慢,毕竟两周要看完三章,应该先规划一下进度的。 今天的题目。 昨天晚上的题目都比较难吧,我才做出来一道,A题的规律倒是找出来了,但没有他们打表做的快,一开始还看错题目了,实在是不应该。现在想来还是看样例的时候太想当然了,没有仔细思考。 ...

qq_43641659的博客 113

近期总结

自从暑假开始到现在一个月了,我们也训练了整整一个月了。从刚开始的“难以接受”暑假美好时光要被训练给顶替,到现在习惯了这种训练的日子,享受这种学到新知识的快乐,我对自己还是稍有欣慰的(小小的自我满足)。我依旧享受那种看到绿色的AC的片刻的激动与快乐,依旧会因为一个算法怎么也想不明白而心态爆炸。这一个月,一多半时间的训练是上午打比赛,下午自由安排(对我来说就是稍微放松放松,补补题),晚上写写总结,偶而也用来补补题啥的。我觉得我这一个月以来最大的毛病就是补题补的不够积极,有一些题看了几遍,没思路就开始偷懒,不愿意

weixin_46434074的博客 337

周报 week1

天天有训练赛,还有两个将近20道题的题单,还有一些零零散散codeforces,牛客,Atcoder,的比赛,太多了。还要补题,我感觉有点力不从心,想要完成任务,质量上就没达标,想要质量,很多东西就完不成,第一天早上打了训练赛,下午一直在补提,补到下午3/4点左右,看他们在完成题单了,索性每天下午都写题单,晚上有时候会打打别的比赛比如睿抗,cf,abc.....;二分一整个题单只做了二分的部分,三分,01规划都还没有接触,令一个题单坐的差不多了,不仅有单调栈,还有单调队列,注意!:必须每个元素都得入栈。

2301_81224780的博客 431

4月25日.周六

-   这周打cf终于稍稍遏制住了掉分的势头,不过还会不会继续降还真指不定怎样,不过无所谓,挺享受打比赛这种感觉的,就是时间有点晚,比赛结束后半个小时内全无睡意。   不过,这周dp训练题目还是做得不多,这个确实做得很不好,感觉落下了就没动力了。说实话,自从老师说明了平时训练的评分准则后,大家就跟全都忽然开窍了一般,一个个稀里哗啦的提交ac题目,而且好些人就那么卡在1/2题量那,着实看得我干瞪眼啊...

qq_45980336的博客 159
上一篇: BC,HDU 5719
下一篇: 组合数的不同质因子
turtlew
博客等级 码龄11年 2粉丝 39原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值