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个补丁------隐式图。
隐式图定义:仅给出初始结点、目标结点以及生成子结点的约束条件(题意隐含给出),要求按扩展规则应用于扩展结点的过程,找出其他结点,使得隐式图的足够大的一部分编程显式,直到包含目标结点为止。
    人生就像心电图,想要一帆风顺,除非game-over
 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号