汕头网站建设制作公司,平台及服务是什么,wordpress需要备案吗,wap网站开发语言目录 题目A-B 数对题目背景题目描述输入格式输出格式样例 #1样例输入 #1样例输出 #1提示传送门 代码解释亲测 题目
A-B 数对
题目背景
出题是一件痛苦的事情#xff01;
相同的题目看多了也会有审美疲劳#xff0c;于是我舍弃了大家所熟悉的 AB Problem#xff0c;改用 … 目录 题目A-B 数对题目背景题目描述输入格式输出格式样例 #1样例输入 #1样例输出 #1提示传送门 代码解释亲测 题目
A-B 数对
题目背景
出题是一件痛苦的事情
相同的题目看多了也会有审美疲劳于是我舍弃了大家所熟悉的 AB Problem改用 A-B 了哈哈
题目描述
给出一串正整数数列以及一个正整数 C C C要求计算出所有满足 A − B C A - B C A−BC 的数对的个数不同位置的数字一样的数对算不同的数对。
输入格式
输入共两行。
第一行两个正整数 N , C N,C N,C。
第二行 N N N 个正整数作为要求处理的那串数。
输出格式
一行表示该串正整数中包含的满足 A − B C A - B C A−BC 的数对的个数。
样例 #1
样例输入 #1
4 1
1 1 2 3样例输出 #1
3提示
对于 75 % 75\% 75% 的数据 1 ≤ N ≤ 2000 1 \leq N \leq 2000 1≤N≤2000。
对于 100 % 100\% 100% 的数据 1 ≤ N ≤ 2 × 1 0 5 1 \leq N \leq 2 \times 10^5 1≤N≤2×105 0 ≤ a i 2 30 0 \leq a_i 2^{30} 0≤ai230 1 ≤ C 2 30 1 \leq C 2^{30} 1≤C230。
2017/4/29 新添数据两组
传送门
https://www.luogu.com.cn/problem/P1102
代码
#includebits/stdc.h // 包含所有常用的库文件
using namespace std;
long long n,c,a[200005],ans; // 声明变量int main() {mapint,int m; // 创建一个空的映射对象 (map)用于统计元素个数cin n c; // 从标准输入读取n和c的值for(int i 1; i n; i) { // 从1循环到ncin a[i]; // 从标准输入读取一个整数并赋值给数组a的第i个元素m[a[i]]; // 使用映射对象m统计数组a中每个元素的个数}for(int i 1; i n; i) {ans m[a[i] c]; // 使用映射对象m查询数组a中与当前元素a[i]相差c的元素个数并累加到变量ans中}cout ans endl; // 输出结果ans到标准输出return 0; // 程序正常结束的返回语句
}解释 #includebits/stdc.h这是一个预处理指令用于将所有常用的库文件包含进来省去了手动添加每个库文件的麻烦。 using namespace std;使用了std命名空间这样就可以直接使用C标准库的函数和对象而无需前缀std::。 long long n, c, a[200005], ans;声明了整数变量n、c一个长整型数组a和一个长整型变量ans。 int main() {程序的入口函数。 mapint,int m;创建了一个名为m的map对象键类型为整数int值类型也为整数int。 cin n c;从标准输入读取两个整数n和c分别赋值给变量n和c。 for(int i 1; i n; i) {循环n次每次执行以下代码块。 cin a[i];从标准输入读取一个整数并将其赋值给数组a的第i个元素。 m[a[i]];将数组a的第i个元素的值作为键对应的映射值加1。 for(int i 1; i n; i) ans m[a[i] c];循环n次每次执行以下代码块。计算a[i] c得到的值作为键在map对象m中查找对应的映射值并将其加到ans变量上。 cout ans endl;将ans的值输出到标准输出。 return 0;程序正常结束的返回语句。
这段代码通过使用map数据结构来统计数组a中特定元素的个数并根据给定的差值c计算符合条件的组合个数并将结果输出。
亲测
亲测 AC