UVA 658 隐式图搜索最短路

题意:

首先给出n和m,表示有n个bug和m个补丁。一开始存在n个bug,用1表示一个bug存在0表示不存在,所以一开始就是n个1,我们的目的是要消除所有的bug,所以目标状态就是n个0。对于每个补丁,会给出使用这个补丁的时间,另外会给出两个长度为n的字符串
第一个字符串表示这个补丁适用于什么情况下的bug
第二个字符串表示使用完这个补丁后原来的bug会变成怎么样。
先说第一个字符串,
s[i]='0',表示第i个bug存在与否都无所谓;
s[i]='+',表示第i个bug一定要存在;
s[i]='-',表示第i个bug必须不存在;
能不能使用这个补丁,就要看当前bug的状态是不是能全部满足第一个字符串,能的话就可以使用。
第二个字符串表示使用完后的情况,
ss[i]='0',表示第i个bug保持不变,原来是1就1是0就0;
ss[i]='+',表示第i个bug必须为1;
ss[i]='-',表示第i个bug必须为0。
最终题目要求解的就是消除所有的bug并且用时最短,输出最短时间,如果bug不可能被完全消除就输出失败。

即初始状态为n个1,目标状态为n个0,其中约束条件就是m个补丁------隐式图。

隐式图定义:仅给出初始结点、目标结点以及生成子结点的约束条件(题意隐含给出),要求按扩展规则应用于扩展结点的过程,找出其他结点,使得隐式图的足够大的一部分编程显式,直到包含目标结点为止。

posted @ 2015-09-05 11:52  一麻袋码的玛侬  阅读(139)  评论(0)    收藏  举报