CF 472D Riverside Curio

CodeForces - 924C Riverside Curio (差分约束) https://blog.youkuaiyun.com/lzc504603913/article/details/79702604 https://codeforces.com/contest/957/problem/D Riverside Curio time limit per test 1 second memory limit per test 256 megabytes input ... 阅读详情

一直以为是dp或者搜索之类的,搞了半天发现并不是qwq….这道题其实应该从一个比较整体的角度来考虑,
首先,我们要最小化每天的d,因为每天的划线总数是ti=di+mi+1,因此实际上我们就是要最小化每天的t。
很显然的,t必须满足几个条件:1.t[i]>=t[i-1],总不可能线越划越少吧。2.t[i]>=m[i]+1,这也是废话
3.t[i]>=t[I+1]-1,这是因为每天最多因为水位上涨到以前没有到过的高度最多能增加一条划线。
在满足这几个条件的前提下,我们来考虑如何最小化t
因为有第三条的存在,因此我们肯定是要倒着扫一遍的,否则后面的划线数还不存在,怎么比较?
这样一来,不妨再从前面扫一次以满足1的要求。

#include<cstdio>
#include<iostream>
#include<algorithm>
using namespace std;
int m[100005],f[100005];
int main()
{
    int n,i,j,cur;
    cin>>n;
    for(i=1;i<=n;i++)scanf("%d",&m[i]);
    for(i=n,cur=0;i;i--){//这里其实不用cur似乎也行得通
        cur=max(cur-1,0);//每天可以最多比后一天小1,但是不能为负
        cur=max(cur,m[i]+1);//同时还必须满足今天的最小划线要求
        f[i]=cur;
    }
    long long ans=0;//会爆int...
    for(i=1,cur=0;i<=n;i++){//这里用cur的好处就是如果f[i]不满足要求的话,
        // 并不用去更新他,反正每次cur肯定都是上一天满足要求下的最小值
        cur=max(cur,f[i]);
        ans+=cur;
    }
    for(i=1;i<=n;i++)ans-=(m[i]+1);//记得减掉水线上的部分
    cout<<ans<<endl;

    return 0;
}
Jetbrains IDE 配置上Gemini Code 插件,让你的的编程高效起飞~ Gemini Code Assist是 Google 家产品,基座模型为最新的Gemini 2.5 Pro。本篇实践了在 WebStrom 中Gemini Code Assist插件的高效编程。 阅读详情

相关推荐

导数在工程与AI中的12个实战应用解析

导数作为数学中的基本概念,本质是描述变化率的工具,其核心价值在于将非线性问题局部线性化处理。从原理上看,通过极限过程捕捉函数瞬时变化特性,使工程师能精确控制系统动态行为,帮助科学家量化自然规律变化速率。在技术实现层面,现代符号计算(如Mathematica)、数值计算(如MATLAB)和自动微分(如PyTorch)工具链的发展,大幅提升了导数计算的效率与精度。典型应用场景涵盖机械控制(如ABS防抱死系统)、金融工程(如期权希腊值计算)、医疗影像(如Canny边缘检测)等领域。特别在机器学习中,反向传播算法依

weixin_35509395的博客 316

批量训练与稀疏交叉:动态模型结构学习算法解析与实践

在机器学习领域,批量训练是处理海量数据、优化计算资源的核心范式。其原理是将数据集划分为小批次,通过迭代更新模型参数,不仅解决了内存限制问题,其梯度噪声还带来了隐式正则化效果,有助于提升模型泛化能力。这种训练方式与GPU等硬件的高度并行计算特性完美契合,是深度学习模型(如ResNet、BERT)得以高效训练的技术基础。在实际应用中,尤其是在处理高维稀疏特征和复杂逻辑规则时,如何控制模型复杂度、防止过拟合成为关键挑战。本文聚焦于一种融合了批量训练与在线模型结构学习的算法,其核心在于通过“对偶构建”和“迹函数”高

weixin_30500473的博客 696

AI智能体安全沙箱agentguard:为LLM代码执行筑起防火墙

