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

接网站开发外包做电源的网站

接网站开发外包,做电源的网站,已有网站做google推广,各大网站代下单怎么做思路: 以数位贡献的思路来写这题, 统计每一位上为 1 的个数: 对于第 k 位,统计有多少个数在这一位上为 1,记作 cnts[k] 枚举每个数,逐位分析它对整体的贡献(即与其它数交互时的和)…

思路:

以数位贡献的思路来写这题,

  • 统计每一位上为 1 的个数

    • 对于第 k 位,统计有多少个数在这一位上为 1,记作 cnts[k]

  • 枚举每个数,逐位分析它对整体的贡献(即与其它数交互时的和)

    • 如果第 k 位为 1:

      • & 中只有其他第 k 位为 1 的数才会产生贡献:共 cnts[k] - 1

      • | 中其他所有 n - 1 个数都可以贡献

      • 总和为:

        (1≪k)×((n−1)+(cnts[k]−1))
    • 如果第 k 位为 0:

      • & 无贡献

      • | 仅与第 k 位为 1 的数有贡献(共 cnts[k] 个)

      • 总和为:

        (1≪k)×cnts[k]
  • 总贡献除以 2,避免重复计算每对 (i,j)

  • 最后加上所有数本身的魔力值。

(数位贡献)

时间复杂度:O(n)

代码:

#include<bits/stdc++.h>
using namespace std;
using ll = long long;int main() {int n;cin >> n;vector<ll> a(n);vector<ll> cnts(30, 0);for (int i = 0; i < n; ++i) {cin >> a[i];for (int k = 0; k < 30; ++k) {if ((a[i] >> k) & 1) cnts[k]++;}}ll ans = 0;for (int i = 0; i < n; ++i) {for (int k = 0; k < 30; ++k) {if ((a[i] >> k) & 1) {ans += (1LL << k) * ((n - 1) + (cnts[k] - 1));} else {ans += (1LL << k) * cnts[k];}}}ans /= 2;  // 每对重复计算了两次for (ll val : a) ans += val;cout << ans << endl;return 0;
}

http://www.dtcms.com/a/556469.html

相关文章:

  • 建设卒中中心几个网站宁波网站优化公司
  • 网站模板安装教程网站推广做招商加盟
  • 和规划网站如何互联网营销师主要做什么
  • 海宁市住房和城乡规划建设局网站无锡有名的设计公司
  • 瑞安机械网站建设做个游戏网站多少钱
  • 百度推广建设网站是不是合发满洲里建设局网站
  • 网站关键词 公司网站怎么做图片动态
  • 米拓做网站图片在哪里删掉上海网站建设推荐秒搜科技
  • 易书网上书城网站建设方案网站建设研究的意义
  • 网站建设中的财务预算网站优化锚文本链接之精髓
  • 做有源代码的网站有什么好处自己做抽奖网站违法吗
  • 制作公司网站要多少钱全国当先的网络建站推广
  • 手机企业网站源码广告链接网页怎么做的
  • h5网站怎么做的有关网站开发的国外书籍
  • 烟台企业建站系统模板淘宝开店后怎么运营
  • 公司网站建设的会计分录郑州十大网站建设公司
  • 做网站该去哪找客户网址ip地址查询工具
  • 个人备案网站放什么手续中粮我买网是哪个公司做的网站
  • 西安哪家公司网站做的好如何查询logo是否已经被注册
  • 好网站范例discuz插件
  • 网站注册时间查询什么网页可以做网站
  • 中卫网站制作公司报价wordpress 搭建多站点
  • 国内精美网站界面网址网站建设类论文
  • 做毕业设计免费网站艺之都网站建设微信app开发
  • 国内最大的网站制作公司wordpress页面转移
  • 触屏版手机网站天水建网站
  • 做网站的好框架营销推广型网站价格
  • 网站建设经费方案湖北建站
  • 做爰全过程免费网站的视频教程营销型网站建设是什么意思
  • 佛山市公司网站制作啥都能看的浏览器