力扣2438.二的幂数组中查询范围内的乘积
-
lowbit求所有2的幂
- accumulate函数(begin,end,start,way)
- 求和/积的方式
- 求积并取模
-
const int N = 1e9 + 7; class Solution { public: int lowbit(int x) { return x & -x; } vector<int> productQueries(int n, vector<vector<int>>& queries) { vector<int> powers; while(n) { int t = lowbit(n); n -= t; powers.emplace_back(t); } vector<int> res; for(auto v:queries) { int l = v[0]; int r = v[1]; //accumulate的用法 int product = accumulate(powers.begin() + l,powers.begin() + r + 1, 1 , [](int x,int y) {return (long long)x*y %N ;} ); res.emplace_back(product); } return res; } };
本站资源均来自互联网,仅供研究学习,禁止违法使用和商用,产生法律纠纷本站概不负责!如果侵犯了您的权益请与我们联系!
转载请注明出处: 免费源码网-免费的源码资源网站 » 力扣2438.二的幂数组中查询范围内的乘积
发表评论 取消回复