HDU 4901(杭电多校训练#3 1005题)The Romantic Hero(DP)
题目地址:HDU 4901
这题没想到最后竟然可以做出来。。
。。
这题用了两次DP,先从前往后求一次异或的。再从后往前求一次与运算的。
各自是
1:求异或的时候,定义二维数组huo[1000][1024],前者指第几位,后者是哈希的思想。若huo[x][y]=2则表示最右边的数为第x位时,异或值为y的出现了两次,须要再定义一个hash数组。来保存前面出现的全部情况。再找有多少位的时候,用hash数组中出现的全部的值与当前的第x位的数字进行异或。
2:求与的时候,定义二维数组yu[1000][1024]。同异或的差点儿相同,只是这里的位数是指从这位往后的全部的情况。而异或的是指必须包括该位。
因为与运算本身就是求的全部的情况,不用再定义hash数组。
3:然后从前往后開始匹配。仅仅要用huo[x]与yu[x+1]进行匹配就好了。假设两者出现了同样的异或值,那就将次数相乘。
终于的答案即是正确答案。
注意。在运算的过程中数组里的数会出现爆long long的情况。。所以须要每一步都要求余。。
(由于这个而错了好几次。。)
代码例如以下。
#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
__int64 huo[1003][1125], yu[1003][1125], a[1013], _hash[1003][1030];
const int mod=1e9+7;
int main()
{
__int64 t, n, i, j, k;
__int64 s;
scanf("%I64d",&t);
while(t--)
{
s=0;
memset(huo,0,sizeof(huo));
memset(yu,0,sizeof(yu));
scanf("%I64d",&n);
for(i=1; i<=n; i++)
{
scanf("%I64d",&a[i]);
}
memset(_hash,0,sizeof(_hash));
for(i=1; i<=n; i++)
{
for(j=0; j<=1024; j++)
{
if(_hash[i-1][j])
{
_hash[i][a[i]^j]+=_hash[i-1][j];
_hash[i][a[i]^j]%=mod;
huo[i][a[i]^j]+=_hash[i-1][j];
huo[i][a[i]^j]%=mod;
_hash[i][j]+=_hash[i-1][j];
_hash[i][j]%=mod;
}
}
_hash[i][a[i]]++;
huo[i][a[i]]++;
}
for(i=n; i>=1; i--)
{
for(j=0; j<=1024; j++)
{
if(yu[i+1][j])
{
yu[i][a[i]&j]+=yu[i+1][j];
yu[i][a[i]&j]%=mod;
yu[i][j]+=yu[i+1][j];
yu[i][j]%=mod;
}
}
yu[i][a[i]]++;
}
for(i=1; i<=n; i++)
{
for(j=0; j<=1024; j++)
{
if(huo[i][j]&&yu[i+1][j])
{
s=(s+huo[i][j]*yu[i+1][j])%mod;
}
}
}
printf("%I64d\n",s);
}
return 0;
}
HDU 4901(杭电多校训练#3 1005题)The Romantic Hero(DP)的更多相关文章
- HDU 4920(杭电多校训练#5 1010 题) Matrix multiplication(不知道该挂个什么帽子。。。)
题目地址:pid=4920">HDU 4920 对这个题简直无语到极点. . .竟然O(n^3)的复杂度能过....方法有三.. 1:进行输入优化和输出优化. . (前提是你的输入优化 ...
- HDU 4941 Magical Forest(map映射+二分查找)杭电多校训练赛第七场1007
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4941 解题报告:给你一个n*m的矩阵,矩阵的一些方格中有水果,每个水果有一个能量值,现在有三种操作,第 ...
- HDU 4902 Nice boat 2014杭电多校训练赛第四场F题(线段树区间更新)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4902 解题报告:输入一个序列,然后有q次操作,操作有两种,第一种是把区间 (l,r) 变成x,第二种是 ...
- HDU 4864 Task (贪心+STL多集(二分)+邻接表存储)(杭电多校训练赛第一场1004)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4864 解题报告:有n台机器用来完成m个任务,每个任务有一个难度值和一个需要完成的时间,每台机器有一个可 ...
- 【单调栈】hdu 6319 杭电多校Problem A. Ascending Rating
http://acm.hdu.edu.cn/showproblem.php?pid=6319 从后往前更新,维护一个递减单调栈(队列) 最近很多题都是单调栈... #define _CRT_SECUR ...
- HDU 4970(杭电多校#9 1011题)Killing Monsters(瞎搞)
题目地址:HDU 4970 先进行预处理.在每一个炮塔的火力范围边界标记一个点. 然后对每一个点的伤害值扫一遍就能算出来. 然后在算出每一个点到终点的总伤害值,并保存下来,也是扫一遍就可以. 最后在询 ...
- HDU 4968(杭电多校#9 1009题)Improving the GPA (瞎搞)
题目地址:HDU 4968 这题的做法是全部学科的学分情况枚举,然后推断在这样的情况下是否会符合平均分. 直接暴力枚举就可以. 代码例如以下: #include <cstring> #in ...
- [2019杭电多校第一场][hdu6583]Typewriter(后缀自动机&&dp)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6583 大致题意是说可以花费p在字符串后添加一个任意字符,或者花费q在字符串后添加一个当前字符串的子串. ...
- 2018杭电多校第三场1003(状态压缩DP)
#include<bits/stdc++.h>using namespace std;const int mod =1e9+7;int dp[1<<10];int cnt[1& ...
随机推荐
- jcarousellite 实现图片列表滚动
jcarousel Lite与jcarousel 相比去掉了皮肤的约束,可以自定义的设置前后按钮和选项卡按钮,生成的html更加简洁,文件更小(2k) 下载链接:http://www.gmarwaha ...
- RecordSet .CacheSize, Properties,CurserType,PageSize
使用 CacheSize 属性可以控制一次要从提供者那里将多少个记录检索到本地内存中.例如,如果 CacheSize 为 10,首次打开 Recordset 对象后,提供者将把前 10 个记录检索到本 ...
- EOF
Process to end of file 就是处理到文件的结束 以经典的 A + B Problem 为例 把每一行的两个数字加起来,然后打印出来,直到文件末尾 c 语言表示:
- 【C语言】测试系统各数据类型大小代码
测试各系统不同数据类型大小代码 一.相关基础知识 不同环境下各数据类型大小可能不相等,(某些环境下,类型带下可以选择)故测了就知道! 二.具体内容 三.分析总结 四.实例测试 #include< ...
- the design of everyday things
Design principles: Conceptual models Feedback Constraints Affordances All are important. This is wha ...
- Hadoop 学习笔记 (十) MapReduce实现排序 全局变量
一些疑问:1 全排序的话,最后的应该sortJob.setNumReduceTasks(1);2 如果多个reduce task都去修改 一个静态的 IntWritable ,IntWritable会 ...
- Tomcat架构(四)
8标准覆盖机制J2SE 1.4 and 1.5 都包含了一个XML处理解析器的Java API .Bootstrap 类加载器加载这个解析器的类文件,所以这个解析器会优先于任何一个安装在CLASSPA ...
- HTTP-304 NOT Modified
http://www.douban.com/note/161120791/ http://blog.sina.com.cn/s/blog_4c98b9600100jd4z.html http://ww ...
- Redis3在CENTOS6上的安装配置
重温一下,这次找了个简单的安装. 测试过程很顺利哟. 参考URL: http://www.linuxidc.com/Linux/2015-07/119567.htm 一.介绍 redis在做数据库缓存 ...
- 基于springMVC+springSecurity3.x+Mybaits3.x的权限系统,,开放源码,支持开源
原文地址:http://blog.csdn.net/mmm333zzz/article/details/16863543/