蓝桥杯第一场强者挑战赛(C)SOSdp

之前在cf上面接触过SOSdp(子集dp),这里就碰到了。

      

思路: 异或运算即非进位加法运算,因此如果a_{i} + a_{j}需要进位的话,那么就无法满足题意,因此条件弱化为a_{i} + a_{j}不需要进位,也就是不存在同一位上面都是1。也就是说,对于a_{i}而言,a_{i}中为1的地方,其他数不能为1,也就是说其对答案的贡献为((1 << 20) - 1) \bigoplus a[i]的子集的个数。

        

#include <iostream>
using namespace std;
// SOS dp
int dp[(1 << 21)];
#define int long long
const int N = 21;
signed main()
{
	int n;
	cin >> n;
	int a[n];
	for(int i = 0 ; i <n ; i ++){
		cin >> a[i];
		dp[a[i]]++;
	}    
	int ans = 0;
	for(int i = 0;i < N; ++i) {
	    for(int mask = 0; mask < (1 << N); mask++){
	  	  if(mask & (1 << i))
	        dp[mask] += dp[mask^(1 << i)];
		}
	}
	for(int i = 0 ; i < n ; i ++){
	    ans += dp[(1 << N) - 1 - a[i]];
	}
	cout << ans;
  return 0;
}

相关推荐

  1. 算法赛第4小白入门赛&强者挑战赛

    2023-12-13 05:56:04       35 阅读
  2. 第 6 强者挑战赛 谁是帕鲁|数位DP模板

    2023-12-13 05:56:04       15 阅读
  3. 第一

    2023-12-13 05:56:04       16 阅读
  4. 第十一届省赛第一真题

    2023-12-13 05:56:04       20 阅读

最近更新

  1. TCP协议是安全的吗?

    2023-12-13 05:56:04       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2023-12-13 05:56:04       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2023-12-13 05:56:04       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2023-12-13 05:56:04       18 阅读

热门阅读

  1. .NET6 RabbitMQ自动重连

    2023-12-13 05:56:04       40 阅读
  2. 使用elasticsearch-dump工具备份ES数据库

    2023-12-13 05:56:04       42 阅读
  3. Android & iOS - Android Studio/Xcode历史版本下载

    2023-12-13 05:56:04       44 阅读
  4. Flink之状态编程

    2023-12-13 05:56:04       34 阅读
  5. 实现CompletableFuture的返回数据,放入每个list中

    2023-12-13 05:56:04       36 阅读
  6. Audio Signal (MATLAB)代码学习——常见问题4

    2023-12-13 05:56:04       31 阅读
  7. 【Ubuntu】linux常用的录屏软件

    2023-12-13 05:56:04       38 阅读
  8. Ubuntu 22.04 安装 OCI CLI

    2023-12-13 05:56:04       29 阅读
  9. 在React中使用动态图标

    2023-12-13 05:56:04       41 阅读
  10. 什么是PHP的动态类型?

    2023-12-13 05:56:04       41 阅读