第二集,未来的我发量这么捉急的吗

题意:

有n个数,请问有多少对数字(i,j)(1<=i<j<=n),满足(a[i]^a[j])+((a[i]&a[j])<<1)=k

思路:

仔细观察不难发现这个位运算有点不一般,其实(a[i]^a[j])+((a[i]&a[j])<<1)这个是等价于a[i]+a[j]的,具体的原理是这样的,我们模拟一下二进制下的加法,如果这一位都是0,加完之后还是0,如果这一位是一个0和一个1,加完之后变成了1,如果这一位都是1,加完之后又就变成了0,然后向前进位,可以观察到在不考虑进位的情况下,二进制加法和异或的性质是一样的,0+0=0,0+1=1+0=1,1+1=0,然后我们发现a[i]&a[j]其实是把二进制都为1的位置提取了出来,因为两个数都为1的情况是需要进位的,所以这里模拟二进制加法,多了个(a[i]&a[j])<<1这样的进位量。

代码实现

这题代码挺简单,排序双指针或者标记都行,map标记代码如下:

#include <iostream>

#include <cstring>

#include <map>

using namespace std;

typedef long long ll;

typedef unsigned long long ull;

const int maxn = 1e5+;

int a[maxn];

int main(){

    ios::sync_with_stdio(false);

    cin.tie();

    int T;

    cin>>T;

    while(T--){

        map<int,int> mp;

        int n,k;

        cin>>n>>k;

        ll ans=;

        for(int i=;i<=n;i++){

            cin>>a[i];

            ans+=mp[k-a[i]];

            mp[a[i]]++;

        }

        cout<<ans<<endl;

    }

    return ;

}

福建工程学院第十四届ACM校赛B题题解的更多相关文章

  1. 福建工程学院第十四届ACM校赛M题题解 fwt进阶,手推三进制fwt

    第九集,结束亦是开始 题意: 大致意思就是给你n个3进制的数字,让你计算有多少对数字的哈夫曼距离等于i(0<=i<=2^m) 思路: 这个是一个防ak题,做法是要手推公式的fwt 大概就这 ...

  2. 福建工程学院第十四届ACM校赛J题题解

    第六集,想不到你这个浓眉大眼的都叛变革命了 题意: 给你两个只包含01的字符串S和T,问你在允许一次错误的情况下,T是否能成为S的子串 思路: 这个问题的解法挺多,我是用fft匹配的,也比较简单,针对 ...

  3. 福建工程学院第十四届ACM校赛G题题解

    外传:编剧说了不玩游戏不行 题意: 有n个石堆,我每次只能从某一堆中取偶数个石子,你取奇数个,我先手,先不能操作的人输.问最后谁能赢. 思路: 这个题仔细想想,就发现,取奇数的人有巨大的优势,因为假设 ...

  4. 福建工程学院第十四届ACM程序设计大赛 - E - 外传:小晋逃生记

    http://www.fjutacm.com/Contest.jsp?cid=705#P4 其实想清楚了就很简单,之前想了很多种方法,以为是二分什么的,看起来就像是一个单峰函数.但是发现直接暴力一波就 ...

  5. 2016 华南师大ACM校赛 SCNUCPC 非官方题解

    我要举报本次校赛出题人的消极出题!!! 官方题解请戳:http://3.scnuacm2015.sinaapp.com/?p=89(其实就是一堆代码没有题解) A. 树链剖分数据结构板题 题目大意:我 ...

  6. 湖南大学第十四届ACM程序设计新生杯(重现赛)G a+b+c+d=? (16进制与LL范围)

    链接:https://ac.nowcoder.com/acm/contest/338/G来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒空间限制:C/C++ 32768K,其他语言65536K6 ...

  7. 湖南大学第十四届ACM程序设计新生杯(重现赛)I:II play with GG(博弈论||DP)

    链接:https://ac.nowcoder.com/acm/contest/338/I 来源:牛客网 题目描述 IG won the S championship and many people a ...

  8. 湖南大学第十四届ACM程序设计新生杯(重现赛)

    RANK  0 题数 0 期末复习没有参加,补几道喜欢的题. A: AFei Loves Magic  签到 思路 :不需考虑 碰撞 直接计算最终状态即可. #include<bits/stdc ...

  9. 湖南大学第十四届ACM程序设计新生杯 E.Easy Problem

    E.Easy Problem Description: Zghh likes number, but he doesn't like writing problem description. So h ...

随机推荐

  1. [集训队作业2018]蜀道难——TopTree+贪心+树链剖分+链分治+树形DP

    题目链接: [集训队作业2018]蜀道难 题目大意:给出一棵$n$个节点的树,要求给每个点赋一个$1\sim n$之内的权值使所有点的权值是$1\sim n$的一个排列,定义一条边的权值为两端点权值差 ...

  2. mysql基础知识语法汇总整理(一)

    mysql基础知识语法汇总整理(二)   连接数据库操作 /*连接mysql*/ mysql -h 地址 -P 端口 -u 用户名 -p 密码 例如: mysql -u root -p **** /* ...

  3. GUI输入数据并保存

    from tkinter import * def write_to_file(): fileContent = open("deliveries.txt","a&quo ...

  4. vue——父组件向子组件传递数据

    看例子: //注册一个全局组件,组件标签名为child Vue.component('child', { props: ['msg'], //接收父组件传递的数据 template: '<h3& ...

  5. php改变header头返回值

    $code = '400 Bad Request'; header('HTTP/1.1 '.$code);

  6. RF框架自定义测试库开发

    静态库 方法(methods)直接映射为关键字名称.关键字接受和方法相同的参数, 通过抛异常来 报告错误, 通过往标准输出里写入来写 log, 同时可以通过return 来返回结果. 创建步骤: ▲ ...

  7. Appium移动自动化测试(三)之元素定位

    实验简介 做过UI自动化(web自动化, 移动自动化)的同学都会知道, 除去框架的选型和搭建以外, 落到实处的对元素进行定位就成了最重要的技能. 做过UI自动化的同学会知道, 对页面元素的定位方式有8 ...

  8. CA证书申请+IIS配置HTTPS+默认访问https路径

    引用别人博文内容:https://www.cnblogs.com/lichunting/p/9274422.html 一.CA证书申请 (一). 新StartSSL注册帐号 1.    StartSS ...

  9. hashcat 密码破解工具 使用教程

    日期:2019-08-16 15:03:12 更新: 作者:Bay0net 介绍:记录一下 hashcat 的使用命令 0x01.Install Hashcat Wiki - FAQ Github - ...

  10. Web jsp开发学习——连接数据库,数据的增加和删除

    1.首先在newlist界面增加三个图表,带上事件 newlist.jsp <%@ page language="java" contentType="text/h ...