首页 > 其他分享 >【2024.1.29补题记录】abc335-abc337

【2024.1.29补题记录】abc335-abc337

时间:2024-01-29 23:13:36浏览次数:27  
标签:2024.1 龙身 int abc335 back MAXN 补题 push dis

开篇碎碎念

总是以开篇碎碎念开写,不加这个有点不太舒服qwq,又是一个周一,开始酣畅淋漓的学习(摸鱼)把之前欠债补一补然后看一下概率

abc 335

总览

是23号vp的,出了ABD三题,CWA了一发但是没de出来(没找到错误样例)赛后补了C和E

C.Loong Tracking

很简单真的很简单!!!发现数据如果每次移动更新所有龙身的位置的话铁T(en?),然后观察一下数据范围,觉得应该每次查询O(1)出结果,然后想到用龙头的位置表示龙身,毕竟龙身是跟着龙头走的。
但是发现构造了几组数据,然后每组数据的所有龙身位置输出都是对的,就不知道怎么错的。
赛后洛谷翻题解,发现思路大致相同。直到我在后面发现一行小字...image我一拍大腿(呜呜好疼),把所有++cnt拆出来写了,于是就过了(呜呜呜)

E.Non-Decreasing Colorful Path

题意:

有n个点,m条边,每个边有不同的数值,问从1走到n最多可以经过多少个不同的数,要求走过的数列是不减数列。

思路:

首先第一个就是建边,理论上是给出的无向边,但因为我们要找的是不降序列,所以当该边的左右两个端点的值不相等的时候就会变成由低指向高点的有向边。
虽然有可能走不到点n,但是同样能走到点n的情况下优先走能走的中点数最小的。
然后进行了一个类似于dfs的放缩。

这里是E题的代码捏 ``` #include using namespace std; const int MAXN=2e5+10; int a[MAXN],vis[MAXN],dis[MAXN]; vectore[MAXN]; int ans,n,m; bool cmp(int x,int y){ return a[x]<a[y]; }="" void="" dfs(int="" x){="" vis[x]="1;" for(auto="" i:e[x]){="" if(vis[i])continue;="" if(a[x]<a[i]="" &&="" dis[x]+1="">dis[i]){ dis[i]=dis[x]+1; dfs(i); } if(a[x]==a[i] && dis[x]>dis[i]){ dis[i]=dis[x]; dfs(i); } } vis[x]=0; } int main(){ ios::sync_with_stdio(false);cin.tie(0);cout.tie(0); cin>>n>>m; for(int i=1;i<=n;i++){ cin>>a[i]; } int u,v; for(int i=1;i<=m;i++){ cin>>u>>v; if(a[u]>a[v])e[v].push_back(u); else if(a[v]>a[u])e[u].push_back(v); else{ e[u].push_back(v); e[v].push_back(u); } } for(int i=1;i<=n;i++){ sort(e[i].begin(),e[i].end(),cmp); } dis[1]=1; dfs(1); cout<<dis[n]<<endl; }="" ```="" <="" details="">

ABC 336

E读假了目前没法补

ABC 337

DE轻松补完qwq

标签:2024.1,龙身,int,abc335,back,MAXN,补题,push,dis
From: https://www.cnblogs.com/muyi-meow/p/17995281

相关文章

  • 2024.1.18《程序员的修炼之道:从小工到专家》阅读笔记1
    《程序员的修炼之道:从小工到专家》是一本经典的计算机编程领域的书籍,由AndrewHunt和DavidThomas合著。这本书以富有启发性的方式,向读者展示了成为一名优秀程序员的道路。本书以通俗易懂的语言,深入浅出地解释了编程领域的一些基本概念和原则。作者通过生动的案例和具体的实践经验......
  • 2024.1.22《程序员的修炼之道:从小工到专家》阅读笔记2
    《程序员的修炼之道:从小工到专家》强调了“软件工匠”的概念,即通过不断的学习和实践,不断提升自己的技能和素养,最终成为一名优秀的程序员。作者提出了“不断学习、不断改进”的观念,鼓励读者在编程之路上不断追求卓越。这让我深受鼓舞,也让我意识到编程领域是一个永无止境的学习之路,......
  • 2024.1.29寒假每日总结20
    算法题:514.自由之路-力扣(LeetCode)将你的Python代码打包成一个exe文件,方便其他人在没有安装Python环境的情况下运行,可以使用PyInstaller或cx_Freeze等工具将其打包成可执行文件。以下是使用PyInstaller的步骤:首先,确保你已经安装了PyInstaller。你可以使用以下命令在终端或命......
  • 2024.1集训总结
    难吗?不难,就是需要熟练。————某物理老师首先无可争议的是,这十天的效率,非常高,学习的内容比上学阶段之和还要多的多,将关键的算法、数据结构等系统地走了一遍,从是什么,到严谨地证出来为什么,再上手练习怎么用,受益匪浅。现在可以做到给一道题,能大概感......
  • 2024.1.28寒假每日总结19
    算法题:365.水壶问题-力扣(LeetCode)今天,我主要尝试了对之前的几个python脚本进行整合,使得可以输入图片路径,题目,总分进行评价参考:百度文心一言的回复 #-*-coding:utf-8-*-importosimportsysimporterniebotfromPILimportImagefrompaddleocrimportPaddleO......
  • 2024.1.28 模拟赛
    T1求\(\sum_{i=1}^n\sum_{j=1}^n\varphi(\gcd(\varphi(i),\varphi(j)))\).\(n\le10^7\).不会莫反,分块打表骗到了60pts.T2人类智慧题?只能手玩出\(n\le3\)的数据。期望20pts.最后一看,场上最高20pts。/jyT3支持连边断边,带边权,动态求树的直径。感觉像LCT/To......
  • 1.22-1.28 部分补题
    [蓝桥杯2016省A]密码脱落题意:给定一个回文串,但是有一些字母消失不见了。问:至少补全多少个字母,使得字符串变回回文串最开始想一个一个枚举,但是无论怎么写都是错的。后来被提醒回文串的特性,反转之后还是一样的。所以要求最少的需要补全的字母,直接求一个正着和反着的字符串......
  • (2024.1.22-2024.1.28)C语言学习小结
    本周主要围绕《HeadfirstC》这本书展开C语言学习,按照计划,我学习了前四章的内容。基本内容以下时学习做的思维导图(笔记)第1章虽然做的是思维导图,但实际上因为大多数内容已经掌握,所以实际上就是补充记了几个零散的点。第2、2.5章主要是指针、数组、字符串的内容,大多也已经......
  • 2024.1.27寒假每日总结18
    算法题:2861.最大合金数-力扣(LeetCode)git学习Git是一款免费、开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。Git是一个开源的分布式版本控制系统,可以有效、高速的处理从很小到非常大的项目版本管理。Git是LinusTorvalds为了帮助管理Linux内核开发而......
  • Solution Set【2024.1.27】
    CF1778FMaximizingRoot首先不难证明不操作根节点一定不优,因此我们考虑操作根节点的情况。现在我们的问题转化为了:最大化操作根节点前的整个树的节点权值的最大公约数。由于可能的最大公约数值只有\(\mathcal{O}(\sqrt{V})\)种。因此我们考虑将其压入状态进行动态规划。设......