| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 数据结构与算法 -> 牛客竞赛数据结构专题班前缀和练习题 -> 正文阅读 |
|
[数据结构与算法]牛客竞赛数据结构专题班前缀和练习题 |
比赛网址:https://ac.nowcoder.com/acm/contest/19483 目录 ? ??知识点:费马小定理 ? ?思路: ? ?AC代码: ? ??AC代码: ? ??I题和J的思路: ? ??AC代码: A:智乃酱的区间乘积(费马小定理)给定一个长度大小为N的正整数数组,查询M轮,每次问一个区间所有元素的连续乘积。 由于这个答案可能很大,你只用输出结果对1e9+7取余数后的结果即可。 知识点:费马小定理(a/b)%mod=a*pow(b,mod-2); ? ?快速幂模板:
思路:求前缀积,再sum[j]/sun[i]*arr[i],处理除法时用上费马小定理和快速幂。 AC代码:
G:牛牛的Link Power I:牛牛有一颗大小为n的神奇Link-Cut 数组,数组上的每一个节点都有两种状态,一种为link状态,另一种为cut状态。数组上任意一对处于link状态的无序点对(即(u,v)和(v,u)被认为是同一对)会产生dis(u,v)的link能量,dis(u,v)为数组上u到v的距离。 我们定义整个数组的Link能量为所有处于link状态的节点产生的link能量之和。 一开始数组上每个节点的状态将由一个长度大小为n的01串给出,'1'表示Link状态,'0'表示Cut状态。 牛牛想要知道整个数组的Link能量,为了避免这个数字过于庞大,你只用输出答案对10^9+7取余的结果即可。 ? ? ?思路:思维题。第i个1产生的能量是第i-1这个1的能量加上i与i-1之间的距离*i之前1的个数 AC代码:
I:[NOIP2013]积木大赛?
在搭建开始之前,没有任何积木(可以看成 n 块高度为 0 的积木)。接下来每次操作,小朋友们可以选择一段连续区间 [l, r] ,然后将第第 L 块到第 R 块之间(含第 L 块和第 R 块)所有积木的高度分别增加 1 。 小 M 是个聪明的小朋友,她很快想出了建造大厦的最佳策略,使得建造所需的操作次数最少。但她不是一个勤于动手的孩子,所以想请你帮忙实现这个策略,并求出最少的操作次数。 J:[NOIP2018]道路铺设:
I题和J的思路:这两题的思路是一样的,AC代码也一样,答案初始值为第一个数,以第一个数为基数,检查下一个数是否大于该数,若大于,答案再加上大于的那一部分,否则不变,再更新基数为这个数,继续余下一个数作比较,直到最后一个树,输出答案。 AC代码:
|
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 | -2024/12/28 17:27:32- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |
数据统计 |