http://acm.hdu.edu.cn/showproblem.php?pid=3833

做这题时是因为我在网上找杭电的数论题然后看到说这道题是数论题就点开看了以下。

然后去杭电上做,暴力,超时了,想了半天还是没啥好办法,到底哪要用到数论的知识呢,想不出还得去搜题解,脑子笨啊。

然后说用hash再报暴力,没看人家代码,然后就顺着这思路写,我写的是当前是a[i];然后j从1到i-1,用2*a[i]-a[j]的另一个数并且这个数的范围为1到N;而且在1到i-1中没出现过

那么必定在i的右侧,这个可以用hash数组记录一下,在1到i出现的a[i]都标记为1;也就是hash[a[i]]=1;

那么如过相减所得的数在a[i]的后面那么hash[2*a[i]-a[j]]==0;那么只要这个成立就可跳出,那么就有解。

哈哈,超时了这个复杂度基本上还是(n*n);

后来看了一下别人的代码,我觉得复杂程度还是没降,可为啥就过了?

希望知道的能指导下;

 1 #include<stdio.h>
2 #include<algorithm>
3 #include<iostream>
4 #include<stdlib.h>
5 #include<string.h>
6 #include<math.h>
7 const int N=10005;
8 using namespace std;
9 int flag[N];//hash数组
10 int a[N];
11 int main(void)
12 {
13 int i,j,k,p,q,pp;
14 scanf("%d",&k);
15 while(k--)
16 {
17 memset(flag,0,sizeof(flag));
18 pp=0;
19 scanf("%d",&p);
20
21 for(i=1; i<=p; i++)
22 {
23 scanf("%d",&a[i]);
24 if(pp)
25 {
26 continue;
27 }
28 flag[a[i]]=1;
29 if(i>=2)
30 {
31 for(j=1; j<a[i]&&a[i]+j<=p; j++)
32 {
33
34 if(flag[j+a[i]]+flag[a[i]-j]==1)//找关于a[i]对称的也就是与a[i]的间距的数时否在a[i]的两端.
35 {
36 pp=1;
37 break;
38 }
39 }
40 }
41
42 }//我认为上面的复杂度为(p+2)*p/4;我认为基本上还是p*p的,如过知道咋分析的教我一下
43 if(pp)
44 {
45 printf("Y\n");
46 }
47 else printf("N\n");
48
49 }
50 return 0;
51 }

最新文章

  1. sql sever笔记 日期时间
  2. html5 canvas用动画的形式装载图像
  3. nginx简易安装
  4. SQLite遇到的关于x64、x86问题
  5. root用户自动登录
  6. ARM Cortex Debug Port Access Port DP AP JTAG-DP SW-DP SWJ-DP JTAG-AP MEM-AP
  7. 企业云部署要如何选择IaaS PaaS和SaaS
  8. ubuntu下php5扩展mysqli
  9. Linux ps同时查找多个进程
  10. 方便代理下单的EcStore收货地址一键分析插件,同时支持淘宝/京东/一号店
  11. PYTHON单元测试
  12. 扩展jquery.validate自定义验证,自定义提示,本地化
  13. ubuntu下codeblocks安装与中文化
  14. 【HTML初识】
  15. shell+Zabbix export应用之AD环境删除离职人员登录主机之资料
  16. 解决idea spring boot项目中target中没有同步更新最新目录文件及资源
  17. Java库中的集合
  18. bzoj千题计划189:bzoj1867: [Noi1999]钉子和小球
  19. 1、数据库与excel表格的数据导入导出
  20. Eclipse环境安装rust

热门文章

  1. PL\SQL和PL/SQL Developer 12安装与配置
  2. ui自动化测试,页面方法的使用
  3. Identity Server 4 从入门到落地(三)—— 创建Web客户端
  4. 巩固java第六天
  5. 通信方案软件设计(环形动态申请内存,支持USART+IIC+SPI+CAN协议
  6. stlink 无法再keil中识别 按下复位键可以识别
  7. iOS11&amp;IPhoneX适配
  8. 【Linux】【Basis】【Kernel】Linux常见系统调用
  9. java实现链式线性表
  10. 【Spring Framework】Spring入门教程(五)AOP思想和动态代理