zoukankan      html  css  js  c++  java
  • P2690 接苹果

    P2690 接苹果
    f[i][j][k]表示
    i=1或2,表示j时刻cow在哪棵树下
    j表示时刻
    k表示转移了k次
    如果当前第1棵树落苹果
    f[1][t][left]=max(f[1][t-1][left],f[2][t-1][left-1])+1;
    如果当前第2棵树落苹果
    f[2][t][left]=max(f[2][t-1][left],f[1][t-1][left-1])+1;

     1 #include<iostream>
     2 #include<cstdio>
     3 #include<queue>
     4 #include<algorithm>
     5 #include<cmath>
     6 #include<ctime>
     7 #include<cstring>
     8 #define inf 2147483647
     9 #define For(i,a,b) for(register int i=a;i<=b;i++)
    10 #define p(a) putchar(a)
    11 #define g() getchar()
    12 //by war
    13 //2017.10.18
    14 using namespace std;
    15 int n;
    16 int x;
    17 int w;
    18 int f[10][1010][40];
    19 int ans;
    20 void in(int &x)
    21 {
    22     int y=1;
    23     char c=g();x=0;
    24     while(c<'0'||c>'9')
    25     {
    26     if(c=='-')
    27     y=-1;
    28     c=g();
    29     }
    30     while(c<='9'&&c>='0')x=x*10+c-'0',c=g();
    31     x*=y;
    32 }
    33 void o(int x)
    34 {
    35     if(x<0)
    36     {
    37         p('-');
    38         x=-x;
    39     }
    40     if(x>9)o(x/10);
    41     p(x%10+'0');
    42 }
    43 
    44 void zy(int t)
    45 {
    46         f[1][t][0]++;   
    47         for(int left=2;left<=w;left+=2)
    48         f[1][t][left]=max(f[1][t-1][left],f[2][t-1][left-1])+1;
    49 }
    50 
    51 void yz(int t)
    52 {
    53         for(int left=1;left<=w;left+=2)
    54         f[2][t][left]=max(f[2][t-1][left],f[1][t-1][left-1])+1;
    55 }
    56 
    57 int main()
    58 {
    59     in(n),in(w);
    60     For(t,1,n)
    61     {
    62         for(int left=1;left<=w;left+=2)
    63         f[2][t][left]=f[2][t-1][left];
    64         for(int left=0;left<=w;left+=2)
    65         f[1][t][left]=f[1][t-1][left];
    66         in(x);
    67         if(x==1)
    68         zy(t);
    69         else
    70         yz(t);
    71     }
    72     for(int i=1;i<=w;i+=2)
    73     ans=max(ans,f[2][n][i]);
    74     for(int i=0;i<=w;i+=2)
    75     ans=max(ans,f[1][n][i]);
    76     o(ans);
    77      return 0;
    78 }
    View Code
  • 相关阅读:
    Vuex2.0+Vue2.0构建备忘录应用实践
    一步步构造自己的vue2.0+webpack环境
    .NET入行之工作前
    webpack入门之简单例子跑起来
    vue中,class、内联style绑定、computed属性
    wap问答系统工作总结
    ASP.NET Core Api网关Ocelot的中文文档
    在pom.xml中添加Spring依赖
    【java基础】从反射开始(Reflection)
    【java基础】 == 和 equals() 的区别
  • 原文地址:https://www.cnblogs.com/war1111/p/7688843.html
Copyright © 2011-2022 走看看