新疆大学(新大)OJ xju 1010: 四个年级 C++ STL map 将4层循环优化成2层循环可解
来源:互联网 发布:网络安全技术一般包括 编辑:程序博客网 时间:2024/05/22 20:56
1010: 四个年级
时间限制: 3 Sec 内存限制: 128 MB
题目描述
为了加强全体软件学院的同学的较量,学院想让ACM协会设计一次活动让所以软件学院的同学都加入,并且要实现高年级和低年级互动的效果。会长想了这样一个活动(可能有点无聊),他写了一个小程序,让每个年级的同学都来随机生成一个数字,如果有来着四个年级的四个同学他们手上的数字相加等于零,就称这是一组超强组合。例如一年级的同学的数字为{-45,-41,-36,26,32,1},二年级的同学数字为{22,-27,53,30,-38,-54},三年级的同学数字为{42,56,-37,-75,-10,-6},四年级同学数字为{-16,30,77,-46,62,45}。则有6组超强组合(-45,-27,42,30),(26,30,-10,-46),(-32,22,56,-46),(-32,30,-75,77),(-32,-54,56,30)(1 -27 42 -16)。你的任务是给你所有年级人的数字,让你计算有多少组超强组合。为了方便出来我们假设每个年级的人一样多。
输入
输入包含多组数据,第一行为测试数据T组(1<=T<=10);以下每组数据第一行包含一个数字N(1<=N<=2000)表示每个年级人数。接下来数N行,每行有4个数A1,A2,A3,A4(-1000
#include <iostream>#include <map> using namespace std;typedef long long ll;int a[2010][4];int main() { int t,n; cin >> t; int k = 0; while(t--){ cin >> n; for(int i = 0;i < n; i++){ for(int j = 0;j < 4; j++){ cin >> a[i][j]; } } map <int,int> m1,m2; for(int i = 0;i < n; i++){ for(int j = 0;j < n; j++){ m1[a[i][0]+a[j][1]]++; m2[a[i][2]+a[j][3]]++; } } int ans = 0; map <int,int>::iterator it; for(it = m1.begin();it != m1.end(); it++){ ans += it->second*m2[-it->first]; } cout << "Case " << ++k << ": "; cout << ans << endl; } return 0;}// writen by zhangjiuding
阅读全文
0 0
- 新疆大学(新大)OJ xju 1010: 四个年级 C++ STL map 将4层循环优化成2层循环可解
- 新疆大学(新大)OJ xju 1006: 比赛排名 第二类斯特林数+阶乘
- 新疆大学(新大)OJ xju 1009: 一带一路 prim求最短路径+O(n)素数筛选
- 使用Map对于两层for循环的一个优化
- 循环层
- 跳出2层for循环
- 两层c:forEach循环嵌套
- c标签foreach2层嵌套跳出循环
- N层循环
- 九层循环
- java DOM4j 循环解析2层XML
- Java如何跳出2层for循环
- Java中的跳出某层循环(包括跳出本层循环)
- thinkphp view层中的循环
- Cocos2dx_背景层循环滚动
- js 循环遍历div层
- 两层循环同步进行
- 层序遍历二叉树(C语言+循环队列)
- 6.2 代理的应用
- 【模板】第二类斯特林数Stirling
- Process finished with exit code 139 (interrupted by signal 11: SIGSEGV)
- Cocos2d-x学习笔记之数据存取方式
- MySQLWorkbench根据已有EER图导出sql脚本文件
- 新疆大学(新大)OJ xju 1010: 四个年级 C++ STL map 将4层循环优化成2层循环可解
- 洛谷P3933 Chtholly Nota Seniorious 【二分 + 贪心 + 矩阵旋转】
- Ubuntu14.04安装OpenCV
- 常见清除浮动方法总结
- shiro源码分析篇3:用户登录缓存登录信息
- 个人总结11
- Ubuntu 16.04 系统快捷键推荐设置
- Go语言switch语句
- Catalan数