题意:问是否存在一段区间其加减交错和为K。

显然,我们可以用set保存前缀和,然后枚举一个端点查找。具体的

若在st1中查找 $t$,为 $sum-t=-k$,在st2中则是 $sum-t=k$。

注意这样作差的话,没有考虑到 $a_1$ 开始的,只要在st2中插入一个0即可。

然而,这题卡set,必须手写hashmap(说实话,之前不太相信会有卡set的题!)

后来发现unordered_set也能过(刚好过)

分别是unordered_set、set、手写hashmap

#include<bits/stdc++.h>
using namespace std; typedef long long ll;
const int maxn = + ;
int n, k;
//set<ll>st1, st2; const unsigned long long SMod = ;
struct Hashmap
{
struct Node
{
long long num;
int next;
};
Node nodes[*maxn];
int cnt_node; //节点个数
int head[SMod+]; //链表的头 void init()
{
memset(head, - , sizeof(head));
cnt_node = ;
} void insert(long long num)
{
int pos = num % SMod; //在链表头中的位置
nodes[cnt_node].next = head[pos];
nodes[cnt_node].num = num;
head[pos] = cnt_node;
cnt_node++;
} long long find(long long num) //找到的话返回节点编号,没找到返回-1
{
int pos = num % SMod;
for(int i = head[pos]; i != -; i = nodes[i].next)
{
if(nodes[i].num == num) return i;
}
return -;
}
}st1, st2; int main()
{
int T, kase=;
scanf("%d", &T);
while(T--)
{
scanf("%d%d", &n, &k);
ll sum = ;
bool flag = false;
st1.init(); st2.init(); st2.insert();
for(int i = ;i <= n;i++)
{
int tmp;
scanf("%d", &tmp);
if(i&){ sum += tmp; st1.insert(sum);}
else { sum -= tmp; st2.insert(sum);} //printf("sum:%d\n", sum);
if(st1.find(sum+k) != -|| st2.find(sum-k) != -) flag = true;
} printf("Case #%d: ", ++kase);
if(flag) printf("Yes.\n");
else printf("No.\n");
}
}

hdu5183Negative and Positive (NP))——手写Hash&&模板的更多相关文章

  1. HDU 5183 Negative and Positive (NP) (手写哈希)

    题目链接:HDU 5183 Problem Description When given an array \((a_0,a_1,a_2,⋯a_{n−1})\) and an integer \(K\ ...

  2. HDU 5183 Negative and Positive (NP) ——(后缀和+手写hash表)

    根据奇偶开两个hash表来记录后缀和.注意set会被卡,要手写hash表. 具体见代码: #include <stdio.h> #include <algorithm> #in ...

  3. dfs手写栈模板

    在竞赛中如果系统栈很小的话,过深的递归会让栈溢出,这个时候我们就要自己手写栈,将递归转化成手工栈. 方法其实也很简单. 基本思路上,我们就是用栈不断的pop,push.但是何时push,何时pop呢? ...

  4. 2019牛客多校第五场generator2——BSGS&&手写Hash

    题目 几乎原题 BZOJ3122题解 分析 先推一波公式,然后除去特殊情况分类讨论,剩下就是形如 $a^i \equiv b(mod \ p)$ 的方程,可以使用BSGS算法. 在标准的BSGS中,内 ...

  5. hdu-5183-Negative and Positive (NP)(hash模板)

    题目链接 #include <iostream> #include <cstdio> #include <cstring> #include <algorit ...

  6. Vue2.0 + ElementUI 手写权限管理系统后台模板(一)——简述

    挤一下: 一开始以为没有多少人用就没建群,但是加我的人太多了,好多问题都是重复的,所以建个群大家互相沟通交流方便点,但是建的有点晚,错过了好多人所以群里人有点少,QQ群: 157216616 小提示 ...

  7. Tensorflow搭建卷积神经网络识别手写英语字母

    更新记录: 2018年2月5日 初始文章版本 近几天需要进行英语手写体识别,查阅了很多资料,但是大多数资料都是针对MNIST数据集的,并且主要识别手写数字.为了满足实际的英文手写识别需求,需要从训练集 ...

  8. 第三节,TensorFlow 使用CNN实现手写数字识别(卷积函数tf.nn.convd介绍)

    上一节,我们已经讲解了使用全连接网络实现手写数字识别,其正确率大概能达到98%,这一节我们使用卷积神经网络来实现手写数字识别, 其准确率可以超过99%,程序主要包括以下几块内容 [1]: 导入数据,即 ...

  9. C基础 带你手写 redis adlist 双向链表

    引言 - 导航栏目 有些朋友可能对 redis 充满着数不尽的求知欲, 也许是 redis 属于工作, 交流(面试)的大头戏, 不得不 ... 而自己当下对于 redis 只是停留在会用层面, 细节层 ...

随机推荐

  1. web 系统发展历程

    文章目录 web系统的发展历程 ------- **单机`mysql`的美好年代** ------ **Memcached(缓存)+Mysql+垂直拆分** ------ **mysql 主从读写分离 ...

  2. python-django-天天生鲜项目

    1 需求分析 github源码:https://www.github.com/wangyingchuang/dailyfresh 1.1  用户模块 1) 注册页 l  注册时校验用户名是否已被注册. ...

  3. S03_CH08_DMA_LWIP以太网传输

    S03_CH08_DMA_LWIP以太网传输 8.1概述 本例程详细创建过程和本季课程第一课<S03_CH01_AXI_DMA_LOOP 环路测试>非常类似,因此如果读者不清楚如何创建工程 ...

  4. 把QString写到文件中可以用toutf8()函数

    把QString写到文件中可以用toutf8()函数 QByteArray QString::toUtf8() const Returns a UTF-8 representation of the ...

  5. shell习题第22题:

    [题目要求] 加入A服务器可直接ssh到B,不用输入密码.A和B都有一个目录是/data/web/这下有很多文件,我们不知道这下面有多少层目录,但是之前的目录结构和文件是一模一样的.但是现在不确定是否 ...

  6. (转)js-分享功能(qq,微信,微博)

    //1 分享QQ好友 function qq(title,url,pic)     {         var p = {             url: 'http://test.qicheyit ...

  7. MySQL 子查询(四)子查询的优化、将子查询重写为连接

    MySQL 5.7 ref ——13.2.10.10优化子查询 十.子查询的优化 开发正在进行中,因此从长远来看,没有什么优化建议是可靠的.以下列表提供了一些您可能想要使用的有趣技巧.See also ...

  8. HTTP抓包

    1 概述 wireshark:全平台抓包工具,需要图形化界面,十分强大: httpry:http抓包插件,功能一般,操作简单: tcpdump:强大的抓包插件,支持多种网络协议. 2 httpry ( ...

  9. spring cloud Eureka 配置信息

    Eureka instance 一个服务,如:订单系统,会部署多台服务器,而每台服务器上提供的服务就是instance; 负载配置. Eureka service 指的是服务,提供一种特定功能的服务, ...

  10. XXX银行人事管理系统-数据库设计

    1. 用户.权限.角色关系用户基本信息 userinfo [人员表]权限表actions[权限表]员工类型表usertype [管理组表]权限映射表actionmapping [权限映射表]权限分栏表 ...