hdu 4499 Cannon(DFS)

深度学习 tesorflow2.0版本 入门第一章 为什么要学tensflow 深度学习发展迅猛 框架灵活 google开发 公司应用广泛 2.0更加灵活 后面会学习的项目 图像分类 房价预测 泰坦尼克号生存预测 文本分类 文本生成 机器翻译 核心部分 模型训练 tesorboard----> 查看模型训练进度 模型保存和部署 分布式训练-----> 加速训练速度,提升训练效率 TensorFlow常用库:Tfds, tfhub,tensor2tensor 多平台云端环境GPU:Goolgle cloud环境配置,AWS环境配置 kaggle平 阅读详情

题址:http://acm.hdu.edu.cn/showproblem.php?pid=4499

(看到标题第一反应...不是“炮”是,以为是佳能= =买照相机去了...)

本题大意是给你一个N*M的棋盘

然后给你Q个坐标,这些坐标上都是有棋子的。

接着放象棋里的“炮”...炮的规则大家都懂得吧,就是目标子与“炮”本身之间有且只有一个棋子时,炮可以吃掉目标子

问你最多可以放几个炮,使得“炮”之间不会互相攻击(攻击已有棋子不算)

DFS的一道题目,用回溯法,其实就是8皇后的升级版呗~

题目是个5*5的棋盘,直接暴力棋盘+深搜就行,感觉其实不剪枝也行,不过我还是剪了点

我是从上到下,从左到有逐行放置“炮的”

代码如下:

#include <iostream>
#include <cstring>
#include <cstdio>
#include <algorithm>
#include <queue>
using namespace std;
int n,m,q,x,y,sum;
int chess[6][6];
void dfs(int x,int y,int cnt)
{
    bool flag=true;
    if(x>=n)
    {
        sum=max(cnt,sum);
        return ;
    }
    if(y>=m)//列到头就重新另起一行
    {
        dfs(x+1,0,cnt);
        return ;
    }
    if(chess[x][y]==1)
    {
        dfs(x,y+1,cnt);
        return ;
    }
    dfs(x,y+1,cnt);
    int i;
    for(i=x-1;i>=0;i--)
    {
        if(chess[i][y])
        {
            break;
        }
    }
    for(int j=i-1;j>=0;j--)
    {
        if(chess[j][y])
        {
            if(chess[j][y]==2)
                flag=false;
            break;
        }
    }
    if(!flag)
        return ;
    for(i=y-1;i>=0;i--)
    {
        if(chess[x][i])
        {
            break;
        }
    }
    for(int j=i-1;j>=0;j--)
    {
        if(chess[x][j])
        {
            if(chess[x][j]==2)
                flag=false;
            break;
        }
    }
    if(!flag)
        return ;
    chess[x][y]=2;
    dfs(x,y+1,cnt+1);
    chess[x][y]=0;
}
int main()
{
    //freopen("in.txt","r",stdin);
    while(scanf("%d%d%d",&n,&m,&q)!=EOF)
    {
        memset(chess,0,sizeof chess);
        sum=0;
        while(q--)
        {
            scanf("%d%d",&x,&y);
            chess[x][y]=1;
        }
        dfs(0,0,0);
        printf("%d\n",sum);
    }
    return 0;
}








别再手搓SVG了!用Vue3+SVG.js快速搭建电力系统拓扑图(附完整代码) 本文介绍了如何利用Vue3和SVG.js实现电力系统拓扑图的低代码开发,通过组件化和响应式数据绑定,大幅提升开发效率。文章详细解析了SVG.js的核心功能,包括图形创建链式API、动态属性绑定和高级图形操作,并提供了断路器组件的完整实现代码。此外,还分享了性能优化策略和调试技巧,帮助开发者应对大规模拓扑图的挑战。 阅读详情

相关推荐

【商业化】【msix打包】Python 应用打包为 MSIX 的正确流程:入口点问题与解决方案

发现用msix打包工具打包python做的exe时总找不到程序入口点,后来理了一下才发现自己误会了,需要先生成一个基本的setup.exe,msix的打包是基于这个初始的安装程序进行的。只需要点击Buile-》Compile,然后Open Output Folder就可以得到exe安装程序了。可以使用免费工具inno setup来创建初始安装包。其中{group}这样的变量会自动匹配,不用自己指定。如果点击Run会运行安装程序。

