gcj_2016_Round1_B
题目
一个NxN的矩阵,矩阵中每个方格中都有一个数值,且每一行的数值严格单调递增,每一列的数值严格单调递增。分别取出N行和N列,形成2N个长度为N的数组,现在有一个数组丢失,已知剩下的2N-1个长度为N的数组,求出丢失的那个数组。
实现
开始做的时候,试图一行一行,一列一列的进行递推枚举,重建出原来的NxN的矩阵。做的时候,越写越麻烦。。。。看了别人的题解才发现自己的解法是多么傻。
由于NxN的方格中每个数字都出现两次,一次是在该数字所在的行的数组中出现,一次是在该数字所在的列的数组中出现。那么,如果不发生丢失,则
N*2N个数字中每个数字都出现了偶数次(因为矩阵中可能存在相同的数字);丢失的那个长度为N的数组中的数字在
N*(2N-1)个已经给出的数字中只出现了奇数次。
于是,只要找到在N*(2N-1)个已经给出的数字中只出现了奇数次的数字即可。
#include<stdio.h>
#include<iostream>
#include<string.h>
#include<algorithm>
#include<queue>
#include<stack>
#include<map>
#include<deque>
#include<string>
#include<unordered_map>
#include<unordered_set>
using namespace std;
int num_count[2505];
int main() {
freopen("./apactest/B-large-practice.in", "r", stdin);
freopen("./apactest/B-large-practice.out", "w", stdout);
int T, N, num;
scanf("%d", &T);
for (int cas = 1; cas <= T; cas++) {
scanf("%d", &N);
memset(num_count, 0, sizeof(num_count));
for (int i = 0; i < 2 * N - 1; i++) {
for (int j = 0; j < N; j++) {
scanf("%d", &num);
num_count[num] ^= 1; //异或运算进行奇偶交替
}
}
printf("Case #%d:", cas);
for (int i = 1; i <= 2500; i++) { //个数为奇数的数字,就是丢掉的那张纸条上的数字
if (num_count[i])
printf(" %d", i);
}
printf("\n");
}
fclose(stdin);
fclose(stdout);
return 0;
}
gcj_2016_Round1_B的更多相关文章
随机推荐
- Poj(1511),SPFA
题目链接:http://poj.org/problem?id=1511 嗯,最后一次写SPFA了,以后就套模板了. 题意:给出n个点和n条有向边,求所有点到源点1的来回最短路之和(保证每个点都可以往返 ...
- 某些输入文件使用或覆盖了已过时的 API
android出现注: 某些输入文件使用或覆盖了已过时的 API. 注: 有关详细信息, 请使用 -Xlint:deprecation 重新编译. 注: 某些输入文件使用了未经检查或不安全的操作. 注 ...
- JAVA学习随笔-.class
类名.class是获得这个类所对应的Class实例.从面向对象的角度上来看,类也是对象,它们是类这个类对象,听起来有些抽象,但是在java中的实现就是所有的加载进来的类在虚拟机中都是一个java.la ...
- MSSQL删除字段时出现 服务器: 消息 5074,级别 16,状态 1,行 1 的解决办法
有的朋友在做用户维护字段的界面时,肯定发现一个问题,当用脚本:ALTER TABLE 表名 DROP COLUMN 字段名进行删除字段的操作时,会出现“服务器: 消息 5074,级别 16,状态 1, ...
- WCF 下载“http://localhost:XXX”时出错。无法连接到远程服务器。由于目标计算机积极拒绝,无法连接。
根据理论,WCF既然查找不到该地址 应该是没打开Service,或者说该端口被防火墙保护了,关了防火墙没解决,最后一试成功了. 我的服务端和客户端都位于一个解决方案中,当运行服务端时,则 [添加服务引 ...
- 使用UML进行项目开发
一.概述 本文主要论述的内容是如何使用UML来指导(辅助)项目设计.在此篇文章中,假设读者对UML已经有了概念上的认识,对UML中出现的名词都能很好的理解. UML的目标是以面向对象图的方式来描述任何 ...
- Codeforces Round #372 (Div. 2) B
Description ZS the Coder loves to read the dictionary. He thinks that a word is nice if there exists ...
- 苹果Xcode帮助文档阅读指南
文档导读 https://developer.apple.com/legacy/library/navigation/ 前面我们讲Xcode的文档结构是在介绍如何能够快速定位到你要找的内容.但是很多人 ...
- Dbcp2抛出org.apache.commons.dbcp2.LifetimeExceededException
三月 24, 2016 5:16:33 下午 org.apache.commons.dbcp2.BasicDataSource onSwallowException 警告: An internal o ...
- 各种操作中心Operation Center一览
Operation Center在中国可能有很多种名称,例如指挥中心.运维室.总控中心等等,国外可能也有很多名称,不管名称如何,任何一个上规模得数据总心或者运维单位一般都有一个这样得中心,来负责所管理 ...