hdu 1058 +hdu 3199
11032 단어 HDU
http://acm.hdu.edu.cn/showproblem.php?pid=1058
http://acm.hdu.edu.cn/showproblem.php?pid=3199
이 두 문 제 는 매우 유사 하 다. 그 사상 은 가장 작은 만족 조건 에서 계산 하여 한 걸음 한 걸음 결 과 를 구 하 는 것 이다.
hdu 1058
View Code
1 #include<iostream>
2 #include<algorithm>
3 const int N=5843;
4 #define min(a,b) (a)<(b)?(a):(b)
5 using namespace std;
6 int num[N];
7
8 int main(){
9 int i=1,j=1,k=1,l=1;
10 num[1]=1;
11 for(int count=2;count<=N;count++){
12 int a=num[i]*2;
13 int b=num[j]*3;
14 int c=num[k]*5;
15 int d=num[l]*7;
16 int ans=min(a,min(b,min(c,d)));
17 if(a==ans)i++;
18 if(b==ans)j++;
19 if(c==ans)k++;
20 if(d==ans)l++;
21 num[count]=ans;
22 }
23 int n;
24 while(scanf("%d",&n)!=EOF&&n){
25 printf("The %d",n);
26 if(n%100!=11&&n%10==1)printf("st");
27 else if(n%100!=12&&n%10==2)printf("nd");
28 else if(n%100!=13&&n%10==3)printf("rd");
29 else printf("th");
30 printf(" humble number is %d.
",num[n]);
31 }
32 return 0;
33 }
hdu 3199:
View Code
1 #include<iostream>
2 #include<cstring>
3 const int N=200000000;
4 #define min(a,b) (a)<(b)?(a):(b)
5 using namespace std;
6 __int64 f[N];
7
8 int main(){
9 __int64 p1,p2,p3,n;
10 while(scanf("%I64d%I64d%I64d%I64d",&p1,&p2,&p3,&n)!=EOF){
11 f[1]=1;
12 __int64 i=1,j=1,k=1;
13 for(int count=2;count<=n+1;count++){
14 __int64 a=f[i]*p1;
15 __int64 b=f[j]*p2;
16 __int64 c=f[k]*p3;
17 __int64 ans=min(a,min(b,c));
18 if(ans==a)i++;
19 if(ans==b)j++;
20 if(ans==c)k++;
21 f[count]=ans;
22 }
23 printf("%I64d
",f[n+1]);
24 }
25 return 0;
26 }
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
[HDU] 4089 활성화 확률 DPdp[i][j]를 모두 i개인의 대기열인 Tomato가 j위 서버가 마비될 확률로 역추를 사용하면 우리는 상태 이동 방정식을 얻을 수 있다. i == 1 : dp[1][1] = dp[1][1] * p1 + dp[1]...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.