每日出拳老爷子的博客 1103

hdu4499 Cannon (DFS+回溯)

DFS+回溯

2010

电压电流双闭环PFC单相PWM整流

电压电流双闭环PFC单相整流。仿真及代码

xht2403267701的博客 6051

hdu4499 Cannon DFS

Cannon Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65535/65535 K (Java/Others) Total Submission(s): 1062    Accepted Submission(s): 608 Problem Description In Chinese Chess, th

EventQueue的博客 631

双足肌肉骨骼机器人

Clone Alpha的技术突破标志着人类进入生物-机械融合的新纪元,但其影响远超技术范畴。从伦理框架重建(如拉马克进化算法中的知识传递机制)到经济模式革新(如UBI应对机器人失业潮),需全球协作制定前瞻性政策。若放任技术无序扩张,人类社会或将面临“能力断层”与“控制权丧失”的双重危机;反之,若以人类福祉为核心导向,仿生机器人亦可成为弥合残障歧视、提升整体文明层级的钥匙。当下选择,将决定人类究竟是技术的创造者,还是被重构的客体。

百态·数智思维 | 聚焦大数据、量化与未来AI 985

Python控制程控电源(USB)

随着智能电动汽车行业的持续发展,汽车电子或嵌入式设备在软硬件的测试中,都会使用程控电源供电,特别是自动化测试、压力测试场景必定使用到程控电源控制,控制电源上下电,监听电源电流、电压等,以下就以常见的艾德克斯程控电源为例,分享如何通过USB连接方式Python语言来控制程控电源。

测试领域技术分享 2864

hdu 4499 Cannon(暴力)

题目链接:hdu 4499 Cannon 题目大意:给出一个n*m的棋盘,上面已经存在了k个棋子,给出棋子的位置,然后求可以在这样的棋盘上放多少个炮,要求后放置上去的炮相互之间不能攻击。 解题思路:枚举行放的情况,用二进制数表示,每次放之前判断是否能放下(会不会和已经存在的棋子冲突),放下后判断会不会互相攻击的炮,只需要对每个新添加的炮考虑左边以及上边就可以了。 #i

不慌不忙、不急不躁 3570

092、多sensor帧同步在环视系统中的实现——基于瑞芯微RK3588的PPS同步与曝光同步方案

摘要: 本文探讨了瑞芯微RK3588平台在360环视系统中实现多摄像头帧同步的技术方案。针对环视拼接常见的动态场景错位问题,提出了PPS同步与曝光同步相结合的解决方案。通过GPIO硬件触发实现四路摄像头同步曝光,配合I2C全局曝光控制,将时间误差控制在0.5ms内。文章详细解析了RK3588设备树配置、内核驱动实现中的关键细节,包括同步信号处理、寄存器原子写入等核心技术点,并分享了量产中遇到的温度漂移、信号完整性等实际问题及解决方法。最终通过硬件整形和电源优化,将同步抖动控制在±5μs以内,有效解决了动态拼

zzfmlxs的博客 33

hdu4499 超暴力dfs回溯

Description In Chinese Chess, there is one kind of powerful chessmen called Cannon. It can move horizontally or vertically along the chess grid. At each move, it can either simply move to another e

Key的博客 556

R语言生存分析之竞争风险模型

R语言生存分析之竞争风险模型 竞争风险模型(Competing Risk Model)是一种处理多种潜在结局生存数据的分析方法,早在1999年Fine和Gray就提出了部分分布的半参数比例风险模型,通常使用的终点指标是累积发生率函数(cumulative incidence function,CIF)。 研究中结局事件可能有多个,某些结局将阻止感兴趣事件的出现或影响其发生的概率,各结局事件形成“竞争”关系,互为竞争风险事件。 竞争风险模型( Competing Risk Model ) : 指

data+scenario+science+insight 5246

5分钟用AI搞定顶刊级引言!掌握三段式结构+避坑要点,让你的Introduction更有说服力(附提示词)

