BZOJ4676: Xor-Mul棋盘

空中飞行物检测数据集解析与应用实践 目标检测是计算机视觉的核心任务之一,通过边界框定位和类别识别实现物体检测。其技术原理基于卷积神经网络提取特征,结合区域建议和分类器完成检测流程。在无人机监控、智慧交通等领域具有重要应用价值。本文以包含2895张图片的空中飞行物检测数据集为例,详细解析其VOC/YOLO双格式标注特点,覆盖鸟类、无人机等五类目标。针对数据预处理、增强策略和模型训练等工程实践环节,提供Albumentations增强配置、类别不平衡处理等实用方案,特别适合低空域安防系统开发。数据集中的运动模糊和遮挡情况反而增强了模型鲁棒性,通过 阅读详情

题目大意:给定一个网格棋盘,每条边有一个权值c,每个点有两个权值a,b,你需要给每个点一个权值d,使得每个点的(a^d)*c的和+每条边的两个端点的d异或起来*c的和最小


首先因为是位运算,所以每一位相互独立,可以分开算

然后就能想到状压DP,因为n只有5而且每一列只和上一列有关系,所以可以设f[i][j]表示第i列的状态为j,目前产生的代价最小值

这样转移的时候枚举上一列的情况,然后计算新产生的权值,时间复杂度是O(位运算的每一位*m*状态数*上一列的状态数*计算对应的权值)=O(20*M*2^n*2^n*n)=O(20NM*4^n)

显然是过不了的

我们考虑优化,我们可以发现计算新的权值这一步挪到外面去做,因为他跟你是哪一位没关系,只需要O(M*4^n)预处理出对于每一列来说这列状态和上一列状态分别是j和k时边产生的代价,再O(NM*2^n)当这一列状态为j时,点产生的代价,这样在枚举每一位时就不需要O(N)计算新产生的权值了!

总时间复杂度降成了O(20M*4^N)


#pragma GCC optimize("O2")
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#define N 10010
using namespace std;
long long n,m;
long long a[6][N],b[6][N],c1[6][N],c2[6][N];
long long A[6][N];
long long f[N][32],F[N][32][32];
bool p(long long x,long long k)
{
    return ((x&(1<<(k-1)))!=0);
}
long long solve(long long x)
{
    long long i,j,k,l;
    for(i=1;i<=n;i++)
    for(j=1;j<=m;j++)
    {
        if(a[i][j]&x) A[i][j]=1;
        else A[i][j]=0;
    }
    for(i=1;i<=m;i++)
    for(k=0;k<(1<<n);k++)
    {
        long long tmp=0;
        for(j=1;j<=n;j++)
        {
            tmp+=b[j][i]*(A[j][i]^p(k,j));
            if(j==n)
            tmp+=c2[j][i]*(p(k,n)^p(k,1));
            else
            tmp+=c2[j][i]*(p(k,j)^p(k,j+1));
        }
        f[i][k]=1e18;
        //if(k==3) cout<<tmp;
        for(l=0;l<(1<<n);l++)
        {
            long long tmp2=0;
            f[i][k]=min(f[i][k],f[i-1][l]+F[i][k][l]);
        }
        f[i][k]+=tmp;
        /*  if(k==3)
        cout<<i<<' '<<k<<' '<<f[i][k]<<endl;*/
    }
    long long minn=1e18;
    for(i=0;i<(1<<n);i++)
    minn=min(minn,f[m][i]);
    return minn*x;
}
int main()
{
    scanf("%lld%lld",&n,&m);
    long long i,j,k,l;
    for(i=1;i<=n;i++)
    for(j=1;j<=m;j++)
    scanf("%lld",&a[i][j]);
    for(i=1;i<=n;i++)
    for(j=1;j<=m;j++)
    scanf("%lld",&b[i][j]);
    for(i=1;i<=n;i++)
    for(j=1;j<m;j++)
    scanf("%lld",&c1[i][j]);
    for(i=1;i<=n;i++)
    for(j=1;j<=m;j++)
    scanf("%lld",&c2[i][j]);
    for(i=1;i<=m;i++)
    for(k=0;k<(1<<n);k++)
    {
        long long tmp=0;
        for(l=0;l<(1<<n);l++)
        {
            long long tmp2=0;
            for(j=1;j<=n;j++)
            tmp2+=c1[j][i-1]*(p(k,j)^p(l,j));
            F[i][k][l]=tmp2;
        }
    }
    long long ans=0;
    for(i=0;i<=19;i++)
    ans+=solve(1<<i);
    printf("%lld",ans);
}

