题目

传送门:QWQ

分析

很难想到方向,但有方向了就很easy了。

我们如何减少不必要的计算?

如果我们知道了$ 100111 $的相容的数,$ 100101 $的相容数和他是完全一样的。

我们就靠着这个思想写一下就行了。

注意位运算优先级。

代码

 #include <bits/stdc++.h>
using namespace std;
const int maxn=<<, INF=(<<)-; int dp[maxn], a[maxn]; int main(){
int n;
scanf("%d", &n);
for(int i=; i<=n; i++)
scanf("%d", &a[i]); memset(dp,-,sizeof(dp));
for(int i=;i<=n;i++){
dp[INF&(~a[i])]=a[i];
// printf("%d %d\n", INF&(~a[i]),a[i]);
}
for(int i=INF; i>=; i--) {
if(dp[i]>) continue;
for(int j=;j<;j++) {
if(!(i &(<<j)) && dp[i|(<<j)]>) {
dp[i]=dp[i|(<<j)]; //printf("---- %d %d %d %d\n",i,j,a[i] &(1<<j),dp[a[i]&(1<<j)]);
break;
}
}
}
for(int i=;i<=n;i++)
printf("%d ",dp[a[i]]);
return ;
}

【Codeforces】CF 165 E Compatible Numbers(状压dp)的更多相关文章

  1. Codeforces Gym 100015F Fighting for Triangles 状压DP

    Fighting for Triangles 题目连接: http://codeforces.com/gym/100015/attachments Description Andy and Ralph ...

  2. Codeforces Round #235 (Div. 2) D. Roman and Numbers 状压dp+数位dp

    题目链接: http://codeforces.com/problemset/problem/401/D D. Roman and Numbers time limit per test4 secon ...

  3. codeforces 342D Xenia and Dominoes(状压dp+容斥)

    转载请注明出处: http://www.cnblogs.com/fraud/          ——by fraud D. Xenia and Dominoes Xenia likes puzzles ...

  4. Codeforces 375C - Circling Round Treasures(状压 dp+最短路转移)

    题面传送门 注意到这题中宝藏 \(+\) 炸弹个数最多只有 \(8\) 个,故考虑状压,设 \(dp[x][y][S]\) 表示当前坐标为 \((x,y)\),有且仅有 \(S\) 当中的物品被包围在 ...

  5. Codeforces Beta Round #16 E. Fish (状压dp)(概率dp)

    Codeforces Beta Round #16 (Div. 2 Only) E. Fish 题目链接:## 点击打开链接 题意: 有 \(n\) 条鱼,每两条鱼相遇都会有其中一只吃掉对方,现在给你 ...

  6. CF401D Roman and Numbers 状压DP

    CF401D 题意翻译 将n(n<=10^18)的各位数字重新排列(不允许有前导零) 求 可以构造几个mod m等于0的数字 题目描述 Roman is a young mathematicia ...

  7. codeforces gym #101161H - Witcher Potion(状压DP)

    题目链接: http://codeforces.com/gym/101161/attachments 题意: 总共有n瓶药可供选择 每瓶药可以增加$e_i$点体力,和$p_i$点毒性 每分钟消耗1点毒 ...

  8. Codeforces 580D Kefa and Dishes(状压DP)

    题目大概说要吃掉n个食物里m个,吃掉各个食物都会得到一定的满意度,有些食物如果在某些食物之后吃还会增加满意度,问怎么吃满意度最高. dp[S][i]表示已经吃掉的食物集合是S且刚吃的是第i个食物的最大 ...

  9. CodeForces 385 D.Bear and Floodlight 状压DP

    枚举灯的所有可能状态(亮或者不亮)(1<<20)最多可能的情况有1048576种 dp[i]表示 i 状态时灯所能照射到的最远距离(i 的二进制中如果第j位为0,则表示第j个灯不亮,否则就 ...

随机推荐

  1. pygame经典sprite精灵类

    import cStringIO, base64 import pygame from pygame.locals import * class Ball(pygame.sprite.Sprite): ...

  2. WebGL编程指南案例解析之多数据存储于一个缓冲区以及着色器通信

    //顶点着色器往片元着色器传值 //多个参数值存于一个缓冲对象中 var vShader = ` attribute vec4 a_Position; attribute float a_PointS ...

  3. C语言基础:函数指针 分类: iOS学习 c语言基础 2015-06-10 21:55 15人阅读 评论(0) 收藏

    函数指针:指向函数的指针变量. 函数名相当于首地址. 函数指针定义:返回值类型  (*函数指针变量名)(参数类型1,参数类型2,....)=初始值 函数指针类型:返回值类型  (*)(参数类型1,参数 ...

  4. [LeetCode&Python] Problem 867. Transpose Matrix

    Given a matrix A, return the transpose of A. The transpose of a matrix is the matrix flipped over it ...

  5. utf-8编码的csv文件,用excel打开乱码,解决办法,在输出前加 0xEF,0xBB,0xBF三个char

    转自 http://blog.csdn.net/zcmssd/article/details/6086649 是由于输出的CSV文件中没有BOM. 什么是BOM? 在UCS 编码中有一个叫做”ZERO ...

  6. CTF-练习平台-Misc之 妹子的陌陌

    二十五.妹子的陌陌 该图片后缀名为rar,发现里面有一个文本 但是解压需要密码,应为不知道是几位的没法爆破,观察图片后发现红色字体:“喜欢我吗.”尝试一下,居然是密码,将文本解压出来 内容如下: 嘟嘟 ...

  7. CTF密码学之摩斯密码

    通过不用的排列顺序来表达不用的英文字母,数字和标点符号,摩斯电码由.和_构成 字母 字符 电码符号 字符 电码符号 A ._ N _. B _... O _ _ _ C _._. P ._ _. D ...

  8. Properties类与配置文件

    //加载文件public static void testLoadProperties() throws Exception { Properties properties = new Propert ...

  9. 1920*1080分辨率和1080p,1080i的关系

    1080i和1080p是由美国电影电视工程师协会确定的高清标准格式,其中1080p被称为目前数字电视的顶级显示格式,这种格式的电视在逐行扫描下能够达到1920×1080的分辨率.受限制于存储介质(一部 ...

  10. MySQL账号安全设置

    ======================================================================== 推荐账号安全设置 在数据库服务器上严格控制操作系统的账 ...