1.11 프로그래밍 기초의 2분 찾기 04: 네트워크 담당자
2110 단어 이분
04: 네트워크 담당자
묘사
선경의 주민들은 프로그래밍 지역 경기를 열기로 결정했다.심판위원회는 완전히 자원으로 구성되어 있으며, 그들은 역사상 가장 공정한 경기를 조직하겠다고 약속했다.그들은 선수들의 컴퓨터를 성형 토폴로지 구조로 연결시켜 단일한 센터 서버에 연결시키기로 했다.심판위원회 의장은 이 완전히 공정한 경기를 조직하기 위해 모든 선수의 컴퓨터 등을 서버 주위에 거리를 두고 놓아야 한다고 제안했다.
심판위원회는 인터넷 라인을 구매하기 위해 현지의 한 인터넷 솔루션 제공 업체에 연락하여 일정한 수량의 등장망 라인을 제공할 수 있도록 요구했다.심판위원회는 네트워크가 길어질수록 좋아져 선수들 사이의 거리가 가능한 한 멀어지기를 바란다.
이 회사의 네트워크 담당자가 이 임무를 맡았다.그는 재고 중의 모든 망선의 길이(정확하게 센티미터까지)를 알고 있으며, 그에게 필요한 망선의 길이(정확하게 센티미터까지)를 알려주기만 하면 망선에 대한 절단 작업을 완성할 수 있다.하지만 이번에는 필요한 망선의 길이를 몰라 망선 담당자들이 당황하고 있다.
네트워크 담당자가 가장 긴 네트워크 길이를 정하고 이 길이에 따라 재고 중인 네트워크 라인을 절단하여 지정된 수량의 네트워크 라인을 얻을 수 있도록 프로그램을 작성해야 한다.
입력
첫 번째 줄에는 단일 공백으로 구분되는 두 개의 정수 N과 K가 포함되어 있습니다.N(1<=N<=10000)은 재고 중인 네트워크 수이고, K(1<=K<=10000)는 필요한 네트워크 수량이다.
다음 N행은 재고 중인 각 네트워크 라인의 길이(단위: 미터)를 줄마다 세어 줍니다.모든 망선의 길이는 적어도 1m, 많게는 100km이다.입력의 모든 길이는 센티미터까지 정확합니다. 즉, 소수점 뒤에 두 자리까지 유지됩니다.
출력
네트워크 관리자는 재고된 네트워크에서 지정된 수량의 네트워크의 최장 길이(단위: 미터)를 잘라낼 수 있습니다.반드시 센티미터까지 정확하게 해야 한다. 즉, 소수점 뒤에 두 자리까지 보존해야 한다.
길이가 1cm 이상인 네트워킹을 지정할 수 없는 경우 따옴표 없이 0.00을 출력해야 합니다.
샘플 입력
4 11
8.02
7.43
4.57
5.39
샘플 출력
2.00
컨베이어 도어
이 문제에 관해서 나는 두 가지 방면을 이야기하고 싶다
먼저 문제 풀이 사고방식:
알고리즘은 당연히 2분이다. 주요한 문제는 적당한 좌우 단점을 찾는 것이다.
분석에 의하면 모든 네트워크가 같을 때 답은 최대 네트워크 길이/필요 수량이므로 오른쪽 단점을 확정한다.
마찬가지로 분석에 의하면 답안의 최소값은 >= 최장 네트워크/필요 수량이다.
이 문제의 답안은 아주 간단하게 나왔다.
그러나 나는 2분의 과정에서 더블로 저장하지 않았다. 예를 들어 더블 형식의 4.00을 입력하면 실제 저장은 3.9999이기 때문이다.
그래서 나는 그것을 *100 후에 위로 정돈하면 이 정밀도 문제를 해결할 수 있다
다음 절차는 참조용으로만 제공됩니다.
#include
#include
#include
using namespace std;
double x;
long long y,z,l,r,mid,s[10005],n,m,w;
int main()
{
scanf("%lld %lld",&m,&n);
for(int i=1;i<=m;i++)
{
scanf("%lf",&x);
s[i]=int(x*100+0.5);
z=z>s[i]? z:s[i];
y+=s[i];
}
l=z/n,r=y/n;
while(l=n) l=mid;
else r=mid-1;
}
printf("%.2lf",l/100.0);
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
|NOIOJ|2분|04: 네트워크 관리자심판위원회는 인터넷 라인을 구매하기 위해 현지의 한 인터넷 솔루션 제공 업체에 연락하여 일정한 수량의 등장망 라인을 제공할 수 있도록 요구했다.심판위원회는 네트워크가 길어질수록 좋아져 선수들 사이의 거리가 가능한 한...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.