首页 > 其他分享 >nc51012 小猫爬山

nc51012 小猫爬山

时间:2024-03-27 20:45:07浏览次数:25  
标签:nc51012 小猫 int 爬山 dfs 缆车 ans return

有n只猫,重量分别为C[i],要将所有小猫都放进缆车里,缆车的最大承重为W,问至少要多少辆缆车才能装下?
1<=n<=18; 1<=C[i]<=W<=1e8

n比较小,可以暴力搜索,dfs(x,g)表示当前已经分了g个组,考虑如何分配第x只猫,枚举将猫放进g组中的每一个,另外也可以让它单独一组。按体重从大到小排序,可以触发剪枝而大大提高效率。

#include <bits/stdc++.h>
using namespace std;
int n, W, C[20], T[20], ans;
void dfs(int x, int g) {
    if (g >= ans) {
        return;
    }
    if (x > n) {
        ans = min(ans, g);
        return;
    }
    for (int i = 1; i <= g; i++) {
        if (T[i]+C[x] <= W) {
            T[i] += C[x];
            dfs(x+1, g);
            T[i] -= C[x];
        }
    }
    T[g+1] += C[x];
    dfs(x+1, g+1);
    T[g+1] -= C[x];
}
int main() {
    cin >> n >> W;
    for (int i = 1; i <= n; i++) {
        cin >> C[i];
    }
    sort(C+1, C+1+n, [&](int x, int y) {
        return x > y;
    });
    ans = 100;
    dfs(1, 0);
    cout << ans << "\n";
    return 0;
}

标签:nc51012,小猫,int,爬山,dfs,缆车,ans,return
From: https://www.cnblogs.com/chenfy27/p/18100186

相关文章

  • 2024年春季猫咪冒险游戏《小猫咪大城市》即将横扫PG游戏库!
    美国DouВLeDaggerStudio即将在2024前半年推出一款名为《LittleKitty,BigCity》的猫咪冒险游戏,计划在PCSteam/MicrosoftStore以及XboxOne/XboxSeriesX|S/PGSOFT电子游戏试玩平台上发布。除此之外,他们还计划将游戏移植到NintendoSwitch主机,并预计于2024年春季与其他平......
  • NOIP2023模拟16联测37 D. 小猫吃火龙果
    NOIP2023模拟16联测37D.小猫吃火龙果目录NOIP2023模拟16联测37D.小猫吃火龙果题目大意思路code题目大意有\(n\)个物品\(A\),\(B\),\(C\),\(A\)吃\(B\),\(B\)吃\(C\),\(C\)吃\(A\),有两种操作,给\([l,r]\)的\(x,y\)互换,求出经过操作后得出什么。\(n,......
  • 165.小猫爬山
    这类分组问题无非就是两种搜索顺序:1.对于每个元素,枚举它可能分配到哪一个组2.对于每个组,枚举它可能容纳哪些元素这道题先把猫的体重从大到小排序,可以减小状态空间:#include<iostream>#include<algorithm>#include<stdlib.h>usingnamespacestd;constintN=20,INF......
  • 可爱小猫猫【InsCode Stable Diffusion美图活动一期】
    一、StableDiffusion模型在线使用地址:https://inscode.csdn.net/@inscode/Stable-Diffusion二、模型版本及相关配置:模型:chilloutmix_NiPrunedFp32fixLora:cat_20230627113759采样迭代步数(steps):32采样方法(Sampler):DPM++2MKarras提示词相关性(CFGScale):7三、图......
  • 博客园下拉小猫特效
    博客园下拉小猫特效样式效果点击小猫之后会回到网页顶部使用方法1.在自己的博客园中找到管理->设置页面2.在页首HTML代码中插入<!--悬挂的喵--><scripttype="text/javascript"src="https://blog-static.cnblogs.com/files/fsh001/szgotop.js"></script><linkrel=......
  • 基于爬山优化算法的三维曲面极值搜索matlab仿真
    1.算法仿真效果matlab2022a仿真结果如下:   2.算法涉及理论知识概要       爬山法是一种优化算法,其一般从一个随机的解开始,然后逐步找到一个最优解(局部最优)。假定所求问题有多个参数,我们在通过爬山法逐步获得最优解的过程中可以依次分别将某个参数的值增加或者......
  • 基于爬山优化算法的三维曲面极值搜索matlab仿真
    1.算法仿真效果matlab2022a仿真结果如下:2.算法涉及理论知识概要爬山法是一种优化算法,其一般从一个随机的解开始,然后逐步找到一个最优解(局部最优)。假定所求问题有多个参数,我们在通过爬山法逐步获得最优解的过程中可以依次分别将某个参数的值增加或者减少一个单位。爬山法是......
  • 165. 小猫爬山
    题目描述每辆缆车承重一样,每个猫重量不一,最少需要多少缆车把猫运下山?f1-深搜+减枝基本分析怎么考虑搜索?对当前的猫来说,有当前开的缆车个数+新缆车几种选择状态空间有哪些维度?当前用到的缆车个数,当前正在处理的猫的id哪些可额能的减枝方式?(1)优化搜索顺序:从大到小;(2)最优性:>=ans......
  • 运输小猫
    题目传送门考虑每只小猫是否能被接到、等待时间,其实在于\(start+d_2+d_3+\dots+d_i\)的值,如果\(\get_i\),即出发时间加上这些距离晚于\(t_i\)。可以将\(d\)移过来,那么每只小猫都可以用一个数\(a_i\)来衡量了。对于\(a\)排序,即可以划分成最多饲养员数量\(p\)的组数。......
  • 20230415运动之白云洞爬山
      爬到山顶,就是为了吃碗素面,感受不一样的风景!   ......