一个简单的dp,比赛的时候太坚信自己的小聪明没用二维数组一直WA到死;

#include<cstdio>
#include<cstring>
#define maxn 1009
#define mod 1000000007
using namespace std; int num[maxn];
long long ci[maxn][],andci[maxn][];
bool vis[]; int main()
{
int t,n;
scanf("%d",&t);
while(t--)
{
scanf("%d",&n);
for(int i=; i<=n; i++)
scanf("%d",&num[i]);
memset(andci,,sizeof andci);
memset(ci,,sizeof ci);
long long ans=;
for(int i=; i<=n; i++)
{
ci[i][num[i]]++;
for(int j=; j<; j++)
{
if(ci[i-][j]>)
{
ci[i][j^num[i]]+=ci[i-][j];
}
ci[i][j]+=ci[i-][j];
ci[i][j]%=mod;
}
}
for(int i=n; i>; i--)
{
andci[i][num[i]]=;
vis[num[i]]=;
for(int j=; j<; j++)
{
if(andci[i+][j]>)
{
andci[i][j&num[i]]+=andci[i+][j];
if(andci[i][j&num[i]]>mod)andci[i][j&num[i]]%=mod;
vis[j&num[i]]=;
}
}
for(int j=; j<; j++)
{
ans+=(andci[i][j]*ci[i-][j])%mod;
ans%=mod;
}
for(int j=; j<; j++)
{
andci[i][j]+=andci[i+][j];
if(andci[i][j]>mod)andci[i][j]%=mod;
}
}
printf("%I64d\n",ans);
}
return ;
}

hdu 4901的更多相关文章

  1. HDU 4901(杭电多校训练#3 1005题)The Romantic Hero(DP)

    题目地址:HDU 4901 这题没想到最后竟然可以做出来.. .. 这题用了两次DP,先从前往后求一次异或的.再从后往前求一次与运算的. 各自是 1:求异或的时候,定义二维数组huo[1000][10 ...

  2. hdu 4901 划分序列使异或和==且和

    http://acm.hdu.edu.cn/showproblem.php?pid=4901 给定一个序列,要求选出两个集合,S和T,要求S中选中的元素的下标都要小于T中元素的下标.并且说S中元素的异 ...

  3. HDU 4901 The Romantic Hero

    The Romantic Hero Time Limit: 3000MS   Memory Limit: 131072KB   64bit IO Format: %I64d & %I64u D ...

  4. 2014多校第四场1005 || HDU 4901 The Romantic Hero (DP)

    题目链接 题意 :给你一个数列,让你从中挑选一些数组成集合S,挑另外一些数组成集合T,要求是S中的每一个数在原序列中的下标要小于T中每一个数在原序列中下标.S中所有数按位异或后的值要与T中所有的数按位 ...

  5. hdu 4901 The Romantic Hero (dp)

    题目链接 题意:给一个数组a,从中选择一些元素,构成两个数组s, t,使s数组里的所有元素异或 等于 t数组里的所有元素 位于,求有多少种构成方式.要求s数组里 的所有的元素的下标 小于 t数组里的所 ...

  6. HDU 4901 The Romantic Hero (计数DP)

    The Romantic Hero 题目链接: http://acm.hust.edu.cn/vjudge/contest/121349#problem/E Description There is ...

  7. HDU 4901 The Romantic Hero(二维dp)

    题目大意:给你n个数字,然后分成两份,前边的一份里面的元素进行异或,后面的一份里面的元素进行与.分的时候依照给的先后数序取数,后面的里面的全部的元素的下标一定比前面的大.问你有多上种放元素的方法能够使 ...

  8. HDU - 4901 The Romantic Hero(dp)

    https://vjudge.net/problem/HDU-4901 题意 给n个数,构造两个集合,使第一个集合的异或和等于第二个集合的相与和,且要求第一个集合的元素下标都小于第二个集合的元素下标. ...

  9. HDU 4901 The Romantic Hero 题解——S.B.S.

    The Romantic Hero Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Othe ...

随机推荐

  1. 20141030--SQL2008常用命令-1

    create database biao2--创建新的数据库 go use biao2 go create table shuiguo--创建表shuiguo ,create table创建表 ( 序 ...

  2. ubuntu bash提示找不到文件或目录

    我在ubuntu上安装好后交叉编译器,用tab键也可以找到这个交叉编译器,但执行的时候总是提示:bash:xxx找不到文件或目录. 解决方法:安装lib32z1 命令:apt-get install ...

  3. JQ中的html()、text()、val()的用法

    <input type="text" val=""> 用val(); <sapn>你好</sapn>  用text() &l ...

  4. JavaScript 内部对象

    欢迎访问我的个人博客:http://blog.cdswyda.com/ 原文文地址:JavaScript 内部对象

  5. 自制小工具监控wcf服务是否正常

    由于项目中有2个使用netTcpBinding的wcf服务经常出现无法提供服务的问题,一直找原因也找不到导致影响严重,更换InstanceContextMode和ConcurrencyMode配置也不 ...

  6. silverlight 用户浏览器未安装SL插件问题

    1.在Silverlight启动页面 <%@ Page Language="C#" AutoEventWireup="true" %> <!D ...

  7. PHP 5.3.X 连接MS SQL Server php_mssql.dll

    在网上搜索了一下PHP 5.3.X 连接SQL Server的办法,有人也遇到了这个问题 原来PHP 团队在PHP 5.3 中移除了SQL Server的驱动和库,而微软自己开发了针对PHP的SQL驱 ...

  8. QQ好友列表向左滑动出现置顶、删除--第三方开源--SwipeMenuListView

    SwipeMenuListView是在github上的第三方开源项目,该项目在github上的链接地址是:https://github.com/baoyongzhang/SwipeMenuListVi ...

  9. How to disable Passwords must meet complexity requirements[windows 7]

    The Password complexity is a Local Policy setting named "Passwords must meet complexity require ...

  10. Oracle 表的连接方式(2)-----HASH JOIN的基本机制2

    Hash算法原理 对于什么是Hash算法原理?这个问题有点难度,不是很好说清楚,来做一个比喻吧:我们有很多的小猪,每个的体重都不一样,假设体重分布比较平均(我们考虑到公斤级别),我们按照体重来分,划分 ...