当前位置: 首页 > news >正文

3145. 大数组元素的乘积

3145. 大数组元素的乘积


题目链接:3145. 大数组元素的乘积

代码如下:

//参考链接:https://leetcode.cn/problems/find-products-of-elements-of-big-array/solutions/2774549/olog-shi-tian-fa-pythonjavacgo-by-endles-w2l4
class Solution 
{
public:vector<int> findProductsOfElements(vector<vector<long long>>& queries) {vector<int> res;for(auto& query:queries){auto er=sum_e(query[1]+1);auto el=sum_e(query[0]);res.push_back(pow(2,er-el,query[2]));}return res;}private:int pow(long long x,long long n,long long mod){long long res=1%mod;for(;n;n/=2){if(n%2){res=res*x%mod;}x=x*x%mod;}return res;}long long sum_e(long long k){long long res=0,n=0,count1=0,sum_i=0;for(long long i=__lg(k+1);i;i--){long long c=(count1<<i)+(i<<(i-1));// 新增的幂次个数if(c<=k){k-=c;res+=(sum_i<<i)+((i*(i-1)/2)<<(i-1));sum_i+=i;// 之前填的 1 的幂次之和count1++;// 之前填的 1 的个数n|=1LL<<i;// 填 1}}//最低位单独计算if(count1<=k){k-=count1;res+=sum_i;n|=1;// 最低位填 1}//剩余的 k 个幂次,由 n 的低 k 个 1 补充while(k--){res+=__builtin_ctzll(n);n&=n-1;// 去掉最低位的 1(置为 0)}return res;}
};

http://www.mrgr.cn/news/16881.html

相关文章:

  • 人工智能吞噬软件?
  • Pointnet++改进即插即用系列:全网首发ACConv2d|即插即用,提升特征提取模块性能
  • 企业内部配置一台DNS服务器
  • CohereForAI更新企业级开源模型 c4ai-command-r-08-2024和c4ai-command-r-plus-08-2024
  • Python画笔案例-025 绘制星光点点
  • React应用中的状态管理:Redux vs Context API
  • 【Netty】FastThreadLocal比ThreadLocal快之源码解析
  • 快速解决Web响应乱码
  • NASA数据集:50 m分辨率的雪水当量(SWE)地图的集合
  • C++:模拟实现list
  • Linux 常用命令 ulimit、uptime、curl、scp、dos2unix 提升开发和运维效率
  • 【数据科学项目实战】结合实际案例进行数据科学项目的设计与实现
  • VS实用的调试技巧
  • Flask的上下文管理流程
  • 【开关电源】数字交错式升压功率因数校正解析(1)
  • AI学习指南深度学习篇-门控循环单元中的门控机制
  • JavaEE第22节 TCP段(报文)结构剖析
  • Spark MLlib模型训练—回归算法 GLR( Generalized Linear Regression)
  • AWTK fscript 中的字符串扩展函数
  • 2.12 滑动条事件