说明你是怎么来填补这个缺口的,一句话概括你的研究,再简述你采用了什么新方法、新模型或新视角,也就是创新点,最后说明你的方案是怎么克服第二段提到的缺口的,带来了哪些贡献,注意要确保方案与第二段提到的缺口一一对应。以上三段式引言模板,是非常经典的问题导向型结构,相比传统的结构,这种结构更能吸引是审稿人的注意,希望这篇分享的模板能给在你写论文引言时,提供一点帮助。上一段写好后,就在前人研究的基础上,亮出自己的方案,借助AI说明自己的研究,用了什么新方法/框架/理论/视角来填补这个缺口的。

智能AI让学术科研更容易 744

hdu 4499

Cannon Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65535/65535 K (Java/Others) Total Submission(s): 1006    Accepted Submission(s): 577 Problem Description In Chinese Chess, th

zjbh89757的专栏 454

DC/DC开关电源学习笔记(十五)四开关Buck-Boost-FSBB升降压电路拓扑与工作原理

在DCDC领域,最为常见的是buck拓扑,其次是boost拓扑,而buck-boost的关注度相对较低。但是在电池供电场景日益普及的现在,升降压的需求在不断上升,现在更加关注buck-boost这个拓扑。而在所有buck-boost拓扑中,四开关buck-boost最受欢迎。四开关buck-boost的拓扑很简单,如下图。

小幽余生不加糖 5984

HDU4499 Cannon DFS 回溯的应用

HDU4499 Cannon DFS 回溯的应用 题意就是给你一个n*m的棋盘,然后上面已经有了 棋子。并给出这些棋子的坐标,可是这些棋子是死的就是不能动,然后让你在棋盘上面摆炮。可是炮之间不能互相吃。吃的规则我们斗懂得 炮隔山打嘛。问你最多能放几个炮 肯定是搜索了,n,m最大才5,可能挺久没做了,对于回溯反而把握不好了。...

weixin_30325971的博客 93

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

hdu4499Cannon dfs暴搜

//在一个n*m(n,m<=5)的棋盘上原来放着棋子 //在棋盘的空位上放炮,要求一个炮不能吃到 //另一个 #include #include #include using namespace std ; const int maxn = 10 ; int map[maxn][maxn] ; int n , m ; int judge(int i , int j) { int flag

ijbuhv的专栏 644

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

hdu 4499 Cannon dfs

题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=4499 题意: 在一个象棋棋盘上放炮,要求两个炮不能互相打到,然后问你最多能放几个炮 题解: dfs 一直dfs到最后一行最后一列 就可以 每个点只往上和往左扫了 vis[x][y]= 0 表示这个点没有棋子 1表示 普通的棋子 2表示 炮 代码: 1 #include ...

weixin_30300523的博客 105

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

hdu 4499 Cannon 暴力dfs搜索

题意:给你一个n*m的棋盘,有q个点已经放了棋。问最多还能放多少炮。要求炮与炮之间不能互相攻击。也就是两个炮直接不能隔着炮或者隔着棋。 做法:棋盘大小最大25个格子。2^25=3*10^7。如果枚举每个状态还要判断可不可行会超时。 所以我用了dfs。每次那个位置如果没有棋,就摆上炮dfs下去,每次摆判断和正上方一排冲突不冲突,还有左边一排冲不冲突。不冲突才可以摆。 再把炮去掉dfs下去。如果没有棋,就dfs不摆炮就行了。

万事屋 1045

HDU-4499 Cannon (DFS)

很简单的搜索,但是还是WA了好久,按行枚举总出错(已经考虑每行可以放三个的情况),改成按点枚举就AC。。。

idealism_xxm的专栏 525

HDU - 4499 Cannon 暴力dfs

In Chinese Chess, there is one kind of powerful chessmen called Cannon. It can move horizontally or vertically along the chess grid. At each move, it can either simply move to another empty cell in th...

还我笑颜 276

HDU-4499-Cannon(DFS剪枝)

Cannon Problem Description In Chinese Chess, there is one kind of powerful chessmen called Cannon. It can move horizontally or vertically along the chess grid. At each move, it can either simply move ...

qq_43461168的博客 212

HDU 4499 Cannon (DFS回溯)

Cannon Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65535/65535 K (Java/Others) Total Submission(s): 999    Accepted Submission(s): 573 Problem Description In Chinese Chess, ther

aozil_yang的博客 461
上一篇: POJ 2312 Battle City
下一篇: hdu 1754 I hate it(线段树)
Visioner7
博客等级 码龄14年 0粉丝 17原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值