【Codeforces】CF 165 E Compatible Numbers(状压dp)
题目
传送门: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)的更多相关文章
- Codeforces Gym 100015F Fighting for Triangles 状压DP
Fighting for Triangles 题目连接: http://codeforces.com/gym/100015/attachments Description Andy and Ralph ...
- 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 ...
- codeforces 342D Xenia and Dominoes(状压dp+容斥)
转载请注明出处: http://www.cnblogs.com/fraud/ ——by fraud D. Xenia and Dominoes Xenia likes puzzles ...
- Codeforces 375C - Circling Round Treasures(状压 dp+最短路转移)
题面传送门 注意到这题中宝藏 \(+\) 炸弹个数最多只有 \(8\) 个,故考虑状压,设 \(dp[x][y][S]\) 表示当前坐标为 \((x,y)\),有且仅有 \(S\) 当中的物品被包围在 ...
- Codeforces Beta Round #16 E. Fish (状压dp)(概率dp)
Codeforces Beta Round #16 (Div. 2 Only) E. Fish 题目链接:## 点击打开链接 题意: 有 \(n\) 条鱼,每两条鱼相遇都会有其中一只吃掉对方,现在给你 ...
- CF401D Roman and Numbers 状压DP
CF401D 题意翻译 将n(n<=10^18)的各位数字重新排列(不允许有前导零) 求 可以构造几个mod m等于0的数字 题目描述 Roman is a young mathematicia ...
- codeforces gym #101161H - Witcher Potion(状压DP)
题目链接: http://codeforces.com/gym/101161/attachments 题意: 总共有n瓶药可供选择 每瓶药可以增加$e_i$点体力,和$p_i$点毒性 每分钟消耗1点毒 ...
- Codeforces 580D Kefa and Dishes(状压DP)
题目大概说要吃掉n个食物里m个,吃掉各个食物都会得到一定的满意度,有些食物如果在某些食物之后吃还会增加满意度,问怎么吃满意度最高. dp[S][i]表示已经吃掉的食物集合是S且刚吃的是第i个食物的最大 ...
- CodeForces 385 D.Bear and Floodlight 状压DP
枚举灯的所有可能状态(亮或者不亮)(1<<20)最多可能的情况有1048576种 dp[i]表示 i 状态时灯所能照射到的最远距离(i 的二进制中如果第j位为0,则表示第j个灯不亮,否则就 ...
随机推荐
- 多重条件判断SQL:用于用户名称,密码,权限的检测和判断
string sqlstr = "select count(*) from tb_admin where 用户名='"+UserName+"'and 密码='" ...
- magento的xml文件解读
其中显示页面的getChildHtml(’')函数是取xml文件中的block中的name属性的:
- Python高手之路 ------读书有感
最近忙中偷闲把前些年买的<Python高手之路>翻了出来,大致看完了一遍,其中很多内容并不理解,究其原因应该是实践中的经验不足,而这对于现如今的我仍是难以克服的事情,对此也就只能说是看会了 ...
- pandas.read_csv 参数 index_col=0
index_col : int or sequence or False, default None 用作行索引的列编号或者列名,如果给定一个序列则有多个行索引. 如果文件不规则,行尾有分隔符,则可以 ...
- Sublime 下配置vim模式 + VintageEx-master下载地址
VintageEx-master下载地址: 官方地址:https://github.com/SublimeText/VintageEx 百度云链接: http://pan.baidu.com/s ...
- hdu5228
bc41第一题 德州扑克的背景,给出五张牌,问最少要换多少张牌能凑齐同花顺 其实很水,数据量很小,随便暴力,越粗暴越好,然后我wa了一发因为没有看全题目,10\11\12\13\1也是一组同花顺``` ...
- matplotlib的颜色及线条控制
refer to: https://www.cnblogs.com/darkknightzh/p/6117528.html
- ES6必知必会 (四)—— Symbol、Set和Map
Symbol 1.Symbol 是 ES6 引入了一种新的原始数据类型,表示独一无二的值.它是 JavaScript 语言的第七种数据类型,前六种分别是:undefined.null.布尔值(Bool ...
- event store
Event Store The documentation has now moved to the wiki in this repository. For a quick start, look ...
- 清理IE和使用历史痕迹
清除IE临时文件的Batch脚本 @echo off title: IE temporary file deleter echo 正在 清除Internet临时文件 ............ RunD ...