오래된 우 시장, 유적지 의 사다리.
21381 단어 기초 알고리즘
우 시 는 유구 한 역 사 를 가 진 도시 로 2333 년 고고학자 들 이 우 시 에서 신비 로 운 유적 을 발견 했다. 이런 용감 하고 지혜 로 운 고대 대원 들 은 이 유적 에 들 어 갈 준 비 를 하지만 이 유적 에 들 어 가 려 면 하늘 사다 리 를 통과 해 야 한다.사다리 에 오 르 려 면 그 방법 에 따라 야 한다. 그렇지 않 으 면 올 라 갈 수 없다.그것 이 요구 하 는 방법 은:
1. 1 。
2. ( )。
3. k , , 2^k。 i , i+k , ( + 2^k) 。 !
처음에 고고학 소대 가 1 급 사다리 에 있 었 다.가장 높 은 계단 에 오 르 기 위해 최소한 의 이동 보 수 를 계산 해 보 세 요.
왜 고고학 은 게임 모험 처럼 만 들 었 습 니까?우 시 는 틀림없이 마 성의 도시 일 것 이다!입력 설명:
첫 번 째 줄: 하나의 정수 N 은 사다리 급 수 를 나타 낸다.
두 번 째 줄: N 개의 정 수 는 각 층 의 사다리 의 높이 로 점차 증가 할 것 을 보증한다.
출력 설명:
하나의 정수, 사다리 에 올 라 갈 수 있다 면 최소 걸음 수 를 출력 합 니 다. 그렇지 않 으 면 출력 - 1.
예제 1 입력 복사
5 0 1 2 3 6
출력 복사
7
설명 하 다.
1≤N≤2001 \leq N \leq 2001≤N≤200。 각 계단 의 높이 는 231 - 12 ^ {31} - 1231 - 1 을 초과 하지 않 습 니 다.
#include
#include
#include
#include
using namespace std;
long long f[60],dp[205],s[205];
int main()
{
int n;
f[0] = 1;
for (int i = 1; i <= 42; i++)
{
f[i] =f[i-1]* 2;
}
for (int i = 1; i <= 205; i++)
dp[i] = 1e16;
cin >> n;
dp[1] = 0;
for (int i = 1; i <= n; i++)
cin >> s[i];
for (int i = 2; i <= n; i++)
for (int j = i-1; j >0; j--)
{
if (s[i] - s[j] == 1)
dp[i] = dp[j] + 1;
else {
for (int k = j-1; k >0&&k>j-31; k--)
{
if (s[i] - s[k] <= f[j - k])
{
dp[i] = min(dp[i], dp[j] + j - k + 1);
}
}
}
}
if (dp[n] >= 1e16/2)
dp[n] = -1;
cout << dp[n] << endl;
}
#pragma GCC optimize(2)
#include
#define ll long long
#define maxn 1005
#define inf 1e9
#define pb push_back
#define rep(i,a,b) for(int i=a;i<=b;i++)
#define per(i,a,b) for(int i=a;i>=b;i--)
using namespace std;
inline ll read()
{
ll x=0,w=1; char c=getchar();
while(c<'0'||c>'9') {if(c=='-') w=-1; c=getchar();}
while(c<='9'&&c>='0') {x=(x<<1)+(x<<3)+c-'0'; c=getchar();}
return w==1?x:-x;
}
const int N=2e2+10;
ll a[N],dp[N],f[N];
int n;
int main()
{
f[0]=1;rep(i,1,40) f[i]=f[i-1]*2;
n=read(); rep(i,1,n) a[i]=read(),dp[i]=1e14;
dp[1]=0;
for(int i=2;i<=n;++i){
int flag=0;
for(int j=i-1;j>=1;--j){
for(int k=0;k<i-j&&k<41;++k){
if(a[j]+f[k]>=a[i]){
dp[i]=min(dp[i],dp[j+k]+k+1);
flag=1;
}
}
}
if(!flag) {puts("-1");return 0;}
}
printf("%d
",dp[n]);
}
/*
5
0 1 2 3 100
*/
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
조세 프 링 문제 (구조 체 지침 실현)#include<stdio.h> #include<stdlib.h> struct node{ int data; struct node *next; }; int main(){ int i,j,k,m,n; struct node...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.