zoukankan      html  css  js  c++  java
  • 1489 蜥蜴和地下室

    1489 蜥蜴和地下室

    去掉头尾就可以吃了

    dfs

    AC代码:

     1 #include<bits/stdc++.h>
     2 using namespace std;
     3 
     4 const int INF=1<<30;
     5 int n,a,b,ans=INF,sum=0;
     6 int s[11];
     7 
     8 void dfs(int x,int num){
     9     if(x==n){
    10         ans=min(ans,num);
    11         return ;
    12     }
    13     if(s[x-1]<0){
    14         dfs(x+1,num);
    15     }
    16     int t=0;
    17     if(s[x-1]>=0){
    18         t=s[x-1]/b+1;
    19         num+=t;
    20         s[x-1]-=b*t;
    21         s[x]-=a*t;
    22         s[x+1]-=b*t;
    23         dfs(x+1,num);
    24         num-=t;
    25         s[x-1]+=b*t;
    26         s[x]+=a*t;
    27         s[x+1]+=b*t;
    28     }
    29     int t1=s[x]/a+1;//若x-1为负后x依然为正,则说明x血量大于x-1
    30     //可以通过直接t1打爆x或通过x+1打爆x 
    31     if(s[x]>=0&&t<t1){
    32         for(int i=t=1;i<t1;i++){
    33             num+=i;
    34             s[x-1]-=b*i;
    35             s[x]-=a*i;
    36             s[x+1]-=b*i;
    37             dfs(x+1,num);
    38             num-=i;
    39             s[x-1]+=b*i;
    40             s[x]+=a*i;
    41             s[x+1]+=b*i;
    42         }
    43     }
    44     return ;
    45 }
    46 int main(){
    47     cin>>n>>a>>b;
    48     memset(s,0,sizeof(s));
    49     for(int i=1;i<=n;i++){
    50         cin>>s[i];
    51     }
    52     int x=s[1]/b+1;//去头 
    53     sum+=x;
    54     s[1]-=b*x;
    55     s[2]-=a*x;
    56     s[3]-=b*x;
    57     if(s[n]>=0){//去尾,注意这里可能会受去头影响,所以设一个if 
    58         x=s[n]/b+1;
    59         sum+=x;
    60         s[n]-=b*x;
    61         s[n-1]-=a*x;
    62         s[n-2]-=b*x;
    63     }
    64     dfs(2,0);
    65     if(ans==INF)
    66     ans=0;
    67     cout<<sum+ans<<endl;
    68     return 0;
    69 } 
  • 相关阅读:
    说说Java中的代理模式
    一个奇怪的异常
    JDBC第二次学习
    浅谈事务
    JDBC第一次学习
    Firebug & Chrome Console 控制台使用指南
    js 事件创建发布
    vue ui之 iview 事件拦截
    fetch获取json的正确姿势
    js对象通过属性路径获取属性值
  • 原文地址:https://www.cnblogs.com/Kiven5197/p/7229098.html
Copyright © 2011-2022 走看看