[ZOJ1301][POJ1137] The New Villa

UI-TARS本地部署 UI-TARS是一个用于本地部署的交互控制模型,支持桌面应用的自动化操作。部署步骤包括:首先,从官方GitHub仓库下载项目源码和模型checkpoint;其次,使用vLLM框架进行本地模型部署,启动API服务;最后,通过客户端调用API实现功能。部署过程中可能遇到pynvml模块或模型配置问题,提供了相应的解决方案。此外,还支持通过UI-TARS-Desktop客户端进行本地桌面应用的交互控制。整体流程旨在帮助用户快速实现UI-TARS的本地部署与应用。 阅读详情

ZOJ: http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=1301

POJ: http://poj.org/problem?id=1137


题目大意:
每个房间的开关经常是控制别的房间的灯的。
Mr.Black站在走廊,灯全是熄灭的。Mr.Black怕黑,所以他不敢进入黑的屋子,也不敢关掉他所在屋子的灯。
走廊是亮的,所有屋子是黑的。不准走进黑屋子,且最后到达卧室,卧室以外的灯全灭。找到步骤最小的方式,“房间之间的移动”、“开灯”、“关灯”都算一个步骤。


解题思路:
由求最短步骤和r很小,且灯的状态可以用01表示,想到可以用广搜。

状态最多1024*10种,每种最多有10种移动方式+10种开灯方式+10种关灯方式共30种操作,时间上是允许广搜的。


注意点:

1、写输出部分的时候犹豫了一下,把步骤等于0和1的地方写了step的单数形式,步骤大于1的时候使用step复数形式,结果居然WA掉了。

2、注意操作步骤和短线"-"之间有空格,之后才注意到的,果然还是应该把sample output复制到记事本里看……


源代码:

#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <string>
#include <queue>
#include <algorithm>
using namespace std;
#define maxn 15
#define maxs 20010
#define MOVETO 20
#define SWITCHON 10
#define SWITCHOFF 0

int r;
int control[maxs];                      //状态转移i由control[i]得到 
int op[maxs];                           //状态i通过op[i]由上一步得到 
bool visited[maxs];
bool g[maxn][maxn], light[maxn][maxn];
 
bool init()
{
    int t1, t2, d, s;
    scanf("%d%d%d", &r, &d, &s);
    if (r==0) return false;
    memset(g, false, sizeof(g));        //g[i][j]==true 表示房间ij之间互通 
    for (int i=0; i<d; i++)
    {
        scanf("%d%d", &t1, &t2);
        t1--; t2--;
        g[t1][t2]=g[t2][t1]=true;
    }
    memset(light, false, sizeof(light));  //-1: 无控制, i控制light[i] 
    for (int i=0; i<s; i++)
    {
        scanf("%d%d", &t1, &t2);
        t1--; t2--;
        light[t1][t2]=true;
    }
    return true;
}

bool checkstay(int u)
{
    int pos=u%16;
    int tmp=u/16;
    int j=1<<pos;
    if (tmp&j) return true;
    return false;
}

int bfs()                               //return -1 or number of steps
{
    queue<int> q;
    queue<int> step;
    int target =(1<<(r+4-1))+r-1;
    int u=(1<<4), k=0;
    int u_new, uu, pos;
    memset(visited, 0, sizeof(visited));
    memset(control, 255, sizeof(control));
    
    visited[u]=true;
    q.push(u);
    step.push(k);
    
    while (!q.empty())
    {
        u=q.front(); q.pop();
        k=step.front(); step.pop();
        pos=u%16; uu=u>>4;
        if (u==target){return k;}                   //状态低4位留给位置 
        for (int i=0; i<r; i++)                     //move操作
        {
            if (g[pos][i])                          //可以从pos到房间i
            {
                u_new=u-pos+i;
                if (!visited[u_new] && checkstay(u_new))
                {
                    q.push(u_new); step.push(k+1); visited[u_new]=true;
                    control[u_new]=u;
                    op[u_new]=MOVETO+i;
                }
            } 
        }
        for (int i=0, j=(1<<4); i<r; i++, j=j<<1, uu=uu>>1)   //开关灯操作 
            if (light[pos][i])
            {
                if (uu&1)
                {
                    u_new=u-j;
                    if (!visited[u_new] && checkstay(u_new))
                    {
                        q.push(u_new); step.push(k+1); visited[u_new]=true;
                        control[u_new]=u;
                        op[u_new]=SWITCHOFF+i;
                    }
                }
                else
                {
                    u_new=u+j;
                    if (!visited[u_new] && checkstay(u_new))
                    {
                        q.push(u_new); step.push(k+1); visited[u_new]=true;
                        control[u_new]=u;
                        op[u_new]=SWITCHON+i;
                    }
                }
            }
    }
    return -1;
}

