Day56力扣打卡

打卡记录

在这里插入图片描述
在这里插入图片描述

数对统计(DP状态压缩)

参考文献

#include <bits/stdc++.h>


using namespace std;


void solve(){
   
    int n;
    cin >> n;

    map<int, int> mapp;
    vector<int> a(n);
    for (auto& x : a){
   
        cin >> x;
        mapp[x] ++;
    }

    vector<array<long long, 20>> dp(1 << 20);
    int mask = (1 << 20) - 1;
    for (int i = 0; i <= mask; ++i){
   
        if (i & 1){
   
            dp[i][0] = mapp[i] + mapp[i ^ 1];
        }
        else{
   
            dp[i][0] = mapp[i];
        }
        for (int j = 1; j < 20; ++j){
   
            if ((i >> j) & 1){
   
                dp[i][j] = dp[i][j - 1] + dp[i ^ (1 << j)][j - 1];
            }
            else{
   
                dp[i][j] = dp[i][j - 1];
            }
        }
    }

    long long ans = 0;
    for (auto& x : a){
   
        ans += dp[mask ^ x][19];
    }

    cout << ans << '\n';

}



int main(){
   
    ios::sync_with_stdio(false), cin.tie(0), cout.tie(0);
    int tc = 1;




   // cin >> tc;

    while (tc--){
   
        solve();
    }

    return 0;
}

相关推荐

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2023-12-11 09:48:03       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2023-12-11 09:48:03       100 阅读
  3. 在Django里面运行非项目文件

    2023-12-11 09:48:03       82 阅读
  4. Python语言-面向对象

    2023-12-11 09:48:03       91 阅读

热门阅读

  1. 【数据结构】堆的应用(小根堆)

    2023-12-11 09:48:03       52 阅读
  2. BBS项目

    2023-12-11 09:48:03       53 阅读
  3. 机器人集群控制算法概述

    2023-12-11 09:48:03       51 阅读
  4. 实验五 Spring Boot项目开发

    2023-12-11 09:48:03       54 阅读
  5. 开源项目Cesium3DTilesConverter的OSGBConvert.cpp代码分析

    2023-12-11 09:48:03       63 阅读
  6. 【无标题】

    2023-12-11 09:48:03       62 阅读
  7. 什么是css初始化

    2023-12-11 09:48:03       57 阅读
  8. leetcode每日一题38

    2023-12-11 09:48:03       58 阅读
  9. 在Vue 3中如何禁止网页返回到上一页

    2023-12-11 09:48:03       53 阅读
  10. Python基础期末复习 新手

    2023-12-11 09:48:03       56 阅读
  11. 程序员常用英文单词

    2023-12-11 09:48:03       35 阅读