首页 > 其他分享 >最优性剪枝,可行性剪枝,优化搜索顺序,排除等效冗余

最优性剪枝,可行性剪枝,优化搜索顺序,排除等效冗余

时间:2023-10-16 19:13:07浏览次数:33  
标签:剪枝 cnt int sum 最优性 num 杨辉三角 冗余

杨辉三角:

 

 

//https://www.luogu.com.cn/problem/P1118


//最优性剪枝:

//由高中知识可得,abcd四个数符合杨辉三角的数相乘,即
//res=a+3*b+3*c+d,前面的常数项也就是杨辉三角的数字
//根据此结论,进行剪枝

//由于暴力枚举全排列+部分剪枝不可过,所以要考虑方法性剪枝
#include<bits/stdc++.h>
using namespace std;
const int N=2e5+10;
int cow[N],n,m,k;
int res[N];
bool vis[N];
//当前搜索到第cnt个数,当前的数是num,前cnt个数的和是sum
bool dfs(int cnt,int num,int sum)
{
    if(sum>k) return false;
    if(cnt==n){
        if(sum==k){
            res[cnt]=num;
            return true;
        }
        return false;
    }
    vis[num]=true;//当前的数字标记,被搜过了
    for(int i=1;i<=n;i++){
        if(!vis[i]&&dfs(cnt+1,i,sum+cow[cnt]*i)){ //如果没被搜过并且dfs为true
            res[cnt]=num;
            return true;
        }
    }
    vis[num]=false;//退出标记,为先前的循环做准备
    return false;
}
int main()
{
    cin>>n>>k;
    cow[0]=cow[n-1]=1;
    if(n>1)
        for(int i=1;2*i<n;i++)
            cow[i]=cow[n-i-1]=(n-i)*cow[i-1]/i;
    //for(int i=0;i<=n;i++) cout<<cow[i]<<' ';
    if(dfs(0,0,0))
        for(int i=1;i<=n;i++) cout<<res[i]<<' ';
        
    return 0;
}

 

标签:剪枝,cnt,int,sum,最优性,num,杨辉三角,冗余
From: https://www.cnblogs.com/o-Sakurajimamai-o/p/17768140.html

相关文章

  • 力扣18:四数之和(双指针+剪枝)
    给你一个由 n 个整数组成的数组 nums ,和一个目标值 target 。请你找出并返回满足下述全部条件且不重复的四元组 [nums[a],nums[b],nums[c],nums[d]] (若两个四元组元素一一对应,则认为两个四元组重复):0<=a,b,c,d <na、b、c 和 d 互不相同nums[a]+nums[b]......
  • 我们的人生是冗余
    我们的人生是冗余的----从大刘说说得到自己的手工记录 狮子啊大部分时间都在休息,只有少部分时间在捕猎,角马大部分时间都在吃草,少部分时间在休息。能不能奋斗到食物链的顶端和休息不休息没什么太大关系,其实我们人生大多数的时间也是冗余的真的到逆天改命的时候,短短的几年......
  • 网络规划设计师真题解析--独立磁盘冗余阵列(二)(容量的计算)
    假如有3块容量是160G的硬盘做RAID5阵列,则这个RADI5的容量是(1);而如果有2块160G的盘和1块80G的盘,此时RAID5的容量是(2)。(1)A.320G    B.160G     C.80G     D.40G(2)A.40G     B.80G     C.160G    D.200G答案:(1)A (2)C解析:常见的RAID......
  • YOLOv5:对yolov5n模型进一步剪枝压缩
    YOLOv5:对yolov5n模型进一步剪枝压缩前言前提条件相关介绍具体步骤修改yolov5n.yaml配置文件单通道数据(黑白图片)修改models/yolo.py文件修改train.py文件剪枝后模型大小参考前言由于本人水平有限,难免出现错漏,敬请批评改正。更多精彩内容,可点击进入YOLO系列专栏、自然语言处理专栏......
  • 搜索剪枝
    虽然我很懒,但集训期间还是强迫我自己写一下博客吧!搜索剪枝不搜不知道,我的搜索如同一坨shift。搜索没逻辑,剪枝随便捡,然后喜提withreturnvalue3221225725P1025数的划分非常简单的一道,数的拆分题题目描述将整数\(n\)分成\(k\)份,且每份不能为空,任意两个方案不相同(不......
  • 结构化剪枝 之 L1 剪卷积核 笔记
    论文:https://arxiv.org/pdf/1608.08710.pdf摘要CNN在各种应用中的成功伴随着计算和参数存储成本的显著增加。最近减少这些开销的努力包括在不损害原始精度的情况下修剪和压缩各个层的权重。然而,基于大小的权值修剪减少了完全连接层的大量参数,并且由于修剪后的网络中的不规则稀......
  • dedebiz 清理冗余废弃未引用图片方法
    原理描述:在原有织梦后台菜单中增加"清理冗余图片按钮",实现清理冗余图片的功能.操作步骤:1.打开后台admin\sys_sql_query.php代码在该文件中搜索如下代码://修复全部表elseif($dopost=="repairAll"){  $dsql->SetQuery("ShowTables");  $dsql->Execute('t'); ......
  • 模型压缩-剪枝算法详解
    近年来主流的模型压缩方法包括:数值量化(DataQuantization,也叫模型量化),模型稀疏化(Modelsparsification,也叫模型剪枝ModelPruning),知识蒸馏(KnowledgeDistillation),轻量化网络设计(LightweightNetworkDesign)和张量分解(TensorDecomposition)。其中模型剪枝是一种应用非常......
  • 网络规划设计师真题解析--独立磁盘冗余阵列RAID(一)
    RAID1中数据冗余是通过什么技术实现的()。A.OXR运算    B.海明码校验    C.P+Q双校验    D.镜像答案:D解析:RAID1,磁盘镜像,可并行读数据,由于在不同的两块磁盘写入相同数据,写入数据比RAID0慢一些。安全性最好,但空间利用率最低。实现RAID1至少需要2块硬盘。《网络规划设......
  • mybatisplus中按照条件查询的三种方式,常用的是lambda查询,当进行测试查询的时候,可以将
    2023-09-10目录结构 logback.xml<?xmlversion="1.0"encoding="UTF-8"?><configuration></configuration>application.ymlspring:datasource:driver-class-name:com.mysql.cj.jdbc.Driverurl:jdbc:mysql://loca......