cogs 610. 数对的个数
610. 数对的个数
★★ 输入文件:dec.in 输出文件:dec.out 简单对比
时间限制:1 s 内存限制:128 MB
Description
出题是一件痛苦的事情!
题目看多了也有审美疲劳,于是我舍弃了大家所熟悉的A+B
Problem,改用A-B了哈哈!
好吧,题目是这样的:给出一串数以及一个数字C,要求计算出所有A-B=C的数对的个数。
(不同位置的数字一样的数对算不同的数对)
Input
Format
第一行包括2个非负整数N和C,中间用空格隔开。
第二行有N个整数,中间用空格隔开,作为要求处理的那串数。
Output
Format
输出一行,表示该串数中包含的所有满足A-B=C的数对的个数。
Sample Input
4 1
1 1 2 3
Sample Output
3
Data Limit
对于90%的数据,N <=
2000;
对于100%的数据,N <= 200000。
所有输入数据都在longint范围内。
自动选择评测机
打开 O2
优化
COGS Grader
无优化开关
提交代码 Pascal C C++
/*
a-b=c,那么a=b+c,哈希表处理出所有的b+c,找对应即可
*/
#include<iostream>
#include<cstdio>
#include<cstdlib>
using namespace std;
#define maxn 200010
#define mod 100000
int n,m,a[maxn],num,head[mod+],ans;
struct node{
int to,pre,sum;
}e[maxn*];
void add(int from,int to){
for(int i=head[from];i;i=e[i].pre){
if(e[i].to==to){e[i].sum++;return;}
}
e[++num].to=to;
e[num].pre=head[from];
e[num].sum++;
head[from]=num;
}
void check(int from,int x){
for(int i=head[from];i;i=e[i].pre)
if(e[i].to==x)ans+=e[i].sum;
}
int main(){
freopen("dec.in","r",stdin);
freopen("dec.out","w",stdout);
//freopen("Cola.txt","r",stdin);
scanf("%d%d",&n,&m);
for(int i=;i<=n;i++){
scanf("%d",&a[i]);
add((a[i]+m)%mod,a[i]+m);
}
for(int i=;i<=n;i++){
check(a[i]%mod,a[i]);
}
printf("%d",ans);
}
cogs 610. 数对的个数的更多相关文章
- COGS——C610. 数对的个数
http://cogs.pro/cogs/problem/problem.php?pid=610 Description出题是一件痛苦的事情!题目看多了也有审美疲劳,于是我舍弃了大家所熟悉的A+B P ...
- AC日记——数1的个数 openjudge 1.5 40
40:数1的个数 总时间限制: 1000ms 内存限制: 65536kB 描述 给定一个十进制正整数n,写下从1到n的所有整数,然后数一下其中出现的数字“1”的个数. 例如当n=2时,写下1,2. ...
- 数对的个数(cogs610)
Description出题是一件痛苦的事情!题目看多了也有审美疲劳,于是我舍弃了大家所熟悉的A+B Problem,改用A-B了哈哈! 好吧,题目是这样的:给出一串数以及一个数字C,要求计算出所有A- ...
- sum_series() 求一列数的指定个数的数和(5个数字的和)
#include <stdio.h> #include <stdarg.h> /*用sum_series() 求一列数的指定个数的数和(5个数字的和)*/ double sum ...
- hdu 5062 单峰数(12321)的个数
http://acm.hdu.edu.cn/showproblem.php?pid=5062 模拟筛出对称单峰数(12321)的个数,水题 #include <cstdio> #inclu ...
- POJ3180(有向图强连通分量结点数>=2的个数)
The Cow Prom Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 1451 Accepted: 922 Descr ...
- 牛客:t次询问,每次给你一个数n,求在[1,n]内约数个数最多的数的约数个数(数论+贪心)
https://ac.nowcoder.com/acm/contest/907/B t次询问,每次给你一个数n,求在[1,n]内约数个数最多的数的约数个数 分析: 根据约数和定理:对于一个大于1正整数 ...
- linux wc 的用法-linux 下统计行数、单词数、字符个数
linux wc 的用法-linux 下统计行数.单词数.字符个数 wc : wc -l 统计有多少行 wc -w 统计有多少个单词 wc -c 统计有多少个字符
- Leetcode_001_TwoSum_求和为固定数的两个数的索引
题目描述 给定一个整型数组,在数组中找出两个数使这两个数的和为给定数,从小到大输出这两个数在数组中的位置(我们可以假定输出结果只有一个).例如,输入:N={1,4,8,20}, target=1 ...
随机推荐
- windows 复制 文本文件内容 到剪切板
shell 打开 type filename | clip
- Local Response Normalization 60 million parameters and 500,000 neurons
CNN是工具,在图像识别中是发现图像中待识别对象的特征的工具,是剔除对识别结果无用信息的工具. ImageNet Classification with Deep Convolutional Neur ...
- HDFS HBase Solr Which one?
从访问模式角度决策 HDFS 压缩性能最优.扫描速度最快:不支持随机访问,仅支持昂贵.复杂的文件查询 HBase适合随机访问 Solr 适合检索需求 HBase访问单个记录的时间为毫秒级别,而HDFS ...
- Jquey模糊选择
Jquey模糊选择 属性字头选择器(Attribute Contains Prefix Selector): jQuery 属性字头选择器的使用格式是 jQuery(‘[attribute|=va ...
- H264视频通过RTMP直播
http://blog.csdn.net/firehood_/article/details/8783589 前面的文章中提到了通过RTSP(Real Time Streaming Protocol) ...
- 为什要使用预编译SQL?
今天在研发部技术大牛的指点下,我终于明白了为什么要使用SQL预编译的形式执行数据库JDBC:
- 【C】貌似不友好的scanf()
scanf语句执行过程: (1)逆序取参数的偏移地址并分别入栈. (2)根据控制字符串的格式说明符从缓冲区取数据给各变量赋值. ①若格式说明符是数值类数据:如果从缓冲区中拿出的第一个字符可以合法表示该 ...
- Opencv— — water wave
// define head function #ifndef PS_ALGORITHM_H_INCLUDED #define PS_ALGORITHM_H_INCLUDED #include < ...
- 如何判断一个for循环执行完毕
在外面一个变量a=arr.leng; 然后就是进行for循环, 在for循环下面进行判断,因为如果结束那么i的值就会>=a;if条件成立的话,可以在里面进行循环完毕要做的操作.
- c++之cin/cin.get/cin.getline()详解
C++输入过程中,是把输入加载到缓冲区中,然后对缓冲区中的字符进行读取.cin,cin,get(),cin.getline()三个函数虽然都能进行数据读取,但是它们对缓冲区内数据的处理方法是不同的(如 ...