T1.神经网络

给出n个点,m条有向边,i到j的边权为Wij,每个无入边的点有ci的活力,其他点为零,每个点有一个ui。对于出发点而言,ui没有什么卵用,它会向所有指向的店发送强度ci的信号,接收的点的活力值为:  然后求无出边的点的活力值。

只要理清拓扑结构即可。先将出发点入队,然后依次将下一层的访问到入队。显然,访问到下一层的节点前,当前层的信号都已经发送完了。这样只要把出边为零的点依次输出就好了。

 

T2.侦探推理

给出m个人,n个人说假话,给出p句证词,只有一下几种有用:

 

然后,输入的格式大约是这样的:

3 1 5

MIKE

CHARLES

KATE

MIKE:I am guilty.

MIKE:Today is Sunday.

CHARLES:MIKE is guilty.

KATE:I am guilty.

KATE:How are you??

然后要求出谁是罪犯。。。如果不能判断输出Impossible,可能有多个位Cannot Determine

这是很烦的搜索题。。。我的搜法是,先dfs出说谎的n个人,然后按证词一句句判断每句话是否矛盾。。这样只要看能不能有一种情况使得能判断出只有一个罪犯即可。。或者判断出的都是多个罪犯。。。或者不成立。字符串处理的时候还是有点烦的。。。可以先处理几个模板串。。。(自己测和老师电脑测都能过。。然而oj就是WA)

 

T3.加分二叉树

给出n个节点的分值,要组成一棵中序遍历为(1~n)的树,没棵子树的加分值定义为根节点的左右子树加分值之积加上根节点的分。求最大加分值的树的分数和前序遍历

只要f[i][j]表示[i,j]的最大分值,root[i][j]表示取到最大值时的根。。

显然只要f[i][j]=max(f[i][k-1]*f[k+1][j]+a[k])即可。

 

T4.传染病控制

给你n个点构成一棵以1节点为根的数。每个周期可以切断其中一条边,然后每个上一层的有病的节点会感染下一层能连到的节点。求切断后能得到的最少感染人数。

按层数先建树,然后对于每一层,先枚举当前节点能否连接到根节点(路径是否已经被切断),然后只要把当前能扩展的节点扩展掉然后处理下一层就好了。。。复杂度居然也是够的。。。。【懵】

posted on 2017-04-29 19:10  啊?  阅读(417)  评论(0编辑  收藏  举报