YOLOv8【第十章:多任务扩展深度篇·第18节】不规则工业缺陷分割——针对划痕、裂纹的 Seg 模型调优! 🏆 本文收录于 《YOLOv8实战:从入门到深度优化》 专栏。该专栏系统复现并梳理全网各类 YOLOv8 改进与实战案例(当前已覆盖分类 / 检测 / 分割 / 追踪 / 关键点 / OBB 检测等方向),坚持持续更新 + 深度解析,质量分长期稳定在 97 分以上,可视为当前市面上 覆盖较全、更新较快、实战导向极强 的 YOLO 改进系列内容之一。 阅读详情

相关推荐

H3C VRF实验

POP-vpn-instance-RT1]route-distinguisher 11:11 # VPN实例-RT1的路由区分器值11:11。配置路由泄露,其实就是在一个VPN示例中添加另一个VPN实例的下一跳,比如在VPN实例RT1中添加去往SRV的默认路由。但是也有了一个新的问题,那就是RT1、RT2和RT3也能互访了,这让VPN实例变得没有意义了。[POP]ip vpn-instance RT1 #配置vpn实例-RT1。绑定了VPN实例,所以要把路由添加到VPN实例POP中。

m0_68698993的博客 4030

bzoj 4676 Xor-Mul棋盘 - 状压

……每一位独立,直接朴素dp即可。 (可以类似插头dp一样逐格转移优化掉一个2n2^n2n但是懒的写了) #include&amp;lt;bits/stdc++.h&amp;gt; #define rep(i,a,b) for(int i=a;i&amp;lt;=b;i++) #define lint long long #define ull unsigned lint #define gc getchar() #de...

Mys_C_K的博客 369

告别复杂配置!用GuidosToolbox 3.0做MSPA景观格局分析,从安装到出图全记录

本文详细介绍了如何使用GuidosToolbox 3.0进行MSPA景观格局分析,从安装配置到出图全流程。涵盖环境准备、数据预处理、参数设置、结果解读及可视化技巧,帮助用户快速掌握这一生态安全评估工具。特别针对安装教程中的常见问题提供解决方案,提升分析效率。

weixin_29248313的博客 490

BZOJ4676 Xor-Mul棋盘/BZOJ3254 Xor-Mul Chessboard

首先位运算具有独立性,那么我们可以每一位分别考虑,那么我们只需要确定这一位是0还是1 考虑f[i][j]表示第i行,状态为j的最小花费 复杂度20nm4^n 预处理两个状态之间的转移,复杂度20m4^n 我写了一发,但是还是T了 我们可以考虑逐格转移,f[d]表示当前轮廓线状态是d的最小花费,然后逐格转移,每次把轮廓线移动一格,枚举状态,对新格子上面原来是0还是1两种状态计算新格子的影响

neither_nor 502

CentOS 7下Oracle 11G RAC静默安装避坑指南:从网络规划到共享存储配置全流程

本文详细介绍了在CentOS 7环境下进行Oracle 11G RAC静默安装的全流程,包括网络规划、共享存储配置和系统参数调优等关键步骤。特别针对静默安装过程中的常见问题提供了实用的避坑指南和优化建议,帮助技术人员高效完成企业级数据库部署。

weixin_29234509的博客 128

非华为电脑也能用上鸿蒙生态?手把手教你给Win10/Win11装上最新华为电脑管家(附移动应用引擎开启方法)

本文详细介绍了如何在非华为品牌的Windows 10/11电脑上安装华为电脑管家并启用移动应用引擎,实现鸿蒙生态的无缝协同体验。从BIOS设置到安装步骤,再到性能优化和常见问题解决,手把手教你解锁跨设备高效工作流。

weixin_42542669的博客 4264

POJ-3254-Corn Fields(状压DP)

题目链接:第一个做的状压 题目描述:一个row*col的矩阵,每个格子是0或者1,1表示土壤肥沃可以种植草地,0则不可以。 在种草地的格子可以放牛,但边相邻的两个格子不允许同时放牛,问总共有多少种放牛的方法? (不放牛也算一种情况) 题解:状压DP模板题,dp[i][j]:表示前i和且第i行状态为j的方案数(具体解释代码中有介绍) #include #includ

信仰.的博客 599

Vivado与VCS+Verdi联合仿真环境搭建全攻略

