zoukankan      html  css  js  c++  java
  • codevs 2851 菜菜买气球

    dp加二分法

    链接:http://codevs.cn/problem/2851/

     1 #include<iostream>
     2 #include<vector>
     3 #include<algorithm>
     4 #include<cstdio>
     5 #include<cstring>
     6 #include<queue>
     7 #include<cmath>
     8 using namespace std;
     9 
    10 int a[2010];
    11 int b[2010];
    12 int n,m,k;
    13 int f[2101][2010];
    14 
    15 
    16 int dp(int x,int y)
    17 {
    18     if(x==y) return a[x];
    19     if(f[x][y]>0) return f[x][y];
    20     int mid=(x+y)/2;
    21     return f[x][y]=dp(x,mid)+dp(mid+1,y);
    22 } 
    23 
    24 bool IsP(int x)
    25 {
    26     if(x<=1) return false;
    27     for(int i=2;i<=floor(sqrt(x));i++)
    28         if(x%i==0) return false;
    29     return true;
    30 }
    31 
    32 int main()
    33 {
    34     cin>>n;
    35     for (int i=1;i<=n;i++)
    36         cin>>a[i];
    37     for (int i=1;i<=n;i++) 
    38          for (int j=1;j<=n;j++)
    39               f[i][j]=-1;
    40     int ans=0;
    41     int l,r;
    42 
    43     for (int i=1;i<=n;i++)
    44         for (int j=i;j<=n;j++)
    45         {
    46             int p=dp(i,j);
    47             if (IsP(p)&&p>ans)
    48             {
    49                 l=i;    
    50                 r=j;
    51                 ans=p;
    52             }
    53         } 
    54     cout<<l<<" "<<r<<" "<<ans;
    55     return 0; 
    56 }
  • 相关阅读:
    组合数学练习
    floyd算法新理解
    图论练习
    GDOI2021 day2总结
    P3190 [HNOI2007]神奇游乐园
    P1932 A+B A-B A*B A/B A%B Problem
    P2289 [HNOI2004]邮递员
    P5056 【模板】插头dp
    P4323 [JSOI2016]独特的树叶
    CF1153D Serval and Rooted Tree
  • 原文地址:https://www.cnblogs.com/pter/p/5684132.html
Copyright © 2011-2022 走看看