cf——Sasha and a Bit of Relax(dp,math)
关于异或运算,是可以求前缀和的。还有一些异或运算的性质
0^a=a;
交换律 a^b=b^a
结合律 a^(b^c)=(a^b)^c
分配率 a^(b+c)=a^b+a^c
自反律 a^b^b=a
判断两个数是否相等 a^b=0
这个题真的学到好多
要找 al⊕al+1⊕…⊕amid=amid+1⊕amid+2⊕…⊕ar,即
0=al⊕al+1⊕…⊕amid⊕amid+1⊕amid+2⊕…⊕ar;
然后用一个sum数组保留前缀异或。
对于要求r-l+1是偶数,那么l,r一定不同奇偶。
只要找(l-1)+r同奇偶就可以了,枚举r从1-n。
#include <iostream>
using namespace std;
const int maxn=<<+;
//const int maxn=1<<21;
int dp[][maxn];
int main()
{
int n;scanf("%d",&n);
dp[][]=;
long long ans=;
int num=;
for(int i=;i<=n;i++)
{
int temp;scanf("%d",&temp);
num=num^temp;
ans+=dp[i%][num];
dp[i%][num]++; }
cout <<ans<<endl;
return ;
}
对了还有一个注意的就是左移的时候1<<21+5=1<<26;(1<<21)+5这样才对
al⊕al+1⊕…⊕amid=amid+1⊕amid+2⊕…⊕ar
cf——Sasha and a Bit of Relax(dp,math)的更多相关文章
- 【CF1247E】Rock Is Push(DP,二分)
题意:有一个n*m的方格,每一格可能为空也可能有石头,要从(1,1)走到(n,m),每次可以往右或往下走 每次走的时候都会将自己面前的所有石头向移动方向推一格,如果碰到了边界就推不过去 问方案数模1e ...
- 【NOIP2016】换教室(DP,期望)
题意: 对于刚上大学的牛牛来说, 他面临的第一个问题是如何根据实际情况中情合适的课程. 在可以选择的课程中,有2n节课程安排在n个时间段上.在第 i ( 1≤ i≤n)个时同段上, 两节内容相同的课程 ...
- CF1174E Ehab and the Expected GCD Problem(DP,数论)
题目大意:对于一个序列,定义它的价值是它的所有前缀的 $\gcd$ 中互不相同的数的个数.给定整数 $n$,问在 $1$ 到 $n$ 的排列中,有多少个排列的价值达到最大值.答案对 $10^9+7$ ...
- [Luogu2600]合并神犇(dp,贪心)
[Luogu2600]合并神犇 题目背景 loidc来到了NOI的赛场上,他在那里看到了好多神犇. 题目描述 神犇们现在正排成一排在刷题.每个神犇都有一个能力值p[i].loidc认为坐在附近的金牌爷 ...
- 【Cf #290 B】Fox And Jumping(dp,扩展gcd)
根据裴蜀定理,当且仅当选出来的集合的L[i]的gcd等于1时,才能表示任何数. 考虑普通的dp,dp[i][j]表示前i个数gcd为j的最少花费,j比较大,但状态数不多,拿个map转移就好了. $ \ ...
- 【CodeForces 261B】Maxim and Restaurant(DP,期望)
题目链接 第一种解法是$O(n^3*p)$的:f[i][j][k]表示前i个人进j个人长度为k有几种方案(排列固定为123..n时).$f[i][j][k]=f[i-1][j][k]+f[i-1][j ...
- [HRBUST1472]Coin(dp,计数)
题目链接:http://acm-software.hrbust.edu.cn/problem.php?id=1472 题意:给n个硬币,面值随意.问恰好凑成m元的种类数(去掉重复). dp(i,j,k ...
- [HAOI2018]奇怪的背包 (DP,数论)
[HAOI2018]奇怪的背包 \(solution:\) 首先,这一道题目的描述很像完全背包,但它所说的背包总重量是在模P意义下的,所以肯定会用到数论.我们先分析一下,每一个物品可以放无数次,可以达 ...
- [CQOI2011]放棋子 (DP,数论)
[CQOI2011]放棋子 \(solution:\) 看到这道题我们首先就应该想到有可能是DP和数论,因为题目已经很有特性了(首先题面是放棋子)(然后这一题方案数很多要取模)(而且这一题的数据范围很 ...
随机推荐
- MySQL升级教程(CentOS)
1.支持的升级方式 原地升级(In-Place Upgrade):直接替换二进制文件(即直接yum update/rpm -Uvh升级rpm包)数据库目录等都不变. 逻辑升级(Logical Upgr ...
- free结果解释
free用于查询内存使用情况,不过其多个数值经常让人感到迷惑,下边对其结果各值进行解释. Mem 1862--总内存/1770--已使用内存/92--未使用内存/199--输出缓存/637--输入缓存 ...
- nginx test
nginx 1◆ /etc/init.d/httpd start yum install httpd -y 192.168.163.104 lsof -i :80 yu ...
- Win10系列:JavaScript页面导航
页面导航是在开发应用的过程中使用频率较高的技术,其中比较常用的导航方式有多页导航和页内导航,采用多页导航方式的应用程序包含一系列的页面,在一个页面中加入另一个页面的链接地址后,单击链接将跳转到指定页面 ...
- laravel composer 安装指定版本以及基本的配置
1 安装指定的 laravel版本 以下的案例是安装5.2版本 composer create-project laravel/laravel=5.2.* --prefer-dist 2 配置 优化相 ...
- JS-封装类或对象的最佳方案
JS封装类或对象的最佳方案 面向对象强大的优点之一是能够创建自己专用的类或者对象,封装一组属性和行为.抛开性能来说,JS要比面向对象语言如JAVA要灵活好用的多,组装数据结构很灵活方便.那么我们如何来 ...
- python-递归,二分查找
# print(list("胡辣汤")) # lst = ["河南话", "四川话", "东北", "山东&q ...
- bzoj2045
题解: 莫比乌斯反演经典题目 直接套公式好了 代码: #include<bits/stdc++.h> using namespace std; ; typedef long long ll ...
- Bootstrap--思维导图
Bootstrap--思维导图
- SQL-30 使用子查询的方式找出属于Action分类的所有电影对应的title,description
题目描述 film表 字段 说明 film_id 电影id title 电影名称 description 电影描述信息 CREATE TABLE IF NOT EXISTS film ( film_i ...