2019 JUST Programming Contest J. Grid Beauty
3.0 s
256 MB
standard input
standard output
You are given a grid gg consisting of nn rows each of which is divided into mm columns.
You can swap any two integers in the same row infinitely, but you cannot swap two integers from two different rows.
Your task is to maximize the beauty of the grid by rearranging integers in each row. The beauty of the grid is the number of pairs (i,j ) (1<i≤n,1≤j≤m ) such that gi,jgi,j is equal to gi−1,j (i.e. gi,j≡gi−1 ).
The first line contains an integer T (1≤T≤5 ) specifying the number of test cases.
The first line of each test case contains two integers nn and mm (1≤n,m≤103 ), giving the number of rows and columns in the grid, respectively.
Then nn lines follow, each line contains mm integers, giving the grid. All values in the grid are between 1 and 108 (inclusive).
For each test case, print a single line containing the beauty of the grid.
2
2 3
1 2 3
4 1 2
3 3
5 7 9
3 2 9
5 3 2
2
3
As input/output can reach huge size it is recommended to use fast input/output methods: for example, prefer to use scanf/printf instead of cin/cout in C++, prefer to use BufferedReader/PrintWriter instead of Scanner/System.out in Java.
解题思路:这道题就是给说如果a[i][j] = a[i-1][j]则是美丽的,问你说最多有几个;
这道题我是卡着时间过的,用map超时了,用unorder_map变快了,可能有其他人有很多更好的做法,下面是我的做法;
#include<iostream>
#include<stdio.h>
#include<unordered_map> //unordered_map的头文件;
#include<algorithm>
using namespace std; int n ;
int row , col;
int a[][];
unordered_map<int,int>flag; //用来记录当前行出现了数字出现多少个;
unordered_map<int,int>flag1; //用来记录下一行的数字出现多少个;
int ans = ; int main()
{
scanf("%d",&n);
while(n--)
{
ans = ;
scanf("%d%d",&row,&col);
for(int i = ;i < row ;i++)
{
for(int j = ; j < col ;j++)
{
scanf("%d",&a[i][j]);
} }
for(int i = ; i < row- ;i++ )
{
for(int j = ; j < col ;j++)
{ flag[a[i][j]]++; //统计每个数字出现的个数;
flag1[a[i+][j]]++; //统计下一行每个数字出现的个数;
}
for(int j = ; j < col ; j++)
{ if(flag1[a[i+][j]]>) //如果这一行的数字在下一行出现过;
{
ans += min(flag[a[i+][j]],flag1[a[i+][j]]);
//不断取这一行和下一行的较小者;
flag1[a[i+][j]] = ;
//并将统计过的数字个数重新置为0;
}
}
for(int j = ; j < col ;j++)
{
flag[a[i][j]] = ;
flag1[a[i+][j]] = ;
//初始化,方便后面的行的比较,比如比较了第一和第二行,现在比较第二和第三行,所以每个数字出现的个数要重新置为0;
}
}
printf("%d\n",ans);
}
return ;
}
2019 JUST Programming Contest J. Grid Beauty的更多相关文章
- The 2018 ACM-ICPC China JiangSu Provincial Programming Contest J. Set
Let's consider some math problems. JSZKC has a set A=A={1,2,...,N}. He defines a subset of A as 'Meo ...
- Gym 100952J&&2015 HIAST Collegiate Programming Contest J. Polygons Intersection【计算几何求解两个凸多边形的相交面积板子题】
J. Polygons Intersection time limit per test:2 seconds memory limit per test:64 megabytes input:stan ...
- 2017-2018 ACM-ICPC Latin American Regional Programming Contest J - Jumping frog 题解(gcd)
题目链接 题目大意 一只青蛙在长度为N的字符串上跳跃,"R"可以跳上去,"P"不可以跳上去. 字符串是环形的,N-1和0相连. 青蛙的跳跃距离K的取值范围是[1 ...
- zoj The 12th Zhejiang Provincial Collegiate Programming Contest Convert QWERTY to Dvorak
http://acm.zju.edu.cn/onlinejudge/showContestProblem.do?problemId=5502 The 12th Zhejiang Provincial ...
- AtCoder diverta 2019 Programming Contest 2
AtCoder diverta 2019 Programming Contest 2 看起来我也不知道是一个啥比赛. 然后就写写题解QWQ. A - Ball Distribution 有\(n\)个 ...
- 【AtCoder】diverta 2019 Programming Contest 2
diverta 2019 Programming Contest 2 A - Ball Distribution 特判一下一个人的,否则是\(N - (K - 1) - 1\) #include &l ...
- 【AtCoder】diverta 2019 Programming Contest
diverta 2019 Programming Contest 因为评测机的缘故--它unrated了.. A - Consecutive Integers #include <bits/st ...
- [AtCoder] Yahoo Programming Contest 2019
[AtCoder] Yahoo Programming Contest 2019 很遗憾错过了一场 AtCoder .听说这场是涨分场呢,于是特意来补一下题. A - Anti-Adjacency ...
- zoj The 12th Zhejiang Provincial Collegiate Programming Contest Beauty of Array
http://acm.zju.edu.cn/onlinejudge/showContestProblem.do?problemId=5496 The 12th Zhejiang Provincial ...
随机推荐
- kubernetes 集群安全配置
版本:v1.10.0-alpha.3 openssl genrsa -out ca.key 2048 openssl req -x509 -new -nodes -key ca.key -subj & ...
- 结对作业——四则运算 Part2. 封装与对接相关问题
结对作业——四则运算 Part2. 封装与对接相关问题 PB15061303 刘梓轩PB16061489 艾寅中 GITHUB 地址 戳这里 目录 Part 1. Core代码编写部分Part 2. ...
- Scala基础:面向对象之trait
trait类似于java中的interface,但是有所不同 Scala中的trait是一种特殊的概念: 首先先将trait作为接口使用,此时的trait就与Java中的接口 (interface)非 ...
- Kubuntu上截屏的小技巧
Kubuntu上自带了截屏软件ksnapshot,只需要按Print Screen就会自动调起,实际上挺方便的:但是,Print Screen的默认行为是截下整个屏幕,这往往不是我们需要的. 实际上, ...
- Java-集合条件筛选
import java.lang.reflect.Field; import java.lang.reflect.Modifier; import java.util.ArrayList; impor ...
- Java中String类型详解
这篇博客是我一直想总结的,这两天一直比较忙,先上传下照片吧,过后有时间再弄成正常的. 本文主要是对Java中String类型的总结,包括其在JVM中是怎么存储的...
- linux环境下搭建osm_web服务器四(对万国语的地名进行翻译和检索):
对万国语的地名进行翻译和检索 经过 前三篇的调试,已经有了一个完整的Map可以浏览,我们痛苦的世界范围数据下载.导入过程也结束了.要提醒一下的是,鉴于网速,不要下载 planetosm.lastest ...
- AJAX和DHTML
DHTML: (动态的html)本身不是一门新语言,而是一门新技术,包含以下 html . css . dom . js AJAX : 也是一门新技术包含 html . css. dom ...
- python 网络编程 TCP/IP socket UDP
TCP/IP简介 虽然大家现在对互联网很熟悉,但是计算机网络的出现比互联网要早很多. 计算机为了联网,就必须规定通信协议,早期的计算机网络,都是由各厂商自己规定一套协议,IBM.Apple和Micro ...
- PHP Windows系统下调用OpenOffice
项目需要把用户上传的word文档转换为pdf文件,方便用户浏览.经过谷歌百度找到PHP可以使用COM组件调用微软的openoffice来实现文档转换 1,安装OpenOffice 安装OpenOffi ...