本文详细介绍了如何搭建Vivado与VCS+Verdi联合仿真环境,旨在解决Vivado Simulator在大型FPGA验证中速度慢、调试弱的问题。通过指导工具版本配对、环境变量设置、关键参数配置及Xilinx仿真库编译,帮助工程师高效整合Vivado的设计管理、VCS的高速仿真与Verdi的深度调试能力,从而显著提升验证效率。

weixin_29219189的博客 577

RK3568开发笔记- (TX/RX) RGMII delayline 功能调试

本文详细介绍了RK3568芯片RGMII接口delayline功能的调试过程。针对千兆以太网通信不稳定问题,通过分析RGMII时序要求,利用RK3568内置的delayline功能补偿信号延迟。调试方法包括扫描delayline窗口、测试中间值配置、优化硬件设计等步骤。文章还总结了常见问题解决方案,如PHY选型建议和自动扫描功能配置。最终实现了千兆速率下丢包率降至0.01%以下的目标,为类似开发场景提供了实用参考。

flypig has a dream! 318

996引擎 - 读写变量性能测试

单轮100万次读写,取3轮平均耗时(毫秒),有效读取率均为100%,数值越小性能越优。

灵台方寸山斜月三星洞 245

BZOJ4676 Xor-Mul棋盘

传送门 题目大意懒得写了,题目说的挺明白的了 题解 主要的难点在于异或意义下的最大值和很玄学,但不难发现这道题中让你定义的$D_{i,j}$只参与异或运算,所以我们可以逐位进行讨论。所以我们每一位就只有$0$和$1$两种状态,由于$n$很小,所以我们可以把每一列的$01$情况压成二进制状态。由于是在异或意义下,我们可以预处理这一位上每一列每个状态的$A$的$01$情况,每一列的每一个状...

weixin_30367543的博客 121

CGAL AlphaShape算法(自适应Alpha值,二维版本)

CGAL AlphaShape算法(自适应Alpha值,二维版本)

dayuhaitang1的博客 2325

bzoj 4057(状压dp)

传送门 题解:设f[i](bool)表示能否出现状态i,二进制i的1表示破产,0表示幸存#include<bits/stdc++.h> using namespace std; int n,a[22][22],ans[22],cnt; bool f[1050000]; int main() { // freopen("bzoj 4057.in","r",stdin); int kase;

KGV093的博客 646

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

最小K度限制生成树

算法目的:给出V0,KV_{0},K和一个带边权的无向图,求出在V0V_{0}的度数最多为KK的限制下的最小生成树预备知识:最小生成树、动态规划定义:强制K度最小生成树为所有生成树中V0V_{0}的度数为KK的权值最小的生成树大概思路:先把V0V_{0}和V0V_{0}有关的边都删除,假设现在的图分成了MM个联通块,则我们可以得知对于任何生成树V0V_{0}的度数至少为MM。那么我们依次求出强制M度

commonc的博客 2228

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

BZOJ4385: [POI2015]Wilcze doły

题目大意:给定一个长度为n的序列,你有一次机会选中一段连续的长度不超过d的区间,将里面所有数字全部修改为0。请找到最长的一段连续区间,使得该区间内所有数字之和不超过p。 长度肯定为d啊,不用想! 那就先算出以每个长度为d的总和g 然后就相当于维护一个队列,每次在后面新加入一个数的时候,查询在这段区间内最大的g,看这些数总和减去这个最大值是否小于等于p,如果不是就说明太长了,得删掉队头 这样

commonc的博客 1746

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

BZOJ4784: [Zjoi2017]仙人掌

题目大意:给你一个无重边无自环的无向连通图,问有多少种加边方法,使得加完边之后这个图是一个仙人掌 好像蛮厉害的一个题 我们把仙人掌想象成DFS树+返祖边,显然返祖边连接的两个点之间的路径不能有交 因为题目中说了不能有重边,所以我们可以想象把最后仙人掌的那些“桥”又连了一条边,这样就变成了我们要把DFS树上所有的边都用“返祖边两点之间的路径”来覆盖 这个我们可以怎么做呢?

commonc的博客 1574

BZOJ2794: [Poi2012]Cloakroom