void dfsprint(int u)
{
    int u_new;
    if (u==(1<<4)) return;
    u_new=control[u];
    dfsprint(u_new);
    if (op[u]>=MOVETO) printf("- Move to room %d.\n", op[u]-MOVETO+1);
    else if (op[u]>=SWITCHON) printf("- Switch on light in room %d.\n", op[u]-SWITCHON+1);
    else if (op[u]>=SWITCHOFF) printf("- Switch off light in room %d.\n", op[u]-SWITCHOFF+1);
}

void print(int cs, int steps)
{
    printf("Villa #%d\n", cs);
    if (steps==-1)
        printf("The problem cannot be solved.\n");
    else
    {
        printf("The problem can be solved in %d steps:\n", steps);
        dfsprint((1<<(r+4-1))+r-1);
    }
    printf("\n");
}

int main()
{
    int steps;
    for (int cs=1; ;cs++)
    {
        if (!init()) break;
        steps=bfs();
        print(cs, steps);
    }
    return 0;
}



openlayers6/7 行政区划裁剪 只显示某个区域 示例为天地图 openlayers6/7 行政区划裁剪 只显示某个区域 示例为天地图。 阅读详情

相关推荐

【UE5】UE5 Dedicated Server专用服务器与网络同步

这篇文章是个人在学习UE4的网络同步方面的内容的一些记录,因为UE5出来了,顺带也一起熟悉熟悉UE5,所以也就直接使用UE5来实践了。说句实在话,UE4网络同步这块确实挺难的,我自己在网上搜索的博客的内容要么停留在很浅层面只搭建一个ds服务器,要么就直接深入源码去剖析UE4的网络机制,处在中间层面的内容少之又少,不得不自己好一阵研究,强烈推荐这几位博主的博文,我在学习的过程中也从中受益匪浅。 Ken_An、风蚀之月、 刘东无敌还有我师傅推荐给我的一本关于UE4网络的PDF。 一、什么是Dedicated

Goulandis 3万+

POJ 1137----The New Villa

问题描述: The New Villa Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 1354 Accepted: 443 Description   Mr. Black recently bought a villa in the countryside. Only one thing bothers him: 

我是会娶刘亦菲的 794

【RT-Thread】从零到一:RT-Thread Studio工程创建与程序下载全流程实战

本文详细介绍了RT-Thread Studio开发环境的安装与使用,从工程创建到程序下载的全流程实战指南。通过具体案例演示了如何在STM32平台上快速开发RT-Thread应用,包括时钟配置、内存优化、构建调试等关键技巧,帮助开发者高效完成嵌入式系统开发。

weixin_30336061的博客 541

poj 1137 / zoj 1301 (BFS)

最近想刷一些搜索题目, 看到了这题, 这题就是个bfs需要点状压的小技巧, 感觉做搜索题目, 主要还是要仔细很耐心吧。。。 (此题在poj上有个trick, 就是一个房间开关灯时要按字典序, 读入后排个序就可以了。。。) 代码很丑: #include #include #include #include #include #include #include #inc

一个人的生活 954

NC65增加自定义参照并且参照数据要根据选择的财务组织过滤

