hdu 1693 插头dp

插头DP——从不会到入门(POJ 2411,HDU 1565,HDU 2167,HDU 1693,Ural 1519) #include #include #include #include using namespace std; #define LL long long const int maxn=100037; // 可能的最大状态数 struct Node { int H[maxn]; // 哈希 int S[maxn]; // 状态 LL N[maxn]; // 状态对应的数量 in 阅读详情

       在n*m的矩阵中,有些格子有树,没有树的格子不能到达,找一条或多条回路,吃完所有的树,求有多少种方法。 

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
int t,a[13][13],n,m;
ll dp[13][13][1<<13];
int main()
{
    scanf("%d",&t);
    int cas=0;
    while(t--)
    {
        scanf("%d%d",&n,&m);
        for(int i=1;i<=n;i++)
            for(int j=1;j<=m;j++)
            {
                scanf("%d",&a[i][j]);
            }
        memset(dp,0,sizeof dp);
        dp[0][m][0]=1ll;
        for(int i=1;i<=n;i++)
        {
            for(int s=0;s<(1<<m);s++)
                dp[i][0][s<<1]=dp[i-1][m][s];
            for(int j=1;j<=m;j++)
            {
                for(int s=0;s<(1<<(m+1));s++)
                {
                    int x=(1<<j);
                    int y=x>>1;
                    if(a[i][j])
                    {
                        if((s&x)&&(s&y))
                            dp[i][j][s]=dp[i][j-1][s^x^y];
                        else if((s&x)||(s&y))
                            dp[i][j][s]=dp[i][j-1][s]+dp[i][j-1][s^x^y];
                        else dp[i][j][s]=dp[i][j-1][s^x^y];
                    }
                    else
                    {
                        if((s&x)==0&&(s&y)==0)
                            dp[i][j][s]=dp[i][j-1][s];
                        else dp[i][j][s]=0;
                    }
                }
            }
        }
        printf("Case %d: There are %lld ways to eat the trees.\n",++cas,dp[n][m][0]);
    }
    return 0;
} 

太菜了,不知道怎样把此代码改成单回路的,期待大佬指点。

 

 

逆强化学习:从专家示范中学习策略 逆强化学习(Inverse Reinforcement Learning,简称IRL)是强化学习(Reinforcement Learning,简称RL)的一个子领域,它的目标是从专家的行为中学习策略。在传统的强化学习中,智能体通过与环境交互,根据奖励信号来学习一个策略。而在逆强化学习中,我们没有直接的奖励信号,而是通过观察专家的行为来推断出奖励函数,从而学习到一个与专家类似的策略。逆强化学习作为强化学习的一个重要子领域,在许多实际应用场景中都取得了显著的成功。 阅读详情

相关推荐

AI+Xmind自动生成测试用例(思维导图格式)

最后:我是Walker,一个热爱分享编程知识的程序员,希望能够帮助到你!

Think_and_work的博客 2333

HDU-1693-插头dp