题目大意:n个物品有三个属性a,b,c,q个询问每次给出m,k,s,问能不能在物品中选出一些使得每个的a≤m,b>m+s,c的和正好等于k 看完题感觉无从下手.... 然后就去翻了题解,感觉还是挺水的.... 先离线,把询问按m排序,物品按a排序,这样就相当于每次添加物品,问能不能在正好凑出c的情况下让最小的b大于m+s 这就可以直接背包了.... 时间复杂度O(QlogQ+N*

commonc的博客 1464

BZOJ4379: [POI2015]Modernizacja autostrady

题目大意:给定一棵无根树,边权都是1,去掉一条边并加上一条新边,输出所有可能的新树的直径中的最小值和最大值 一看就知道肯定是treeDP了 我们可以考虑对于每一条边,假设把它删掉,会得到两棵小树 此时新树的最大直径肯定是把两个小树的直径连起来,使得L=L1+L2+1 而最小直径肯定是连接两个直径的中点,使得L≈max(L1,L2) 所以我们需要得知对于每条边两边的小树的直径分别是

commonc的博客 1445

BZOJ4629: [BeiJing2016]打字机

测试点 1 – 2 满足,n = 1 或 k = 0; 测试点 1 – 6 满足,n ≤ 100,m ≤ 500,∑|Si| ≤ 500,A i ≤1000; 测试点 7 – 8 满足,k = 0,∑|Si| ≤ 200; 测试点 9 – 10 满足,∑|Si| ≤ 50,A i ≤1。 对于 100%的数据,n ≤ 100,m ≤ 10 9 ,∑|Si| ≤ 500,A

commonc的博客 1251

BZOJ3830: [Poi2014]Freight

题目大意:有两个城镇,从A到B需要的时间为S,然后有N辆列车需要从A到B再回来,任何时刻铁路上只能有向着同一个方向前进的列车,然后每辆列车有一个从A出发的最早出站时间,问所有列车全部回到A站的最早时间 首先经过分析可以得出,这些列车是分批行进的,就是一批列车从A到B再回来,然后下一批列车再走...一定不会出现某辆列车在某一批到了B而留在那里没有跟着下一波回A的浪潮回来而留守B地等待下一次的情况,

commonc的博客 1246

BZOJ3174: [Tjoi2013]拯救小矮人

题目大意: 每个小矮人有臂长和身高,它们可以搭人梯,如果人梯的人高度总和+最上面的人的手的高度>=H,那最上面的人就可以跑,跑了的人不能再搭人梯,问最多能跑几个小矮人 这题...做了好长好长时间啊 貌似从2015年就开始做了,但是当时写了个贪心不对,然后又上网搜题解没看懂,瞎改DP也不对,过了几个月重新做也是WA,今天突然心血来潮写一发就A了... 首先是要按照身高+臂长来排序,但是

commonc的博客 1109

BZOJ3872: [Poi2014]Ant colony

题目大意:给一棵树,对于每个叶子节点,都有g群蚂蚁要从外面进来,每群蚂蚁在行进过程中只要碰到岔路,就将平均地分成岔路口数-1那么多份,然后平均地走向剩下的那些岔路口,余下的蚂蚁自动消失,树上有一个关键边,假如有一群蚂蚁通过了这条边且数量恰好为k,这k只蚂蚁就被吃掉,问一共有多少只蚂蚁被吃掉 显然得从那条关键边倒着推 以这条边作为这棵树的“根”,开始遍历其他的边,遍历到每条边的时候计算一

commonc的博客 1108

BZOJ2425: [HAOI2010]计数

题目大意:给你一个最多50位的数,求在所有通过由他去掉0和重新排列数字顺序能产生的数中,比他小的有多少个首先位数少的肯定有去掉0的操作,我们可以默认是把0挪到了前面 问题就变成了把这些数字重新排列顺序能产生多少个比他小的数 首先需要知道当各个数字个数分别为a0,a1...a9a_{0},a_{1}...a_{9}时,自由排列能产生的数的个数为(a0+a1+...+a9)!a0!a1!...a9!

commonc的博客 1089

BZOJ2526: [Poi2011]Inspection

题目大意:给定一颗n个节点的树,要求求出从每个节点开始的遍历最小代价。一次遍历是指,每次从这个点出发去一个点再回来,代价是这条边边权*2,相邻两次选择的点对于这个点来说不能在同一颗子树里,最后一次可以不用回来,总代价就是每次出去再回来的代价之和 刚一看题,这不SB题吗,一个treeDP维护出来最长链次长链不就完事了吗,每次从一个点转移过来的时候就各种讨论一下就好了 判断误无解的时候,只

commonc的博客 1039
上一篇: BZOJ3771: Triple
下一篇: BZOJ2212&3702: [Poi2011]Tree Rotations
commonc
博客等级 码龄11年 173粉丝 167原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值