问题标题: 酷町堂:3109 体验积分值 题目描述 Description 卡卡西和小朋友们做完了烧脑的数字游戏,决定放松一下,他们来到万达乐园,乐园中有很多的游玩项目,每玩一个项目就能获取一定的体验积分,不同的项目产生不同体验积分,假设乐园所有游乐项目正好排成一排,并且游客们不能游玩任意相邻两个项目,那么卡卡西如何挑选游玩项目,使得这次万达行他能获得最多的体验积分值呢。 输入描述 Input Description 输入 共两行, 第一行是个正整数 n,表示万达乐园的游项目数 。 第 二行是 n个用空格隔开的正整数 ,分别表示每个游乐项目的体验积值 。 输出描述 Output Descrip

0
0
被禁言 李彦伯
李彦伯
修练者
修练者
#include<bits/stdc++.h>
using namespace std;
    bool pd(int x)
    {
        int i;
        for(i=2;i<=sqrt(x);i++)
          if(x%i==0)
        return false;
        return true;
    }
   bool pd2(int x)
    {   
 int a[101],i=0,j=0;
    while(x!=0)
    {
        a[j++]=x%10;
        x/=10;
    }
    j--;
    while(i<=j)
    {
        if(a[i]!=a[j])return false;
        i++,j--;
    }
    return true;
    }
void read()
{
    int n,m,i,num=0;
    cin>>n>>m;
     for(i=n;i<=m;i++)
    if(pd(i)==true && pd2(i)==true)
    num++;
    cout<<num;
}
int main()
{
    read();
    return 0;
}
 

 


1
程安琪
程安琪
资深守护
资深守护

这题非常简单,思路如下:

先定义两个个long long 类型的a[1005],dp[1005];

定义一个n;

输入n;

for循环(i从1到n){

    输入a[i];

}

dp[1]=a[1];

for循环(i从1到n){

    dp[i]=max(dp[i-1],dp[i-2]+a[i]);

}

输出dp[n];

望采纳!!!!

0
0
0
0
李雨彤
李雨彤
资深光能
资深光能

不要把题目描述放在题目里啊啊啊,一看吓一跳

0
沙宸安
沙宸安
高级启示者
高级启示者

请您下次把题目放在内文里,谢谢,不然看一眼就吓一跳

0
0
王一帆
王一帆
中级守护
中级守护

你为什么要问两个同样的问题?

0
董子墨
董子墨
中级天翼
中级天翼

动态规划

状态:f[i]:玩前i个项目能获得的最大体验积分 
边界:f[0]:0   f[1]=a[1]
状态转移方程:f[i]=max(f[i-2]+a[i],f[i-1])
目标:f[n] 
0
汪恺恒
汪恺恒
中级启示者
中级启示者

遍历1~n{

  • ds[i]=ns[i-1]+date[i];
  • ns[i]=max(ns[i-1],ds[i-1]);

}

最后比较ds[n]和ns[n]

0
我要回答