题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5637

题意:有一个数x,你可以对x进行两种操作,1.反转x二进制其中任意一位2.x^y(y题目给出), 有n个数可以用来当y,有m组询问,每组询问两个数s,t,求

S=(∑i⋅zi) mod (1e9+7),其中zi是在第i次询问,通过两种操作把s变成t所需要的最小操作次数;

思路:s,t最大只有1e5相当于2^16左右,假设s^n1^n2^...^nk=t,那么转换到n1^n2^...^nk=s^t,也就是最小步数跟这两个数的异或值有关,那么预处理出所有1e5以内的异或值并且做到这个值所需要的最小步数,然后直接查询

 #include <stdio.h>
#include <iostream>
#include <string.h>
#include <algorithm>
#include <queue>
#include <cstdlib>
using namespace std;
#define P pair<int,int>
const int mod=1e9+;
int a[];
int ans[<<];
bool flag[<<];
int n,m;
void bfs(){
queue<pair<int,int> >q;
q.push(make_pair(,));
memset(flag,false,sizeof(flag));
flag[]=true;
while(!q.empty()){
P tmp=q.front();
q.pop();
int x=tmp.first;
ans[x]=tmp.second;
for(int i=;i<=n;i++){
if(!flag[tmp.first^a[i]]){
q.push(make_pair(tmp.first^a[i],tmp.second+));
flag[tmp.first^a[i]]=true;
}
}
for(int i=;i<=;i++){
if(!flag[tmp.first^(<<i)]){
flag[tmp.first^(<<i)]=true;
q.push(make_pair(tmp.first^(<<i),tmp.second+));
}
}
}
}
void pre(){
memset(ans,,sizeof(ans));
bfs();
}
void solve(){
long long ans_=;
scanf("%d %d",&n,&m);
for(int i=;i<=n;i++) scanf("%d",&a[i]);
pre();
for(int i=;i<=m;i++){
int s,t;
scanf("%d %d",&s,&t);
(ans_+=(i*ans[s^t]))%=mod;
}
printf("%lld\n",ans_);
}
int main(){
int T;
scanf("%d",&T);
while(T--){
solve();
}
return ;
}

HDOJ 5639 Transform的更多相关文章

  1. CSS3 3D立方体效果-transform也不过如此

    CSS3系列已经学习了一段时间了,第一篇文章写了一些css3的奇技淫巧,原文戳这里,还获得了较多网友的支持,在此谢过各位,你们的支持是我写文章最大的动力^_^. 那么这一篇文章呢,主要是通过一个3D立 ...

  2. 深入node之Transform

    Transform流特性 在开发中直接接触Transform流的情况不是很多,往往是使用相对成熟的模块或者封装的API来完成流的处理,最为特殊的莫过于through2模块和gulp流操作.那么,Tra ...

  3. CSS 3 学习——transform 3D转换渲染

    以下内容根据官方规范翻译,没有翻译关于SVG变换的内容和关于矩阵计算的内容. 一般情况下,元素在一个无景深无立体感的平面(flat plane)上渲染,这个平面就是其包含块所处的平面.同时,页面上的其 ...

  4. CSS 3学习——transform 2D转换

    首先声明一点,transform属性不为none的元素是它的定位子元素(绝对定位和固定定位)的包含块,而且对内创建一个新的层叠上下文. 注意:可以通过 transform-box 属性指定元素的那个盒 ...

  5. Hilbert-Huang Transform(希尔伯特-黄变换)

    在我们正式开始讲解Hilbert-Huang Transform之前,不妨先来了解一下这一伟大算法的两位发明人和这一算法的应用领域 Section I 人物简介 希尔伯特:公认的数学界“无冕之王”,1 ...

  6. 【CSS3动画】transform对文字及图片的旋转、缩放、倾斜和移动

    前言:之前我有写过CSS3的transform这一这特性,对于它的用法,还不是很透彻,今天补充补充,呵呵 你懂的,小司机准备开车了. a)再提一提transform的四个属性 ①旋转--->ro ...

  7. CSS3和javascript中的transform

    在javascript中,WebkitTransform 大概相当于 transform .transform 为标准,WebkitTransform 适用于Webkit浏览器.js中的WebkitT ...

  8. CALayer的transform属性

    先来与View比较一下 View:transform -> CGAffineTransformRotate... layer:transform -> CATransform3DRotat ...

  9. HDOJ 1009. Fat Mouse' Trade 贪心 结构体排序

    FatMouse' Trade Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) ...

随机推荐

  1. 国人如此浮躁为哪般? --- 我看2018年度AI圈八大造假事件华人独占6件

    国人如此浮躁为哪般? ---  我看2018年度AI圈八大造假事件华人独占6件 人工智能在2018年发展很快,取得了很多成绩:很多新的产品,框架,软硬件系统,层出不穷:以七巨头为首的业界头部企业也取得 ...

  2. WLST

    Master Note on WebLogic Server Scripting Tool (WLST) Usage, Sample Scripts and Known Issues Deployin ...

  3. IBGP默认的TTL值为255

    结论: 1.IBGP默认的TTL值为255 组网图: 抓包内容: 1.在AR1和AR2之间抓包,只显示BGP包,显示内容如下:

  4. C#字符串倒置函数的代码

    把内容过程比较常用的内容珍藏起来,下边内容内容是关于C#字符串倒置函数的内容. public static string Reverse(string ReverseString) { String ...

  5. Android 使用Glide加载网络图片等比例缩放

    在做android图片加载的时候,由于手机屏幕受限,很多大图加载过来的时候,我们要求等比例缩放,比如按照固定的宽度,等比例缩放高度,使得图片的尺寸比例得到相应的缩放,但图片没有变形.显然按照andro ...

  6. 微信小程序控件 横/纵向排列

    控件(按钮)横向排列 wxss .view_class { display: flex; flex-direction: row; justify-content: center; } 控件(按钮)纵 ...

  7. 播放器的书签--推荐使用Potplayer

    VLC Player https://www.vlchelp.com/skipping-and-playing-audio-and-video-portions-in-vlc/ PotPlayer  ...

  8. Bootstrap -- 文本,背景,其他样式

    Bootstrap -- 文本,背景,其他样式 1. 文本样式:展示了不同的文本颜色 使用文本样式: <!DOCTYPE html> <html> <head> & ...

  9. chrome总是提示“请停用开发者模式运行的扩展程序”

    方法1:通过组策略的扩展白名单.要下载一个组策略管理模板 1.开始 -> 运行 -> 输入gpedit.msc -> 回车确定打开计算机本地组策略编辑器(通过Win + R快捷键可以 ...

  10. 有效的字母异位词的golang实现

    给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的一个字母异位词. 输入: s = "anagram", t = "nagaram" 输出: ...