이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include<bits/stdc++.h>
using namespace std;
typedef long long int lld;
double DP[3001][3001];
//int oper;
void compute(int level,int lo_i,int hi_i, int lo_j, int hi_j){
if(lo_i>hi_i)return;
//oper+=hi_j-max(lo_j,level-1)+1;
//cout<<level<<" "<<lo_i<<" "<<hi_i<<" "<<lo_j<<" "<<hi_j<<endl;
int mid=(lo_i+hi_i)/2;
DP[mid][level]=-1;
int opt=-1;
for(int i=max(lo_j,level-1);i<=hi_j && i<mid;i++){
if(DP[mid][level]<DP[i][level-1]+(double)(mid-i)/(mid)){
DP[mid][level]=DP[i][level-1]+(double)(mid-i)/(mid);
opt=i;
}
//DP[mid][level]=max(DP[mid][level],DP[i][level-1]+(double)(mid-i)/(mid));
}
//cout<<lo_i<<" "<<mid<<" "<<hi_i<<" "<<lo_j<<" "<<opt<<" "<<hi_j<<endl;
compute(level,lo_i,mid-1,lo_j,opt);
compute(level,mid+1,hi_i,opt,hi_j);
}
int main(){
int n,k;
scanf("%d %d",&n,&k);
for(int i=0;i<=n;i++)DP[i][0]=0;
/*for(int i=1;i<=n;i++){
for(int j=1;j<=k && j<=i;j++){
DP[i][j]=0;
//cout<<i<<" A "<<j<<endl;
for(int l=j-1;l<i;l++){
double d=(double)(i-l)/i;
//cout<<l<<" "<<d<<endl;
DP[i][j]=max(DP[i][j],DP[l][j-1]+d);
}
//printf("%lf ",DP[i][j]);
//cout<<endl;
}//printf("\n");
}*/
for(int i=1;i<=k;i++){//oper=0;
compute(i,i,n,0,n);
//cout<<i<<" "<<oper<<endl;
}
/*for(int i=0;i<=k;i++){
for(int j=i;j<=n;j++){
printf("%lf ",DP[j][i]);
}printf("\n");
}*/
printf("%.10lf\n",DP[n][k]);
return 0;
}
컴파일 시 표준 에러 (stderr) 메시지
akvizna.cpp: In function 'int main()':
akvizna.cpp:27:8: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
scanf("%d %d",&n,&k);
~~~~~^~~~~~~~~~~~~~~
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |