CF1010D Mars rover [位运算,DP]】的更多相关文章

题目传送门 Mars Rover 格式难调,题面就不放了. 分析: 今天考试的时候考了这道题目的加强版,所以来做. 其实也并不难,我们建立好树形结构以后先把初始权值全部求出,然后就得到了根节点的初始值.因为一次只修改一个点的值,所以我们只要自上而下根据位运算的种类得出每一个节点的值修改后是否会改变根节点的值就行了. Code: //It is made by HolseLee on 2nd Nov 2018 //CF1010D #include<cstdio> #include<cstr…
Mars rover 题目链接:http://codeforces.com/problemset/problem/1010/D 数据范围:略. 题解: 因为每次只改一个,改完之后改回去,这个性质很重要. 发现有些叶子更改了之后,整体的答案是不变的,因为会出现:他的父亲是$\&$操作但是另一个儿子是$0$这种... 故此,我们先算出一个节点都不更改时,每个节点的值. 之后我们通过位运算,对每一个节点维护一个$tag$表示这个节点更改会不会影响到根节点. 遍历即可,细节可以看代码. 代码: #inc…
CF1010D Mars rover 洛谷评测传送门 题目描述 Natasha travels around Mars in the Mars rover. But suddenly it broke down, namely - the logical scheme inside it. The scheme is an undirected tree (connected acyclic graph) with a root in the vertex 11 , in which every…
题目链接 位运算+\(DP\)=状压\(DP\)?(雾 \(a\&b>=min(a,b)\)在集合的意义上就是\(a\subseteq b\) 所以对每个数的子集向子集连一条边,然后答案就是这个\(DAG\)的最长链了,跑一遍拓扑排序就行了. 直接连边的复杂度是\(O(n^2)\),显然只能拿\(60'\). 题解里的连边方法我没怎么懂然后因为穷又不能看直播讲解 但是我拿到\(70\)分暴力分后(不要问我为什么有70)看了别人的代码,发现一个很巧妙的方法, 无需建图,\(DP\)的思想,我写…
[CodePlus2017]可做题 Time Limit: 10 Sec  Memory Limit: 512 MBSubmit: 87  Solved: 63[Submit][Status][Discuss] Description qmqmqm希望给sublinekelzrip出一道可做题.于是他想到了这么一道题目:给一个长度为n的非负整数序列ai,你需 要计算其异或前缀和bi,满足条件b1=a1,bi=bi?1 xor ai(i≥2).但是由于数据生成器出现了问题,他生成的序列a 的长度特…
[CF908E]New Year and Entity Enumeration 题意:给定$M=2^m-1$,我们称一个集合S是好的,当且仅当它满足:1.$\forall a\in S,a\  \mathrm{xor}\  M \in S$,2.$\forall a,b\in S,a\  \mathrm{and}\  b \in S$,3.$\forall a\in S,a\le M$. 现在给定集合T,求有多少个好的集合S,满足T是S的子集. m<=1000,|T|<=50. 题解:显然有了…
传送门 BZOJ没数据范围... 其实数据范围是这样的.. 前20%可以直接n^3暴力枚举每个区间 前40%可以考虑每一位,因为所有数每一位都是独立的,而和的期望=期望的和,那么可以枚举每一位,再枚举区间,最大 31*n*n 想到枚举每一位也就离正解不远了,可以dp, 对于xor有贡献的是区间xor值为1的区间,那么f[i]表示以i结尾的区间异或值为1的个数,那么xor就很好解决了 对于or,我们只需要找出所有的全为0的区间,拿总区间个数减去就好, 对于and,我们只需要找出所有全为1的区间即可…
题意: 给定一个二进制表示的n,让你找满足如下要求的数对(i,j)的个数 $0 \leqslant j \leqslant i \leqslant n$ $ i & n = i $ $ i & j = 0 $ 其中&代表按位与 题解: 打表发现对于单个i满足上述规律的j的数量为$2^{(num \ of \ 0 \ in(i)_2)}$ 因此对着n的二进制可以从后往前dp计算每一位能够贡献出多少个i,这些i能够贡献出多少0 #include <algorithm> #i…
http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1406 1406 与查询 题目来源: CodeForces 基准时间限制:2 秒 空间限制:131072 KB 分值: 80 难度:5级算法题 收藏 关注 有n个整数.输出他之中和x相与之后结果为x的有多少个.x从0到1,000,000 Input 第一行输入一个整数n.(1<=n<=1,000,000). 第二行有n个整数a[0],a[1],a[2],...a[n-1…
Given a range [m, n] where 0 <= m <= n <= 2147483647, return the bitwise AND of all numbers in this range, inclusive. For example, given the range [5, 7], you should return 4. 题解:如果m==n,那么答案就是m. 如果m<n,那么二进制最右边一位在最后的结果中肯定是0,那么就可以转化成子问题: rangeBi…