Codeforces Round #599 (Div. 2) A. Maximum Square
Ujan decided to make a new wooden roof for the house. He has nn rectangular planks numbered from 11 to nn. The ii-th plank has size ai×1ai×1 (that is, the width is 11 and the height is aiai).
Now, Ujan wants to make a square roof. He will first choose some of the planks and place them side by side in some order. Then he will glue together all of these planks by their vertical sides. Finally, he will cut out a square from the resulting shape in such a way that the sides of the square are horizontal and vertical.
For example, if Ujan had planks with lengths 44, 33, 11, 44 and 55, he could choose planks with lengths 44, 33 and 55. Then he can cut out a 3×33×3 square, which is the maximum possible. Note that this is not the only way he can obtain a 3×33×3 square.
What is the maximum side length of the square Ujan can get?
The first line of input contains a single integer kk (1≤k≤101≤k≤10), the number of test cases in the input.
For each test case, the first line contains a single integer nn (1≤n≤10001≤n≤1000), the number of planks Ujan has in store. The next line contains nn integers a1,…,ana1,…,an (1≤ai≤n1≤ai≤n), the lengths of the planks.
For each of the test cases, output a single integer, the maximum possible side length of the square.
4
5
4 3 1 4 5
4
4 4 4 4
3
1 1 1
5
5 5 1 1 5
3
4
1
3
The first sample corresponds to the example in the statement.
In the second sample, gluing all 44 planks will result in a 4×44×4 square.
In the third sample, the maximum possible square is 1×11×1 and can be taken simply as any of the planks.
//先从小打到排序,然后枚举最大边长
#include<bits/stdc++.h>
using namespace std;
const int maxn =;
int n,a[maxn];
void solve() {
scanf("%d",&n);
for(int i=; i<n; i++) {
scanf("%d",&a[i]);
}
sort(a,a+n);//从小到大
int ans = ;
for(int i=; i<n; i++) {//从小开始
for(int j=a[i]; j>=; j--) {//让j为a[i]的高度,然后递减
if((n-i)>=j) {// 如果大于a[i]的数目大于等于j,那么此时最大就是j
ans=max(ans,j);
break;
}
}
}
cout<<ans<<endl;
}
int main() {
int t;
scanf("%d",&t);
while(t--)solve();
}
Codeforces Round #599 (Div. 2) A. Maximum Square的更多相关文章
- Codeforces Round #599 (Div. 2) A. Maximum Square 水题
A. Maximum Square Ujan decided to make a new wooden roof for the house. He has
- Codeforces Round #599 (Div. 2) D. 0-1 MST(bfs+set)
Codeforces Round #599 (Div. 2) D. 0-1 MST Description Ujan has a lot of useless stuff in his drawers ...
- Codeforces Round #599 (Div. 2)
久违的写篇博客吧 A. Maximum Square 题目链接:https://codeforces.com/contest/1243/problem/A 题意: 给定n个栅栏,对这n个栅栏进行任意排 ...
- Codeforces Round #599 (Div. 2)的简单题题解
难题不会啊…… 我感觉写这个的原因就是因为……无聊要给大家翻译题面 A. Maximum Square 简单题意: 有$n$条长为$a_i$,宽为1的木板,现在你可以随便抽几个拼在一起,然后你要从这一 ...
- Codeforces Round #221 (Div. 1) B. Maximum Submatrix 2 dp排序
B. Maximum Submatrix 2 Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/problemset ...
- Codeforces Round #276 (Div. 1) B. Maximum Value 筛倍数
B. Maximum Value Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/484/prob ...
- Codeforces Round #508 (Div. 2) E. Maximum Matching(欧拉路径)
E. Maximum Matching 题目链接:https://codeforces.com/contest/1038/problem/E 题意: 给出n个项链,每条项链左边和右边都有一种颜色(范 ...
- [Codeforces Round #247 (Div. 2)] A. Black Square
A. Black Square time limit per test 1 second memory limit per test 256 megabytes input standard inpu ...
- Codeforces Round #172 (Div. 2) D. Maximum Xor Secondary 单调栈应用
http://codeforces.com/contest/281/problem/D 要求找出一个区间,使得区间内第一大的数和第二大的数异或值最大. 首先维护一个单调递减的栈,对于每个新元素a[i] ...
随机推荐
- JS中axios使用注意点
今天遇到这样一个问题,前端会同时弹出成功和失败的两个提示框,由于不是本人操作,也没有怀疑是前端代码的问题,就索性根据后端的日志作为分析依据,开始个人以为是后端接口上班了两次结果,一个是成功,另外一个是 ...
- Angular 相关概念
1.XMLHttpRequest 对象(属于xmlJavascript) XMLHttpRequest 对象用于在后台与服务器交换数据. Ajax 是对XMLHttpRequest 的封装,XMLHt ...
- SpringMVC流程图示
- jQuery---学习roadmap---4 parts
jQuery---学习roadmap---4 parts jQuery初识 jQuery让js的开发变得更加简单 jQuery解决了浏览器的兼容性问题 学习目标 使用jQuery设计常见的效果 掌握j ...
- TCP/IP详解,卷1:协议--第8章 Traceroute程序
引言 由Van Jacobson编写的Tr a c e r o u t e程序是一个能更深入探索T C P / I P协议的方便可用的工具. 尽管不能保证从源端发往目的端的两份连续的 I P数据报具有 ...
- 【HTML】三种方法使HTML单页面输入密码才能访问
方法一 <script type="text/javascript"> function password() { var testV = 1; var pass1 = ...
- 【Python】字符串处理方法
- 数据库ETL同步 cdc开启,Git同步url添加用户名密码
添加双主键 alter table TChargeRecordMainNew add constraint pk_name primary key (任务编码,序号) ---------------- ...
- jQuery func
1. $(selector).each(function(index,element)); -----------index 选择器的index位置,element --当前的元素 2. _.eac ...
- sql查询 —— 分组
-- 分组 -- group by -- 分组只有与聚合函数一起使用才能发挥作用 -- 分组只限于字段分明 例如 性别 ,部门, --列出所有性别 select gender from student ...