zoukankan      html  css  js  c++  java
  • 【CH2201】小猫爬山

    一道很基础的深搜题,数据范围不大,稍加剪枝即可通过。

    将重量降序排列,对于已经选了的车,尝试当前的猫能不能坐,如果全部尝试失败,则另用一辆车。

     1 #include <iostream>
     2 #include <cstdio>
     3 #include <algorithm>
     4 typedef long long ll;
     5 inline int read() {
     6     int ret=0,f=1;
     7     char c=getchar();
     8     while(c<'0'||c>'9') {if(c=='-') f=-1;c=getchar();}
     9     while(c<='9'&&c>='0') ret=ret*10+c-'0',c=getchar();
    10     return ret*f;
    11 }
    12 using namespace std;
    13 int n,a[20],use[20],w;
    14 int ans;
    15 int cmp(int x,int y) {
    16     return x>y;
    17 }
    18 void dfs(int now,int sum) {
    19     if(sum>ans) return ;
    20     if(now==n+1) {
    21         ans=min(ans,sum);
    22         return ;
    23     }
    24     for(int i=1;i<=sum;i++) 
    25         if(a[now]+use[i]<=w) {
    26             use[i]+=a[now];
    27             dfs(now+1,sum);
    28             use[i]-=a[now];
    29         }
    30     use[sum+1]=a[now];
    31     dfs(now+1,sum+1);
    32     use[sum+1]=0;
    33 }
    34 int main() {
    35     n=read(); w=read();
    36     for(int i=1;i<=n;i++) a[i]=read();
    37     sort(a+1,a+n+1,cmp);
    38     ans=n;
    39     dfs(1,0);
    40     printf("%d
    ",ans);
    41     return 0;
    42 }
    AC Code
  • 相关阅读:
    左滑删除 --- 自定义组件(优化)
    扩展方法
    关于Windows服务中的一点小记录
    MySQL数据库方面
    反射初探
    FireDAC读取数据Delphi
    Delphi学习之 FireDAC
    向ComboBox列表框中添加Enum的全部数据
    怎样在VC中生成一个DLL
    AutoCAD 开发备注
  • 原文地址:https://www.cnblogs.com/shl-blog/p/10581741.html
Copyright © 2011-2022 走看看