博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
第三周 动态规划算法(1):1.集合加法
阅读量:7098 次
发布时间:2019-06-28

本文共 1592 字,大约阅读时间需要 5 分钟。

总时间限制:
3000ms
内存限制:
65536kB
描述
给出2个正整数集合A = {pi| 1 <= i <= a},B = {qj| 1 <= j <= b}和一个正整数s。问题是:使得pi+ qj= s的不同的(i, j)对有多少个。
输入
第1行是测试数据的组数n,后面跟着n组测试数据。
每组测试数据占5行,第1行是和s (1 <= s <= 10000),第2行是一个正整数a (1 <= a <= 10000),表示A中元素的数目。第3行是a个正整数,每个正整数不超过10000,表示A中的元素。第4行是一个正整数b (1 <= b <= 10000),表示B中元素的数目。第5行是b个正整数,每个正整数不超过10000,表示B中的元素。
注意:这里的集合和数学书上定义的集合有一点点区别——集合内可能包含相等的正整数。
输出
n行,每行输出对应一个输入。输出应是一个非负整数。
样例输入
299249 49250 501191 2 3 4 5 6 7 8 91010 9 8 7 6 5 4 3 2 1
样例输出
49
1 #include 
2 #include
3 #include
4 using namespace std; 5 int main(int argc,const char *argv[]) 6 { 7 int n; 8 scanf("%d",&n); 9 while(n--)10 {11 12 int sum;13 int a,b;14 int count = 0;15 int A[10001];16 memset(A,0,sizeof(A));17 scanf("%d",&sum);18 scanf("%d",&a);19 for(int i = 0; i < a; ++i)20 {21 int tem;22 scanf("%d",&tem);23 if(tem >= sum)continue;24 else25 {26 A[tem]++;27 }28 }29 scanf("%d",&b);30 for(int i = 0; i < b; ++i)31 {32 int tem;33 scanf("%d",&tem);34 if(tem >= sum)continue;35 else36 {37 if(sum - tem > 0)38 {39 count = count + A[sum - tem];40 }41 }42 }43 printf("%d\n",count);44 }45 return 0;46 }

 

转载于:https://www.cnblogs.com/Konayuki2015/p/4514243.html

你可能感兴趣的文章
git diff命令
查看>>
LeetCode:Climbing Stairs(DP)
查看>>
STC12C5A60S2笔记7(定时器)
查看>>
[HNOI2004]宠物收养场 BZOJ1208 splay tree
查看>>
Python标准模块--built-ins函数
查看>>
mysql超时机制
查看>>
复习java基础第一天
查看>>
程序后台服务启动,MongoDB未启动(启动较慢)/(关机重启情况下)。
查看>>
数据库系统阶段特点
查看>>
假期演练1-3
查看>>
梦断代码读后感
查看>>
js面试题
查看>>
jdbc的配置及jdbc连接常用数据库(mysql、sqlserver、Oracle)
查看>>
java获取程序执行时间
查看>>
rsync定时同步配置
查看>>
关于数据存储类型的一点分析
查看>>
Java关键字
查看>>
SharePoint 2013 工作流设计之Designer 使用“可视化视图
查看>>
eclipse连hadoop2.x运行wordcount 转载
查看>>
HTML5:Details元素
查看>>