在AI应用开发领域,大语言模型(LLM)驱动的智能体(Agent)能够自动生成并执行代码,极大地提升了自动化能力。然而,赋予AI直接执行系统命令的权限也带来了显著的安全风险,如恶意代码注入、敏感数据泄露和系统资源滥用。为了解决这一核心矛盾,安全沙箱技术应运而生,它通过在不可信代码与宿主系统之间建立隔离层,实现"默认拒绝、最小权限"的安全原则。agentguard项目正是这一理念的工程实践,它结合白名单机制与容器化隔离,为AI智能体提供了可配置、可审计的安全执行环境。该方案不仅适用于内部自动化工具开发,也为构

weixin_28695537的博客 296

cf472D Design Tutorial: Inverse the Problem

题意是给你一个dist[i][j]的邻接矩阵,判断这是不是一棵树。 想法是先假设这就是棵树,用最小生成树直接算出应有的n-1条边,然后暴力求出在只有这n-1条边的情况下的dist和原数组比较 当然前面还要预处理排除一堆不合法答案 hzwer:为什么要做最小生成树呢?因为首先距离当前点x最近的点y肯定是有边直接连接的,因为(反证法)假设有z使得xz和yz分别连接,则dis[x][z

c_czl的博客 390

别再瞎调参数了!分子动力学模拟新手必看的力场选择与验证实战指南

本文为分子动力学模拟新手提供力场选择与验证的实战指南,详细解析主流力场特性及适用场景,并通过水分子案例演示完整的验证流程。文章重点对比SPC/E、TIP3P和OPLS-AA三种力场在GROMACS中的表现,帮助读者避免常见参数调整误区,提升模拟准确性。

weixin_26934905的博客 425

Arcmap计算土方量教程

1. 创建现状TIN 结果数据: 2. 创建设计TIN 结果数据: 注意:现状TIN和设计TIN构建时候的坐标系不同,设置坐标系见最后的注意事项第1点,就是import(导入)那步骤,现状TIN构建时选择高程点数据或者等高线数据,设计TIN构建时候选择洱海面数据 3. TIN转栅格 改成你要存的数据库,注意中间不要有汉字 结果数据(设计TIN转栅格的同理) 4. 裁剪现状TIN转成的栅格 结果数据: 5. 计算土方量 结果数据: ...

欢迎关注,共同进步! 5014

CF472D 的题解

一眼看上去,就是个 LCA,而本蒟蒻不太会 LCA,只好用了 prim 算法。,说明也无效,直接输出 NO,后面用 prim 进行处理即可。当然不能直接套模板,而需要在模板上进行一些修改,具体见代码吧。首先读入,边读入边判断是否满足要求。,说明无效,直接输出 NO,当然,如果。还算是比较清楚,贴个题面吧。

juan_wang123的博客 626

Python Trimesh库实战:5分钟搞定STL文件解析与3D模型可视化

本文介绍了如何使用Python的Trimesh库快速解析STL文件并进行3D模型可视化。通过简洁的代码示例,演示了从环境搭建、模型加载、几何数据提取到基础变换和批量处理的核心流程,帮助开发者和工程师在5分钟内高效完成3D数据处理与可视化任务。

weixin_32005771的博客 159

Riverside Curio(CF Round #472 D div2 思维水题)

D. Riverside Curiotime limit per test1 secondArkady decides to observe a river for n consecutive days. The river's water level on each day is equal to some real value.Arkady goes to the rivers...

残阳止水 395

深度学习-176-知识图谱技术之langchain与neo4j的嵌入向量Neo4jVector

使用Neo4jVector将输入的文档向量化,并创建向量索引,然后进行语义检索。

qq_20466211的博客 440

安卓新奇玩机工具全攻略___联发科MTK v6 限时免费 刷写固件工具操作

摘要:该文介绍一款限时免费的联发科V6刷机工具,支持小米、Vivo、Moto等多品牌设备,包括红米Note14Pro等机型(Klimt/Goya等代码)。工具需注册使用,提供EFS分区备份功能。作者提示工具可能触发杀毒警报,强调禁止非法用途,并说明部分联网工具可能失效。

小马哥的专栏 1316

Codeforces 472D

看官方题解提供的是最小生成树,怎么也想不明白,you can guess and prove it! 看了好几个人的代码,感觉实现思路全都不一样,不得不佩服cf题目想法的多样性 下面说说我自己的理解,将1作为根,对于任意两点存在两种关系: 1.一个点位于另一个点的子树上。两点到1的距离之差绝对值等于两点距离。 2.两个点在某一个点的不同子树上。两点到1距离之和减去两点距离等于两倍某个点到1

无名山丘,崛起成峰 2415

Python语言基本语法元素

Python语言的基本语法元素:包括Python程序的格式框架,语法元素名称,数据类型和语句元素以及基本的输入输出函数。

Python全栈系列 8365

Codeforces Round#472

CF957A Tritonic Iridescence(瞎搞) CF924A Mystical Mosaic(瞎搞) CF924B Three-level Laser(贪心) CF924C Riverside Curio(贪心) CF924D Contact ATC(数学+BIT求逆序对)

Icefox的博客 1436

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

2014-2015 HNOI集训

题目基本都不会……写点什么,以后好复习。

KuribohG 1390

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

Riverside Curio 题解

A - Riverside Curio Arkady decides to observe a river for n consecutive days. The river’s water level on each day is equal to some real value. Arkady goes to the riverside each day and makes a mark on the side of the channel at the height of the water lev

qq_45811601的博客 293

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

Codeforces 957D - Riverside Curio 【思维】

Codeforces 957D - Riverside Curio 【思维】 codeforces Round #472 (rated, Div. 2, based on VK Cup 2018 Round 2) Arkady decides to observe a river for n consecutivedays. The river's water level on each day is equal to some real value. Arkady goes to the riversid

Dust_heart的博客 697

VK Cup 2018 Round 2: C. Riverside Curio(思维)

D. Riverside Curiotime limit per test 1 secondmemory limit per test 256 megabytesinput standard inputoutput standard outputArkady decides to observe a river for n consecutive days. The river's water l...

加载中... 1212

CodeForces - 924C Riverside Curio (思维)

Riverside Curiotime limit per test1 secondmemory limit per test256 megabytesinputstandard inputoutputstandard outputArkady decides to observe a river for n consecutive days. The river's water level on...

LP_Cong 902

VK Cup 2018 - Round 2 C. Riverside Curio

#include using namespace std; const int maxn=1e5+5; int a[maxn]; int main() { int n,x; long long ans; while(scanf("%d",&n)!=EOF) { ans=0; for(int i=1;i<=n;i++)

fanbaobao829的博客 211

924C Riverside Curio

Arkady decides to observe a river for n consecutive days. The river’s water level on each day is equal to some real value. Arkady goes to the riverside each day and makes a mark on the side of the ch...

lvmaooi的博客 525

codeforces Riverside Curio

C. Riverside Curiotime limit per test1 secondmemory limit per test256 megabytesinputstandard inputoutputstandard outputArkady decides to observe a river for n consecutive days. The river's water level...

yjt9299的博客 363

codeforces472D Design Tutorial: Inverse the Problem 最小生成树+dfs

题意:

AC_kereo的专栏 1094

Riverside Curio

题目链接:http://codeforces.com/problemset/problem/924/C/*看懂题目 只要满足两个条件就OK啦 1. s[i]>=s[i+1]-1 && s[i]>=a[i]+1;(逆序遍历) 2.s[i]>=s[i-1];(正序遍历) */ #include int main() { int n; int a[100005],s[100005];

noble_happy的博客 232

CF924C Riverside Curio

一、题目 点此看题 二、解法 玄学警告⚠,由于线上的数量是定值,转而求线的数量已推知线下数量。 设t[i]t[i]t[i]为iii时刻线的数量,d[i]d[i]d[i]为线下的数量,易知 t[i]=m[i]+d[i]+1t[i]=m[i]+d[i]+1t[i]=m[i]+d[i]+1,有这样一些限制: t[i]≥t[i−1]t[i]\geq t[i-1]t[i]≥t[i−1],即线的数量单调递增...

C202044zxy的博客 314

CF957D Riverside Curio

dp+预处理 dp[i]表示第i天时的水位线有多少条, 然后你会发现这个dp是有后效性的,当第i天的m[i]>dp[i-1]时就要修改之前的dp值 因此我们预处理出每一天的至少要多少条水位线,记l[i]为多少条水位线 所以每天至少需要m[i]+1条水位线,然后我们从后往前枚举,记录now表示从后推出当前的i需要的水位线 l[i]=max(now,m[i]+1) #includ...

weixin_30765577的博客 158
上一篇: CF 472B Mystical Mosaic
下一篇: (模板)Trie树(字典树)
HumveeA6
博客等级 码龄17年 12粉丝 175原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值