B - Young Explorers CodeForces - 1355B
3496 단어 활용단어참조CodeForces
Young wilderness explorers set off to their first expedition led by senior explorer Russell. Explorers went into a forest, set up a camp and decided to split into groups to explore as much interesting locations as possible. Russell was trying to form groups, but ran into some difficulties...
Most of the young explorers are inexperienced, and sending them alone would be a mistake. Even Russell himself became senior explorer not long ago. Each of young explorers has a positive integer parameter eiei — his inexperience. Russell decided that an explorer with inexperience ee can only join the group of ee or more people.
Now Russell needs to figure out how many groups he can organize. It's not necessary to include every explorer in one of the groups: some can stay in the camp. Russell is worried about this expedition, so he asked you to help him.
Input
The first line contains the number of independent test cases TT(1≤T≤2⋅1051≤T≤2⋅105). Next 2T2T lines contain description of test cases.
The first line of description of each test case contains the number of young explorers NN (1≤N≤2⋅1051≤N≤2⋅105).
The second line contains NN integers e1,e2,…,eNe1,e2,…,eN (1≤ei≤N1≤ei≤N), where eiei is the inexperience of the ii-th explorer.
It's guaranteed that sum of all NN doesn't exceed 3⋅1053⋅105.
Output
Print TT numbers, each number on a separate line.
In ii-th line print the maximum number of groups Russell can form in ii-th test case.
Example
Input
2
3
1 1 1
5
2 3 1 2 2
Output
3
2
Note
In the first example we can organize three groups. There will be only one explorer in each group. It's correct because inexperience of each explorer equals to 11, so it's not less than the size of his group.
In the second example we can organize two groups. Explorers with inexperience 11, 22 and 33 will form the first group, and the other two explorers with inexperience equal to 22 will form the second group.
This solution is not unique. For example, we can form the first group using the three explorers with inexperience equal to 22, and the second group using only one explorer with inexperience equal to 11. In this case the young explorer with inexperience equal to 33 will not be included in any group.
제목: t조 데이터, 각 조는 n 개인, 모든 사람은 대응하는 경험치 e.현재 이들을 조로 나누어야 한다(일부 사람들은 어느 조에도 나누지 않아도 되고 고아에 해당한다[아니다]). 경험치 e를 요구하는 사람들 중 적어도 e명은 나누어야 한다.예를 들어(2,3,3) 이런 구분은 합리적이지만 (2,3) 이런 구분은 불합리하다. 팀에 e=3명이 생겼는데 그가 나타난 팀은 적어도 3명이 있어야 한다.최대 몇 조로 나눌 수 있는 사람을 구하다.
문제풀이: 그룹을 최대한 많이 만들기 위해서는 그룹의 e값이 가능한 한 낮아야 합니다.그래서 일부 e치가 특히 높은 형님들은 그들을'고아'로 만들 수 있다. 그 다음에 이 e치를 작은 것부터 큰 것까지 순서를 정하는 것이다. 먼저 e치가 낮은 사람을 그룹으로 나누고, 인원수가 충분하면 e치가 높은 사람들을 고려할 수 있다. 번거로운 것은 당신이 어떤 e치를 그룹에 나누고 싶다면, 당신은 e치가 그와 같은 사람보다 적은 사람만 가지고 있느냐 하는 것이다.(약간 빙빙 돌려서 예를 들면 만약에 내가 어떤 e치가 3인 사람을 그룹에 나누고 싶다면 적어도 2개의 e치가 3보다 작은 사람이 필요하다. 왜냐하면 e치가 3보다 크면 이 팀의 용량을 확대할 수 있기 때문이다.)해석이 어려워서 코드를 보면 알 수 있을 거야.
#include
#include
using namespace std;
int t, n, a[200005];
int main(){
scanf("%d", &t);
while(t--){
int sum=0;
scanf("%d", &n);
for(int i=0; i
제가 좀 멍청해서 제 뜻을 잘 전달할 수가 없어서 코드에 대량의 문자 주석을 넣었습니다. 이해를 도와주셨으면 좋겠습니다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
제이티의 사용에 대한 상세한 설명Continuation 메커니즘을 이용하여 대량의 사용자 요청과 비교적 긴 연결을 처리한다.또한 Jetty는 매우 좋은 인터페이스를 설계했기 때문에 Jetty의 어떤 실현이 사용자의 수요를 만족시키지 못할 때 사용자...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.