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

一:原题内容

Problem Description
Given a permutation P of 1 to N, YY wants to know whether there exists such three elements P[i 1], P[i 2], P[i 3] that
P[i 1]-P[i 2]=P[i 2]-P[i 3], 1<=i 1<i 2<i 3<=N.
Input
The first line is T(T<=60), representing the total test cases.
Each test case comes two lines, the former one is N, 3<=N<=10000, the latter is a permutation of 1 to N.
Output
For each test case, just output 'Y' if such i 1, i 2, i 3 can be found, else 'N'.
Sample Input
  
2 3 1 3 2 4 3 2 4 1
Sample Output
  
N Y

二:分析理解

好吧!再次感受到算法的强大。

把问题转化下就好。

P[i1]-P[i2]=P[i2]-P[i3]转化为P[i1]+P[i3]=2*P[i2]

枚举i1和i3,和是偶数才可以继续判断,看代码。

三:AC代码

#include<iostream>
#include<string.h>
#include<algorithm>
#include<cmath>using namespace std;#define N 10005int a[N];
int hash1[N];
int T;
int n;int main()
{scanf("%d", &T);while (T--){scanf("%d", &n);for (int i = 0; i < n; i++){scanf("%d", &a[i]);hash1[a[i]] = i;}int flag = 0;for (int i = 0; i <= n - 2; i++){for (int j = i + 2; j <= n - 1; j++){int s = a[i] + a[j];if (s % 2)continue;if (hash1[s / 2] > i&&hash1[s / 2] < j){flag = 1;break;}}if (flag)break;}printf("%s\n", flag ? "Y" : "N");}return 0;
}

hdu3833 YY's new problem--哈希表相关推荐

  1. Hdu3833 YY's new problem 哈希表(3)

    这道题用到了哈希表,表示不太会,把别人的代码放着研究一下... #include<stdio.h> int main() {int i,j,t,temp,n,a[10010],p;scan ...

  2. HDU-3833 YY's new problem

    先做了一下,超时了.很纠结,看别人说用hash表,果然A了. #include<iostream> #include<cstdio> #include<cstring&g ...

  3. 【算法】哈希表 ( 两数之和 )

    算法 系列博客 [算法]刷题范围建议 和 代码规范 [算法]复杂度理论 ( 时间复杂度 ) [字符串]最长回文子串 ( 蛮力算法 ) [字符串]最长回文子串 ( 中心线枚举算法 ) [字符串]最长回文 ...

  4. 哈希表的C实现(三)---传说中的暴雪版

    关于哈希表C实现,写了两篇学习笔记,不过似乎网上流传最具传奇色彩的莫过于暴雪公司的魔兽文件打包管理器里的hashTable的实现了:在冲突方面的处理方面,采用线性探测再散列.在添加和查找过程中进行了三 ...

  5. CSP认证201509-3 模板生成系统[C++题解]:字符串处理、模拟、哈希表、引号里面有空格的字符串怎么读入

    题目分析 来源:acwing 分析: 本题采用vector< string > 来读入原来模板.接下来的m行需要用到哈希表,进行模板和具体内容的映射. 遍历vector,如果找到{{,就对 ...

  6. CSP认证201503-2 数字排序[C++题解]:哈希表、排序、结构体

    题目分析 来源:acwing 分析: 统计出现次数,用哈希表(这里用数组模拟一下),然后用结构体数组来存,而且方便排序. ac代码 #include<bits/stdc++.h> usin ...

  7. PAT甲级1092 To Buy or Not to Buy :[C++题解]哈希表

    文章目录 题目分析 题目链接 题目分析 来源:acwing 分析 用unordered_map存每种珠子的个数,商店有的加上,伊娃需要的减去.这样哈希表中存的就是每种珠子的净值.大于0表示多余的,小于 ...

  8. PAT甲级1121 Damn Single :[C++题解]哈希表、结构体

    文章目录 题目分析 题目来源 题目分析 来源:acwing 思路:一对伴侣存入一个结构体中.查询的集合放入哈希表unordered_set<int> S;中.然后遍历每一对伴侣,如果同时存 ...

  9. PAT甲级1116 Come on! Let‘s C:[C++题解]哈希表、素数

    文章目录 题目分析 题目来源 题目分析 来源:acwing 分析:使用哈希表存一下每个id获得奖,然后查询输出即可. ac代码 #include<bits/stdc++.h> using ...

  10. PAT甲级1153 Decode Registration Card of PAT :[C++题解]结构体、哈希表、排序、类似数据库查询题、好题

    文章目录 题目分析 题目来源 题目分析 来源:acwing 分析: 本题是三种不同的询问,难道要写三个结构体?想了想,就写了一个结构体,参赛人结构体,内容包括考号id和成绩grade,然后开结构体数组 ...

最新文章

  1. Ubuntu Server系列各项服务的安装和维护 Apache部分
  2. swift语言java_用Swift语言替换#ifdef
  3. AAAI 独家 | 腾讯AI Lab 现场陈述论文:使众包配对排名聚合信息最大化的 HodgeRank
  4. 【Egret】Wing3发布移动APP功能,打包APK流程以及会遇到的问题
  5. Entity Framework context per request
  6. python对象的三个属性_Python 对象属性的访问
  7. RocketMQ源码解析-PullConsumer取消息(2)
  8. Cesium获取经度 ,纬度,高度
  9. 二分图的匹配(未完)
  10. uniapp换行符号_第15讲 : uni-app 组件 - 地图组件
  11. Windows | 快速删除大量回收站文件
  12. DRM框架梳理-- dumb-buffer的分配和绑定到crtc
  13. iMeta: 整合宏组学重新认识生命和环境科学
  14. UNI-APP_HbuilderX打包出错,本次打包选择了通讯录权限,请完成实名认证后再继续打包,取消通讯录权限打钩,还是提示使用通讯录权限需要实名制
  15. 计算机毕业设计Java城市出行行程智能推荐系统(源码+系统+mysql数据库+lw文档)
  16. Linux--系统安全及应用
  17. while循环中的switch语句
  18. VB出现“找不到DAO350.DLL”错误
  19. php和cad,solidworks和cad区别是什么
  20. about云大数据面试宝典 大公司面试一般用不到

热门文章

  1. linux怎么查看一个bam文件,生信分析过程中这些常见文件的格式以及查看方式你都知道吗?...
  2. uView下拉菜单组件u-dropdown设置高度并防止滑动穿透
  3. OpenCart v2.3.x 变形金刚模板主题
  4. 什么TDD,让它见鬼去吧!
  5. SVM(五)松弛变量
  6. 亿信华辰:一文详解数据标准管理
  7. 一张图了解NFT堆栈,关于NFT生态现状,你知道哪些项目?
  8. html可暂停倒计时代码,js实现倒计时器自定义时间和暂停
  9. eclipse调试技巧之使用各种视图跟踪数据变化
  10. 开关电源学习(一) MP2315S简介