1、首先定义一个参照类 package nc.pub.jzcm.ref; import nc.ui.bd.ref.AbstractRefModel; import nc.ui.bd.ref.IRefDocEdit; import nc.ui.bd.ref.IRefMaintenanceHandler; public class PMPrPayDefaultRefModel extends AbstractRefModel { public PMPrPayDefaultRefModel(){ ...

xyl的博客 3494

Dify工作流实践—根据word需求文档编写测试用例到Excel中

文章介绍了用dify工作流实现从word需求文档到测试用例写入excel的详细落地过程

weixin_42476668的博客 5333

POJ 1137 The New Villa 笔记

小朋友怕黑,房间的灯不亮坚决不进。r个房间,房间1是起点,房间r是终点(卧室),初始时只有房间1的灯是亮的。房间之间有d个连接,房间 i 和房间 j 连接。s盏灯,灯的开关在另一个房间,房间k的开关控制房间 l 中的灯。求能否到达卧室后只有卧室的灯是亮的。

woniupengpeng的专栏 764

DolphinScheduler工作流中ChunJun任务保存失败的深度解析与实战修复

本文深度解析了在DolphinScheduler工作流中创建ChunJun任务时遭遇“parameter invalid”保存失败的普遍问题。其根源在于前端表单的`customConfig`参数默认值与后端校验逻辑不匹配。文章提供了两种实战修复方案:一是修改前端源码并重新编译,二是热更新已部署的JS文件,并对比了其适用场景与风险,帮助用户彻底解决此集成障碍。

weixin_29010003的博客 395

POJ 1137 The New Villa

/*复杂BFS参考了网上别人的程序POJ 上需要SJ,为了避免这个所以需要对输入进行排序*/ #include #include #include #define MAX_S 1024#define MAX_H 10using namespace std;struct statusN{    int rNum, bit, step;   

bobten2008的专栏 1095

AI学习指南RAG篇(19)-API调用与集成

通过上述API调用示例,您可以方便地将RAGFlow与其他系统集成,实现数据集管理、文档处理、会话管理等功能。希望本文的介绍能帮助您更好地理解和使用RAGFlow的API。

俞兆鹏的博客 2545

2025年11月架构设计师综合知识真题回顾,附参考答案、解析及所涉知识点(二)

本文整理了2025年11月架构设计师考试的16-30题真题及解析,涵盖多个计算机系统知识领域。主要内容包括:Linux绝对路径以根目录开始(A);模块调用下层数量用扇出表示(B);游乐园问题通过集合运算得出10人未游玩(B);磁盘位示图计算为200字节(C);测试用例核心是输入与预期输出(D)。其他题目涉及软件可靠性测试概念(B错)、评价程序准确度排序(真实程序最高,A)、测试阶段顺序(单元→组装→系统,A)、Web服务器压力测试前置步骤(C)、分时系统响应时间影响因素(用户数量多,A)、逆向工程方法(基于

一几文的编程学习笔记。 222

POJ - 1137:The New Villa(bfs+状态压缩)

POJ - 1137:The New Villa(bfs+状态压缩) 我有特殊的状态转移方式,

污miao汪的博客 585

17、深入分析Freebase数据集:特征、挑战与类型系统构建

本文深入分析了Freebase数据集的特征、数据建模的挑战以及类型系统的构建方法。Freebase作为知识图谱的重要资源,以RDF三元组形式提供了丰富的结构化知识。文章重点探讨了反向三元组、中介节点(CVT节点)以及非主题三元组对链接预测任务的影响,并通过实验展示了不同类型处理策略对模型性能的作用。此外,文章详细介绍了如何构建一个显式的类型系统,以提升链接预测的准确性,并展望了未来可能的研究方向。

css33的专栏 287

ZOJ 1301 The New Villa (BFS + 状态压缩)

题意:黑先生新买了一栋别墅,可是里面的电灯线路的连接是很混乱的(每个房间的开关可能控制其他房间,房间数&lt;=10),有一天晚上他回家时发现所有的灯(除了他出发的房间)都是关闭的,而他想回卧室去休息。可是很不幸,他十分怕黑,因此他不会走入任何关着灯的房间,于是请你帮他找出一条路使他既能回到卧室又能关闭除卧室以外的所有灯。如果同时有好几条路线的话,请输出最短的路线。(ZOJ是special jud...

weixin_34405925的博客 114

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

zoj 1301 The New Villa

很BT的搜索。。。 刚开始看题目的时候,也理解了题意,不过没想到要用什么算法。。 也有想到每一种状态都存起来,不过没想到该怎么样处理细节。。最后不得己在网上搜了下代码,。。 这题很BT的,,只是搜索就够麻烦了, 最后还要保存路径。。搞的头大。。 不过最后无论如何还是把它给A了。。。^_^ . poj上的这道题目貌似不是special judje,,在poj上没能过去。。 题目大意: ...

weixin_34368949的博客 126

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

UVa 321 The New Villa,2B青年怒找卧室

题目链接: UVA : http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=24&page=show_problem&problem=257 POJ  1137: http://poj.org/problem?id=1137 ZOJ  1301: http://acm.zju.edu.

D_Double's Journey 2623

数学建模模型总结

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

1301-1400

以下是UVA Online Judge系统的1301-1400的题目:

MyLinChi的博客 410

[ZOJ1413][POJ1021] 2D Nim 非人品解法

ZOJ: http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=1413POJ: http://poj.org/problem?id=1021题目大意:其实和Nim问题是没有关系的。给出两个玩2D-Nim游戏的棋

Dango's happy life 1570

[ZOJ1144][POJ1104] Robbery

ZOJ:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=1144POJ:http://poj.org/problem?id=1104题目大意:有大盗光顾了一个W*H的矩形城市。给出一些信息,t时刻大盗不在矩

Dango's happy life 1400

[ZOJ1462][POJ1112] Team Them Up!

ZOJ: http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=462POJ: http://poj.org/problem?id=1112题目大意:把一些人分成两组,每一组中的人满足任意两个人都相互认识,且要求两组

Dango's happy life 1265

[ZOJ 1116 ] [ POJ 1911 ] A Well-Formed Problem

ZOJ:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=1116题目大意:(对XML没有了解,只是按照字面意思理解了一下题意)与这样有起始结束声明的,name称为tag是empty el

Dango's happy life 1233

[ZOJ1021] The Willy Memorial Program

【题目大意】有一些竖直的圆筒状管子,管子间有理想的水平细管相连。一只蜘蛛停在某跟管子的某个高度上,从第一根管子往系统注水,问前往营救的老鼠有多长时间可以关闭热水阀门。    最终抽象为当水上升到指定位置的时候系统中的总水柱高度。 【解题思路】 AC思路:(参考“狗狗40题搞完纪念“)从第一根管子开始注水,采用优先队列的方式每次选取可注水且纵坐标最大(最低)的地方进行注水。若中途出现溢出现象,则永远

Dango's happy life 1190

[ZOJ1518][POJ1291] This Sentence is False

ZOJ: http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=1518POJ: http://poj.org/problem?id=1291题目大意:有n个句子,编号为1..n,为Sentence XXX is

Dango's happy life 1176

[ZOJ1391][POJ1436] Horizontally Visible Segments

题目大意:若两条竖直线段之间可以连一条水平线,这条水平线不与其他竖直线段相交,称这两条竖直线段为“相互可见”的。若存在三条竖直线段,两两”相互可见“,则构成”线段三角形“。给出一些竖直的线段,问一共有多少”线段三角形“解题思路:这道题在刘汝佳的黑书里有解题思路的指导,在图论部分出

Dango's happy life 1134

[ ZOJ 1197 ] [POJ 1486] Sorting Slides

ZOJ: http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=1197 POJ: http://poj.org/problem?id=1486 题目大意: 有一些透明的幻灯片乱放成一大堆。

Dango's happy life 1050
上一篇: [ZOJ1426 ][POJ1693] Counting Rectangles
下一篇: [ZOJ1123] Triangle Encapsulation
program_shun
博客等级 码龄17年 10粉丝 43原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值