hdu 1009
1753 단어 욕심
학습:
1. 논리 적 오 류 는 항상 있 을 수 있 습 니 다. 배열 에 대한 처리 능력 을 강화 해 야 합 니 다. 다른 사람들 은 모두 구조 체 를 사용 하고 저 는 3 열의 숫자 표를 사용 하여 문 제 를 처리 한 것 을 보 니 구조 체 에 대해 아직 사용 한 적 이 없 는 것 같 습 니 다.
2. 그 동안 성 가 비 에 대한 순 서 는 정렬 을 선택 하 는 사상 을 사 용 했 습 니 다. 알고리즘 을 충분히 이해 한 후에 스스로 사용 하 는 것 이 경계 입 니 다. 예 를 들 어 빠 른 정렬 에서 하나의 key 로 데 이 터 를 기록 하 는 것 이 좋 습 니 다.
#include<stdio.h>
double str[10001][3];
int main(void)
{
double n;
int m;//max±íʾ»ñµÃµÄJavabeanµÄÖµ¡£
while(scanf("%lf %d",&n,&m)!=EOF)
{
double max=0;
int line=m;//line±íʾÓÐЧÐÐÊý£¬f¡¾j¡¿Îª0µÄÐж¼ÎÞЧ£¬²»ÒªÇ®Ö±½ÓÂò¡£
if(n==-1&&m==-1) break;
for(int i=0;i<m;++i)
{
scanf("%lf",&str[i][0]);
scanf("%lf",&str[i][1]);
if(str[i][1]==0)
{
max+=str[i][0];
--i;
--line;
--m;
}
else str[i][2]=str[i][0]/str[i][1];//Êý×éµÄµÚÒ»Áбíʾ·¿¼äµÄJavabeansµÄÊýÁ¿£¬µÚ¶þÁбíʾ
//ʾÐèÒªµÄèʳ£¬µÚÈýÁбíʾÐÔ¼Û±È
}
for(int i=line;i>0;--i)
{
int key=0;
double aa=0;//keyÓÃÀ´±£´æ×î´óÐԼ۱ȵÄÐÐϱ꣬aa±£´æ×î´óÐÔ¼Û±È
for(int j=i;j>0;--j)
{
if(str[j-1][2]>aa)
{
key=j-1;
aa=str[j-1][2];
}
}//ÀàËÆÓÚÑ¡ÔñÅÅÐò£¬ÕÒ³öÿ´Î×î´óÐÔ¼Û±È
if(str[key][1]<n)
{
max+=str[key][0];
n-=str[key][1];
}
else
{
max+=n*str[key][2];
break;
}
str[key][0]=str[i-1][0];
str[key][1]=str[i-1][1];
str[key][2]=str[i-1][2];//×îºóÒ»×éÊý¾ÝתÒƵ½key×éÊý¾Ý£¬ÒòΪÏ´β»»á¶Áµ½×îºóÒ»×éÊý¾Ý
}
printf("%.3lf
",max);
}
return 0;
}
난호 주해!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
HPU - ACM 여름 훈련 2 주차 14 급 개인전: Problem D [욕심]Problem D Problem Description 그 러 고 보 니 해동 그룹 이 안팎 으로 어려움 을 겪 고 있 고 회사 의 원로 도 XHD 부부 만 남 았 다 고 한다.분명히 여러 해 동안 싸 운 상인 으로서...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.