每日一题(PTAL2-052):吉利矩阵--dfs

cpp 复制代码
#include<bits/stdc++.h>
using namespace std;
int res=0;
int sum_row[4]={0};
int sum_col[4]={0};
void dfs(int x,int sum,int width){
    if(x==width*width){
        ++res;
        return;
    }
    for(int i=0;i<=sum;i++){
        if(x % width ==width-1 && i!=sum-sum_row[x / width])continue;
        if(x / width ==width-1 && i!=sum-sum_col[x % width])continue;
        if(sum_row[x / width]+i<=sum && sum_col[x % width]+i<=sum){
            sum_col[x % width]+=i;sum_row[x/width]+=i;
            dfs(x+1,sum,width);
            sum_col[x % width]-=i;sum_row[x/width]-=i;
        }
    } 
}
int main(){
    int sum,width;
    cin>>sum>>width;
    dfs(0,sum,width);
    cout<<res;
    return 0;
}

注意点:

1 利用全局变量res存储个数。

2 和岛屿类似 这里用for循环进行寻找每种情况,并通过一加一减进行回溯

相关推荐
阿旭超级学得完7 小时前
C++11(初始化)
java·开发语言·数据结构·c++·算法
黎阳之光7 小时前
黎阳之光:视频孪生硬核赋能,共启数字孪生水利监测新征程
大数据·人工智能·算法·安全·数字孪生
云淡风轻~窗明几净7 小时前
关于角谷猜想的五行小猜想
数据结构·算法
广州灵眸科技有限公司7 小时前
瑞芯微(EASY EAI)RV1126B openclaw部署接入飞书
linux·网络·人工智能·算法·yolo·飞书
工业机器人销售服务7 小时前
告别漫长停机:伯朗特机器人如何用“自动换模”重塑生产效率
大数据·人工智能·算法
listhi5207 小时前
LTE标准下Turbo码编译码仿真
算法·matlab
吞下星星的少年·-·7 小时前
区间转化、扫描线
算法
笨笨饿7 小时前
80_聊聊SPI以及它们的变体
linux·c语言·网络·stm32·单片机·算法·个人开发
Ricardo-Yang7 小时前
使用GEE以及LandSat8植被指数NDVI计算
python·深度学习·神经网络·算法·视觉检测
sheeta19988 小时前
LeetCode 每日一题笔记 日期:2026.05.12 题目:1665. 完成所有任务的最少初始能量
笔记·算法·leetcode