The Romantic Hero
题目链接
- 题意:
n个数,找到两个下标i和j(i < j),在1-i中选取若干个数的异或值等于在j-n中选取若干个数的按位与值,两个集合都非空,求满足条件的集合数有多少 - 分析:
对于一个i,如果知道左边所有的取值情况和右边所有的取值情况,乘机就是一部分答案,那么就是DP预处理出一侧的值的情况。
重点思考一下DP的状态表示:DP[i][j]表示以i位置数字为结尾、操作值为j的情况数,这里的情况是表示任意个数字可以组合出的和为j的情况数,如果不表示以i为结尾,那么就会出现重复。
为什么这样DP不会出现重复呢,从两个方面来像:对于dp[x][]和dp[y][],因为这两个状态的最大值不相同,所以数列不会相同,也就是说DP所表示的状态没有重叠;对于一个序列,它的计算结果只有一种,所以只属于dp[x][]的某一个状态,也不会重复(假如一个序列可以得到多个计算结果,那么就不能这样DP了,因为一个确定的序列可以属于多个状态)。
const int MAXN = 1024;int ipt[MAXN];
LL dp1[MAXN][MAXN], dp2[MAXN][MAXN], sum1[MAXN][MAXN], sum2[MAXN][MAXN];int main()
{int T, n;RI(T);FE(kase, 1, T){CLR(dp1, 0); CLR(sum1, 0);CLR(dp2, 0); CLR(sum2, 0);RI(n);REP(i, n)RI(ipt[i]);dp1[0][ipt[0]] = sum1[0][ipt[0]] = 1;FF(i, 1, n){REP(j, MAXN)dp1[i][j ^ ipt[i]] = (sum1[i - 1][j] + dp1[i][j ^ ipt[i]]) % MOD;dp1[i][ipt[i]]++;REP(j, MAXN)sum1[i][j] = (sum1[i - 1][j] + dp1[i][j]) % MOD;}dp2[n - 1][ipt[n - 1]] = sum2[n - 1][ipt[n - 1]] = 1;FED(i, n - 2, 0){REP(j, MAXN)dp2[i][j & ipt[i]] = (sum2[i + 1][j] + dp2[i][j & ipt[i]]) % MOD;dp2[i][ipt[i]]++;REP(j, MAXN)sum2[i][j] = (sum2[i + 1][j] + dp2[i][j]) % MOD;}LL ans = 0;REP(i, n - 1)REP(j, MAXN)ans = (ans + dp1[i][j] * sum2[i + 1][j]) % MOD;cout << ans << endl;}return 0;
}
The Romantic Hero相关推荐
- 【BZOJ3866】The Romantic Hero DP
[BZOJ3866]The Romantic Hero 题意:一个序列,从中选取两个子序列S和T,满足S中所有元素都在T左边,并且S中所有数的xor和=T中所有数的and和,求方案数.n<=10 ...
- 【bzoj3866】The Romantic Hero dp
题目描述 给你n个数,从中选出两个不相交非空集合S和T,使得S中的每一个元素都在T集合的前面,并且S集合中的所有数的亦或等于T集合中的所有数的与,求方案数 mod 10^9+7. 输入 The fir ...
- 【英语学习】【WOTD】canker 释义/词源/示例
文章目录 Podcast canker v. [KANG-ker] Definition Did You Know? Examples Podcast canker podcast canker v. ...
- 2014多校联合四(HDU 4901 HDU 4902 HDU 4905)
HDU 4901 The Romantic Hero 题意: 一串数字a 找一个位置分开 前面为S'后面为T' 从这两个集合中分别选出子集S和T 使得S中元素的"异或"值等 ...
- bzoj 3864: Hero meet devil [dp套dp]
3864: Hero meet devil 题意: 给你一个只由AGCT组成的字符串S (|S| ≤ 15),对于每个0 ≤ .. ≤ |S|,问 有多少个只由AGCT组成的长度为m(1 ≤ m ≤ ...
- Flutter Hero 实现组件跨界面跳动效果
感谢:https://juejin.im/post/5c4dae0de51d456e41391586 脑图先行: 今天算是完成了第一个flutter练手项目,真的佩服这个UI设计,简直了!给出链接,好 ...
- 【Flutter】Hero 动画 ( Hero 实现径向动画 | Hero 组件 createRectTween 设置 )
文章目录 ◯.Hero 构造函数 一.圆形方形组件 二.创建页面 1 的组件 ( Hero 组件 1 ) 三.创建页面 2 的组件 ( Hero 组件 2 ) 四.完整代码示例 五.相关资源 ◯.He ...
- 【Flutter】Hero 动画 ( Hero 动画使用流程 | 创建 Hero 动画核心组件 | 创建源页面 | 创建目的页面 | 页面跳转 )
文章目录 ◯.Hero 动画简介 一.创建 Hero 动画核心组件 二.创建源页面 三.创建目的页面 四.页面跳转 五.完整代码示例 六.相关资源 ◯.Hero 动画简介 Hero Widget 动画 ...
- java星际小战_首届中国星际战队联赛:TSG夺冠,小hero刘建宏大战惊天地泣鬼神...
原标题:首届中国星际战队联赛:TSG夺冠,小hero刘建宏大战惊天地泣鬼神 导读:由SCboy主办的中国首届星际争霸战队联赛最终是以TSG战队惊险夺冠而落幕,总决赛的精彩程度令人始料未及. 半决赛,& ...
最新文章
- Android组件框架:Android组件管理者ActivityManager
- java文本区显示在右边_怎么让文本区从右边开始显示文本
- 焊盘脱落怎么办?莫慌,现在是飞线打圈圈教学时间
- Jsrender初体验
- vue4 库模式打包_Steam“小模式”游戏库回归 界面轻快简洁可随时切换
- 台达b3伺服参数设置方法_台达伺服基本参数设置
- C语言 输出数组中的全部元素的三种方法
- visio教程仓库流程图_教你使用visio 2013绘制产品流程图
- ppt怎么把图片做成翻书效果_怎么把在PPT中插入的图片效果弄成翻书的样子啊?...
- java 生成缩略图_java实现图片生成缩略图
- 【软件工程】决策表和决策树
- 树莓派 python 驱动 lcd tft spi 1.8寸 ST7735S
- Java执行引擎工作原理:方法调用
- 春考天津计算机知识点资料,天津春季高考统一考试计算机基础科目考试大纲
- 从源码角度浅谈IRP
- 基于SSM的商城项目项目源码+实验报告
- k-近邻算法实现手写数字识别系统
- 基于webrtc的视频聊天室(四)之用户设计
- echart 柱状图横坐标文字过长,如何旋转
- 停车场管理系统程序设计c语言,C语言综合程序设计停车场管理系统