Gym-100676E Time Limit Exceeded?
原题链接 https://odzkskevi.qnssl.com/1110bec98ca57b5ce6aec79b210d2849?v=1491063604
**********************************************************************************************************************
题意:选择v[i]里的两个数相减的绝对值小于32,问你有多少对这样的数
解题思路:看题目就知道暴力枚举肯定会超时XD;
所以就标记一下v[i],每一次找v[i]前后31个数,看看有多少个, 减去重复的,就是答案。
**********************************************************************************************************************
1 #include <iostream> 2 #include <algorithm> 3 #include <cstring> 4 using namespace std; 5 const int maxn = 10000+10; 6 int num[maxn]; 7 int a[maxn]; 8 int sum[maxn]; 9 int vis[maxn]; 10 int main() 11 { 12 int T; 13 cin >> T; 14 while(T--){ 15 memset(a, 0, sizeof(a)); 16 memset(num, 0, sizeof(num)); 17 memset(vis, 0, sizeof(vis)); 18 int n, i, ans=0; 19 cin >> n; 20 21 for(i=0;i<n;i++){ 22 cin >> a[i]; 23 num[a[i]]++; 24 } 25 sum[0]=0; 26 for(i=1;i<maxn;i++)//通过前缀和的方法求出有多少个符合 27 sum[i]=sum[i-1]+num[i]; 28 // for(i=1;i< 150 ;i++) 29 // cout << i << " " << sum[i] << endl; 30 for(i=0;i<n;i++){ 31 int x = a[i]; 32 int rightn=min(10000, x+31);//只往右边跑,避免左右一起跑出现重复 33 if(!vis[x]){ 34 ans+=num[x] * (sum[rightn] - sum[x]);//加上[x,x+31]的数的个数 35 ans+=num[x]*(num[x]-1)/2;//如果同一个数出现了多次,C(2, n)个 36 vis[x]=1; 37 } 38 } 39 cout << ans << endl; 40 } 41 return 0; 42 }
转载于:https://www.cnblogs.com/denghaiquan/p/6666226.html
Gym-100676E Time Limit Exceeded?相关推荐
- java.lang.OutOfMemoryError:GC overhead limit exceeded填坑心得
该文章出自:http://www.cnblogs.com/hucn/p/3572384.html 分析工具:http://www.blogjava.net/jjshcc/archive/2014/03 ...
- spark 读取mongodb失败,报executor time out 和GC overhead limit exceeded 异常
代码: import com.mongodb.spark.config.ReadConfig import com.mongodb.spark.sql._ val config = sqlContex ...
- Caused by: java.sql.SQLException: GC overhead limit exceeded处理百万数据出现的异常
Caused by: java.sql.SQLException: GC overhead limit exceeded处理百万数据出现的异常 参考文章: (1)Caused by: java.sql ...
- Eclipse报错:gc overhead limit exceeded eclipse
Eclipse报错:gc overhead limit exceeded eclipse 原因是Eclipse默认配置内存太小需要更改Eclipse安装文件夹下的eclipse.ini文件. 1.打开 ...
- 原因代码10044-Erdos number Time limit exceeded
近期笔者几篇文章介绍了改原因代码的文章. 关联文章的地址 以下是我的代码,但是在通过uva试测是time limit exceeded, 不道知是什么原因,而且我自己试测了几个数据都是对的. 每日一道 ...
- OutOfMemoryError: GC Overhead Limit Exceeded错误处理
OutOfMemoryError: GC Overhead Limit Exceeded错误处理 最近线上遇到一个问题,服务日志正常打印,但是接口调不通,重启服务后正常. 为了找到问题所在,那就翻日志 ...
- 一次OutOfMemoryError: GC overhead limit exceeded
现象: 由于需要将mysql表中的过期数据在凌晨定时读取出过滤后转入到MongoDB,一个转换SQL达到百行,而且有几十个,集中运行后程序反馈异常: Handler dispatch failed; ...
- unable to execute dex:GC overhead limit exceeded unable to execute dex:java heap space 解决方案
最近做厂商适配,厂商提供了一部分Framework的jar包,把jar包通过Add Jar放到Build Path中, 在生成APK过程中,Eclipse长时间停留在100%那个进度. 最后Eclip ...
- java.lang.OutOfMemoryError:GC overhead limit exceeded
我遇到这样的问题,本地部署时抛出异常java.lang.OutOfMemoryError:GC overhead limit exceeded导致服务起不来,查看日志发现加载了太多资源到内存,本地的性 ...
- matlab调用Java程序时出现 Java.lang.OutOfMemoryErrot: GC overhead limit exceeded
matlab调用Java程序时出现 java.lang.OutOfMemoryError: GC overhead limit exceeded JDK1.6.0_37和JDK_1.7.0_60版本, ...
最新文章
- 权变措施 弹回计划 应急计划的区别
- Debian的GRUB开机画面和好看的命令行
- 【Jenkins】通过ANT构建JMeter任务时提示找不到jtl文件时的解决方法
- 如何构建一个向导操作模式程序
- 为什么 Linux 上的 Asp.NET 5 需要 Kestrel ?
- iOS - UIControl
- mysql 查看某数据库中所有表的行数,information_schema.tables不准确。count(*)拼接准确。
- flask及扩展源码解读
- 带ant 的收发器_ANT无线收发器nRF24AP1及其应用
- winform datagridview 打印预览
- 渗透测试常用端口利用总结
- RapidMiner 数据读写
- Windows用户名中文修改英文无感实现操作方法
- 【python中级】 使用onvif抓图
- 【备忘】尚学堂白贺翔java互联网架构师视频教程下载
- JVM虚拟机第八章:堆
- 奇迹服务器技能修改,奇迹技能修改教程-地狱火技能修改介绍
- HeadFirst设计模式笔记——工厂模式
- java map 内存分配_mapreduce 内存分配
- LTE,NR中的基本时间单位
热门文章
- 2021-04-09 linux的shell脚本简单教程
- 已知三角形三点坐标求角度_2019高考数学:解三角形——正弦定理和余弦定理的解题技巧和模型...
- Cadence复用电路原理图及其PCB布局
- moldflow2018安装教程
- hashmap 复制_复杂链表的复制
- CGTN专访第四范式裴沵思 阐释数字化转型背后的驱动力
- erlang精要(18)-以函数作为参数的函数,返回函数的函数(1)
- rust-let 不可变绑定与可变绑定(4)
- codeforces 7.22 F Pairwise Modulo
- 【NLP】NLP 语义匹配:经典前沿方案整理