题目链接

  • 题意:
    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相关推荐

  1. 【BZOJ3866】The Romantic Hero DP

    [BZOJ3866]The Romantic Hero 题意:一个序列,从中选取两个子序列S和T,满足S中所有元素都在T左边,并且S中所有数的xor和=T中所有数的and和,求方案数.n<=10 ...

  2. 【bzoj3866】The Romantic Hero dp

    题目描述 给你n个数,从中选出两个不相交非空集合S和T,使得S中的每一个元素都在T集合的前面,并且S集合中的所有数的亦或等于T集合中的所有数的与,求方案数 mod 10^9+7. 输入 The fir ...

  3. 【英语学习】【WOTD】canker 释义/词源/示例

    文章目录 Podcast canker v. [KANG-ker] Definition Did You Know? Examples Podcast canker podcast canker v. ...

  4. 2014多校联合四(HDU 4901 HDU 4902 HDU 4905)

    HDU 4901 The Romantic Hero 题意: 一串数字a  找一个位置分开  前面为S'后面为T'  从这两个集合中分别选出子集S和T  使得S中元素的"异或"值等 ...

  5. bzoj 3864: Hero meet devil [dp套dp]

    3864: Hero meet devil 题意: 给你一个只由AGCT组成的字符串S (|S| ≤ 15),对于每个0 ≤ .. ≤ |S|,问 有多少个只由AGCT组成的长度为m(1 ≤ m ≤ ...

  6. Flutter Hero 实现组件跨界面跳动效果

    感谢:https://juejin.im/post/5c4dae0de51d456e41391586 脑图先行: 今天算是完成了第一个flutter练手项目,真的佩服这个UI设计,简直了!给出链接,好 ...

  7. 【Flutter】Hero 动画 ( Hero 实现径向动画 | Hero 组件 createRectTween 设置 )

    文章目录 ◯.Hero 构造函数 一.圆形方形组件 二.创建页面 1 的组件 ( Hero 组件 1 ) 三.创建页面 2 的组件 ( Hero 组件 2 ) 四.完整代码示例 五.相关资源 ◯.He ...

  8. 【Flutter】Hero 动画 ( Hero 动画使用流程 | 创建 Hero 动画核心组件 | 创建源页面 | 创建目的页面 | 页面跳转 )

    文章目录 ◯.Hero 动画简介 一.创建 Hero 动画核心组件 二.创建源页面 三.创建目的页面 四.页面跳转 五.完整代码示例 六.相关资源 ◯.Hero 动画简介 Hero Widget 动画 ...

  9. java星际小战_首届中国星际战队联赛:TSG夺冠,小hero刘建宏大战惊天地泣鬼神...

    原标题:首届中国星际战队联赛:TSG夺冠,小hero刘建宏大战惊天地泣鬼神 导读:由SCboy主办的中国首届星际争霸战队联赛最终是以TSG战队惊险夺冠而落幕,总决赛的精彩程度令人始料未及. 半决赛,& ...

最新文章

  1. Android组件框架:Android组件管理者ActivityManager
  2. java文本区显示在右边_怎么让文本区从右边开始显示文本
  3. 焊盘脱落怎么办?莫慌,现在是飞线打圈圈教学时间
  4. Jsrender初体验
  5. vue4 库模式打包_Steam“小模式”游戏库回归 界面轻快简洁可随时切换
  6. 台达b3伺服参数设置方法_台达伺服基本参数设置
  7. C语言 输出数组中的全部元素的三种方法
  8. visio教程仓库流程图_教你使用visio 2013绘制产品流程图
  9. ppt怎么把图片做成翻书效果_怎么把在PPT中插入的图片效果弄成翻书的样子啊?...
  10. java 生成缩略图_java实现图片生成缩略图
  11. 【软件工程】决策表和决策树
  12. 树莓派 python 驱动 lcd tft spi 1.8寸 ST7735S
  13. Java执行引擎工作原理:方法调用
  14. 春考天津计算机知识点资料,天津春季高考统一考试计算机基础科目考试大纲
  15. 从源码角度浅谈IRP
  16. 基于SSM的商城项目项目源码+实验报告
  17. k-近邻算法实现手写数字识别系统
  18. 基于webrtc的视频聊天室(四)之用户设计
  19. echart 柱状图横坐标文字过长,如何旋转
  20. 停车场管理系统程序设计c语言,C语言综合程序设计停车场管理系统

热门文章

  1. CentOS8安装U盘制作
  2. 模拟黑洞图像_通过模拟计算,研究团队获得了更加清晰、锐利的黑洞图像
  3. 使用腾讯云存储桶(COS)托管静态网站
  4. laravel中config函数的使用
  5. 我非常渴望结交同行业的朋友
  6. Vue之抽象节点VNode
  7. vs2017+libsodium
  8. GitHub 私有库免费后,一大波羊毛党正在赶来……
  9. 货币兑换表设计mysql_不同币种换汇及汇率数据库表结构设计
  10. 1 运筹笔记-随机规划(Stochastic Programming)