首页 > 其他分享 >P7077 [CSP-S2020] 函数调用

P7077 [CSP-S2020] 函数调用

时间:2023-10-18 09:33:25浏览次数:34  
标签:调用 函数 函数调用 加法 mul P7077 gets CSP 乘法

显然函数之间的调用关系形成了一张拓扑图,预处理出函数 \(i\) 或其内部所有乘法之积 \(mul_i\)。

在调用一个加法函数后调用一个乘法函数,等价于先调用这个乘法函数,然后调用这个加法函数乘数次。所以不妨让乘法函数先做,剩下加法函数产生的贡献只取决于加数和调用次数。这里和线段树的懒标记优先顺序道理相同。

将整个程序视为一个类型 \(3\) 的函数,从其开始拓扑排序。记 \(k_i\) 为位置 \(i\) 当前加上的数之和,\(f_i\) 为函数 \(i\) 内部加法函数的调用次数。

在拓扑排序遇到三种函数时,考虑它们的影响:

  • 类型 \(1\)。此后再也不会调用它了,那么它的贡献即可以算好了:\(k_{P_i}\gets k_{P_i}+V_i\times f_i\)。
  • 类型 \(2\)。其贡献在 \(mul\) 数组中,直接忽略。
  • 类型 \(3\)。因为前面的乘法能影响到后面的加法,所以要倒序遍历。若函数 \(i\) 调用了函数 \(j\),那么:\(f_j\gets f_j+f_i,f_i\gets f_i\times mul_j\)。

最后位置 \(i\) 的答案即为 \(a_i\times mul_0+k_i\),其中 \(0\) 表示整个程序。注意没被调用过的函数要删掉出边以免影响拓扑排序。

标签:调用,函数,函数调用,加法,mul,P7077,gets,CSP,乘法
From: https://www.cnblogs.com/landsol/p/17771301.html

相关文章

  • CSP模拟57联测19
    今天摆了......
  • CSP 赛前模拟赛出现的问题集合
    主要是自己的一些脑瘫行为。不太好调。1.忘记写取地址符。2.还没输入数据就开始数据处理。3.输入输出类型不正确,比如longlong类型写成"%d"。4.数据范围\(1<=n<=12\),我写成:constintN=12且下标从1开始。5.数组开小:指整个题目的代码开的空间只是部分数据的。6.计......
  • [CSP-J2019] 加工零件
    题目描述凯凯的工厂正在有条不紊地生产一种神奇的零件,神奇的零件的生产过程自然也很神奇。工厂里有\(n\)位工人,工人们从\(1\simn\)编号。某些工人之间存在双向的零件传送带。保证每两名工人之间最多只存在一条传送带。如果\(x\)号工人想生产一个被加工到第\(L(L\gt1......
  • 2023年CSPM-3国标项目管理中级认证含金量及报名指南
    CSPM-3中级项目管理专业人员评价,是中国标准化协会(全国项目管理标准化技术委员会秘书处),面向社会开展项目管理专业人员能力的等级证书。旨在构建多层次从业人员培养培训体系,建立健全人才职业能力评价和激励机制的要求,培养我国项目管理领域复合型人才。  【证书含金量】 ·竞聘优先......
  • 函数调用栈-执行上下文栈
    一调用栈我们知道栈的特点是,先进后出的。那么函数的执行上下文栈又是怎么样的呢?先看这段代码vara=2functionp2(b,c){returnb+c;}functionp1(b,c){vard=10;result=p2(b,c);returna+result+d;//2+9+10}console.log(p1(3,6));//21由于js代码是运行时编......
  • CSP模拟赛记录
    CSP模拟赛记录落下了好多慢慢补qwq2023.10.16A.魔力子串直接vector扔map里面没什么好说的警示后人:能用map就不要哈希B.吃树结论题当正好存在\(\frac{n}{k}\)个节点的子树大小为\(k\)的倍数时,\(k\)作为块的大小是合法的对于每种合法的块的大小,有且仅有......
  • [刷题笔记] CSP-J 2022 T4 上升点列
    Description在一个二维平面内,给定\(n\)个整数点\((x_i,y_i)\),此外你还可以自由添加\(k\)个整数点。你在自由添加\(k\)个点后,还需要从\(n+k\)个点中选出若干个整数点并组成一个序列,使得序列中任意相邻两点间的欧几里得距离恰好为\(1\)而且横坐标、纵坐标值均单调不......
  • CSP-J/S 2023 游记
    2023-10-16TBXCRound7-J打了场模拟赛,以为自己AK了,结果赛中发现自己是消愁,调完代码后又以为自己AK了,赛后再次发现自己是消愁。半年没写bfs,只会SPFA了/cf总结:数组空间不要开小!......
  • 2023年CSPM-3国标项目管理中级认证备考开始啦!
    CSPM-3中级项目管理专业人员评价,是中国标准化协会(全国项目管理标准化技术委员会秘书处),面向社会开展项目管理专业人员能力的等级证书。旨在构建多层次从业人员培养培训体系,建立健全人才职业能力评价和激励机制的要求,培养我国项目管理领域复合型人才。  【证书含金量】 ·竞聘优先......
  • CSP-S 大纲
    CPS-S大纲2.2.1基础知识与编程环境【5】Linux系统终端中常用的文件与目录操作命令【5】Linux系统下常见文本编辑工具的使用【5】g++、gcc等编译器与相关编译选项【5】在Linux系统终端中运行程序,使用time命令查看程序用时【5】......