懂了这道题还不算懂插头dp。 我现在就是不懂插头dp。 要想懂插头dp就要先懂状态dp。 状态dp之于插头dp,就像 trie树之于ac自动机。 __int64 dp[13][13][1<<13]; int ok[13][13]; int n, m; int main() { int t; scanf("%d", &t); for(int tt=1; t

walk_up的专栏 1005

TC3xx芯片中断配置避坑指南:从AUTOSAR Davinci配置到SRN地址计算的完整流程

本文详细解析了英飞凌TC3xx芯片的中断配置流程,从AUTOSAR Davinci工具链到硬件调试的全链路指南。重点介绍了中断路由(IR)模块、服务请求节点(SRN)和中断控制单元(ICU)的配置技巧,帮助开发者避开常见陷阱,优化中断性能。

weixin_30628801的博客 413

【HDU1693】Eat the Trees(插头DP)

题目大意:找若干个环,布满地图所有白格,求方案数。题解:dp[I][j][s]表示I,j轮廓线时,轮廓线上的插头状态为s(01状态压缩),的方案数。转移: ①当前格为白格: 不能增加新插头。 任选一个蓝插头 必须选下面两个蓝插头。 ②当前格为黑格 1.有插头通往这里:不可能,方案数为0; 2.没有插头通往这里:直接转移上一次方案数。代码:#include<cstdio> #

CaptainChen的博客 438

不用SE63逐个翻译!ABAP函数LXE_OBJ_TEXT_PAIR_WRITE批量处理TCODE描述的3种姿势

本文介绍了三种利用ABAP函数LXE_OBJ_TEXT_PAIR_WRITE批量翻译SAP事务码(TCODE)描述的高效方案,旨在替代SE63逐个翻译的低效操作。内容涵盖从基础循环、Excel导入到全自动程序集成的实现方法,帮助开发者显著提升批量翻译效率,并深入解析了SAP翻译体系的核心原理与实战技巧。

weixin_42593130的博客 659

Smali语言基础语法

定义、声明、调用 Smali数据类型 定义:与Java相同,Smali中也有一套数据类型体系,且该体系实质上是同Java一一对照的。 示例1:Smali——Java数据类型对照表 PS:如上图所示,Smali语言中的数据类型的关键词基本上为Java中同名数据类型的首字母大写,需要着重记忆的例外为:1.long类型的关键词为大写J;2.boolean类型的关键词为大写Z;3.数组的关键词为左半边中括号[;4.object类型(各种类)的关键词为大写L加上该类的全类名路径,路径中的层级用/分割。

aketoshknight的博客 1万+

HDU - 1693 插头dp 艰难入门

什么是插头dp? 首先我们要先知道它能解决那些问题。一般都是一张方格图里有关连通性的一些问题。 那么对于一个格子而言,他就

wyxxzsy的博客 659

让 ABAP 开发更聪明的搭档:SAP Joule for Developers 与 ABAP AI Capabilities 全面实战

摘要:SAP已将生成式AI集成到ABAP开发工具中,推出Joule for Developers功能。该功能直接嵌入Eclipse开发环境,提供代码解释、生成、测试构造和遗留代码迁移等辅助功能。Joule支持ABAP Cloud项目开发,能围绕当前开发对象提供上下文相关的建议,帮助开发者高效完成应用开发与迁移任务。启用该功能需升级ADT并获取相应许可,典型应用场景包括RAP应用构建和S/4HANA迁移中的代码重构。官方资源提供了多个实践案例,帮助开发者快速上手这一AI辅助开发功能。(149字)

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 492

HDU1693

HDU1693Eat the Trees 给你一个N*M的矩阵,矩阵中有好格子和坏格子,坏格子不能走,问你能找出多少种方法在这个矩阵中画规则的圈(可以有多个圈). 输入:首先是一个T(1 输出:以 Case 1: There are 3 ways to eat the trees.这种形式输出结果.保证结果不超过int的上限. 分析:此题就是URAL1519的变形,不过这题可以允许有多个圈

code 1034

自动驾驶系统研发系列—全智能驾驶新高度:深入解析车道保持辅助(ELK)功能

车道保持辅助系统(ELK)是一种基于先进视觉感知技术的主动安全系统,能够通过车载摄像头实时监测道路上的车道线、道路边缘以及周围车辆的位置。这一功能的核心在于为驾驶员提供智能化的安全辅助,尤其是在驾驶员可能因疲劳、分心或其他原因无意识地偏离车道时,系统能够主动干预,从而避免危险发生。ELK系统不仅仅依靠摄像头对道路进行感知,还结合其他传感器的数据(如雷达),实时评估自车与车道线、周边车辆的相对位置。当系统检测到车辆即将偏离车道,或越过道路边缘时,ELK会通过控制电子助力转向系统(EPS)

u013889591的专栏 1211

置顶必读(1) | 2026最新首发,全网最全 Spring Boot 学习宝典(附思维导图)

从0到1以知识点+实例+项目的教学模式对SpringBoot框架由浅入深进行学习,快来跟bug菌一起学习吧。

**My Coding Family** 16万+

dp线长什么样子_HDU 1693 Eat the Trees 插头DP入门

缘起 终于该来的还是得来~ 插头DP入门学习! HDU 1693 Eat the Trees分析 给出一张n*m有障碍的棋盘,要求用任意条非平凡哈密顿回路遍历整个棋盘,不能经过障碍格子,要求统计不同的行走方案数。所谓非平凡指的是回路的长度>1(一个格子也构成一条回路,但是它长度为1,是平凡的哈密顿回路)【输入】多样例. 第一行是样例的数目, 对每个样例,第一行是n和m,1<=...

weixin_29496207的博客 425

还在用 RaiDrive/Rclone 挂载网盘?教您使用Windows 原生 WebDAV 丝滑直连 AList/Openlist,让你的网盘秒变本地硬盘!

网盘文件分散管理?😩 别再依赖第三方工具了!本文教你如何在 Windows 下,利用原生 WebDAV 功能,将 Openlist 网盘直接映射为本地硬盘!💻 操作简单,告别繁琐,让你的云端文件像本地文件一样丝滑!🚀 轻松实现高效管理,快来体验吧!

XiaoqiangClub的博客 2974

HDU1693 Eat the Trees 插头dp

原文链接http://www.cnblogs.com/zhouzhendong/p/8433484.html 题目传送门 - HDU1693 题意概括   多回路经过所有格子的方案数。 做法   最基础的插头dp裸题。   只要一个横向插头和一排纵向插头就可以了。   分类也很少。   插头dp ->http://www.cnblogs.com/zinthos/p/3897...

weixin_30478923的博客 149

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

hdu1693 Eat the Trees 【插头dp】

题目链接 hdu1693 题解 插头\(dp\) 特点:范围小,网格图,连通性 轮廓线:已决策点和未决策点的分界线 插头:存在于网格之间,表示着网格建的信息,此题中表示两个网格间是否连边 状态表示:当前点\((i,j)\)和轮廓线上\(m + 1\)个插头的状态 状态转移: 我们用\(f[i][j][s]\)表示如上的状态,最后一次决策点为\((i,j)\),轮廓线上插头状态为\(s\)的方案数...

weixin_30725315的博客 95

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

【HDU1693】Eat the Trees(插头dp)

【HDU1693】Eat the Trees(插头dp) 题面 HDU Vjudge 大概就是网格图上有些点不能走,现在要找到若干条不相交的哈密顿回路使得所有格子都恰好被走过一遍。 题解 这题的弱化版本吧。。。 因为可以任意分配哈密顿回路的数量,因此根本不需要再考虑插头的配对问题了,那么直接分情况转移就好啦。 #include<iostream> #include<cstdio&...

weixin_30347335的博客 93

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...

HDU 1693 插头dp入门详解

放题目链接 https://vjudge.net/problem/22021/origin 给出一个n*m的01矩阵,1可走0不可通过,要求走过的路可以形成一个环且可以有多个环出现,问有多少不同的行走方案; 这道题目可以有多个环而不是限制为一个环,大大减弱了题目的难度,我还是想了好久。 先简单介绍一下轮廓线及插头, 这种dp进行状态转移时,每个方格对应着他自己的一条轮廓线,由...

all00747的博客 196

HDU 1693 Eat the Trees 插头DP

  这是一道入门题,只需判断插头有无。   具体分为:     1、上插头和左插头都有     2、有上插头或有左插头     3、上插头和左插头都没有   用HASHMAP储存状态,具体有一些小技巧(见程序)。 1 #include <cstdio> 2 #include <cstdlib> 3 #include <c...

WZZ66631的博客 261

hdu 1693 Eat the Trees——插头DP

题目:http://acm.hdu.edu.cn/showproblem.php?pid=1693 第一道插头 DP ! 直接用二进制数表示状态即可。 #include<cstdio> #include<cstring> #include<algorithm> #define ll long long using namespace std; ...

weixin_34100227的博客 123

hdu 1693 插头dp入门

hdu1693 Eat the Trees 题意 在\(n*m\)的矩阵中,有些格子有树,没有树的格子不能到达,找一条或多条回路,吃完所有的树,求有多少种方法。 解法 这是一道插头dp的入门题,只需要考虑插头的有无,不需要维护连通性,很愉快。 代码 #include <cstring> #include <cstdio> #include <cstdlib> #...

weixin_30917213的博客 172

hdu1693 Eat the Trees 插头DP

题目:点击打开链接 题意:一个棋盘上有0,1.需要找一些回路把1全部串起来,问总方法数 分析:插头dp第一题,果然有点难度,用了我一天的时间,还是自己太菜了。。。。 我是看了这个图才恍然大悟的,这就对应下面的三种可以联通的情况。 对于为什么 f[i][0][s 可参考文档: http://www.docin.com/p-741918386.html 图片来

01的世界 419

hdu1693插头dp(多回路)

题意:在n*m的矩阵中,有些格子有树,没有树的格子不能到达,找一条或多条回路,吃完所有的树,求有多少中方法。 这题是插头dp,刚刚学习,不是很熟悉,研究了好几天才明白插头dp的方法,他们老是讲一些什么轮廓线啊,插头啊什么的,刚开始完全不知道这些事干什么的,看完cdq的大作后也是一头的雾水,看代码,画图,一步一步的推,终于明白了,那个是为什么,这里讲一讲。 轮廓线表示的是当前插头的状态,

2873

【插头dp】HDU1693 Eat the Trees

同样是轮廓线 我们有一下 种情况 1.这个位置左侧有插头,且右侧不是障碍 将其修改为 2.这个位置上面有插头,且下侧不是障碍 将其修改为 3.这个位置上、左都有插头,且当前节点不是障碍 将其修改为 4.如果这个位置上、左都没有插头 将其修改为 5.如果这个位置有障碍 当上和左都是0的时候,将其直接转移即可 代码 #include<bits/stdc++.h> using namespace std; const int ma..

andyc_03的博客 324
上一篇: 插头dp的几个模板
下一篇: hdu 5517二维树状数组
GoLakerswxy
博客等级 码龄9年 41粉丝 158原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值