51NOD 1445 变色DNA】的更多相关文章

题目链接:51nod 1445 变色DNA 看了相关讨论再去用最短路:val[i][j]之间如果是'Y',说明i可以到达j,并且i到达j的代价是i那行 1到j-1 里面'Y'的数量. 最后,求 0到n-1的最短路. 感觉读懂了题意就真的简单了.. #include<cstdio> #include<cstring> #include<algorithm> #include<vector> #include<queue> #define CLR(a…
1445 变色DNA 有一只特别的狼,它在每个夜晚会进行变色,研究发现它可以变成N种颜色之一,将这些颜色标号为0,1,2...N-1.研究发现这只狼的基因中存在一个变色矩阵,记为colormap,如果colormap[i][j]='Y'则这只狼可以在某一个夜晚从颜色i变成颜色j(一晚不可以变色多次),如果colormap[i][j]='N'则不能在一个晚上从i变成j色.进一步研究发现,这只狼每次变色并不是随机变的,它有一定策略,在每个夜晚,如果它没法改变它的颜色,那么它就不变色,如果存在可改变的…
1445 变色DNA 基准时间限制:1 秒 空间限制:131072 KB 分值: 40 难度:4级算法题 有一只特别的狼,它在每个夜晚会进行变色,研究发现它可以变成N种颜色之一,将这些颜色标号为0,1,2...N-1.研究发现这只狼的基因中存在一个变色矩阵,记为colormap,如果colormap[i][j]='Y'则这只狼可以在某一个夜晚从颜色i变成颜色j(一晚不可以变色多次),如果colormap[i][j]=‘N’则不能在一个晚上从i变成j色.进一步研究发现,这只狼每次变色并不是随机变的…
http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1445 题意: 思路: 挺好的一道题目,如果$colormap[i][j]$为'Y',那么这条边的代价就是前面Y出现的次数.也就是说前面必须得都破坏了这样才能轮到这条边,这样一来跑一遍最短路即可. #include<iostream> #include<algorithm> #include<cstring> #include<cstdio…
1445 变色DNA 题目来源: TopCoder 基准时间限制:1 秒 空间限制:131072 KB 分值: 40 难度:4级算法题  收藏  关注 有一只特别的狼,它在每个夜晚会进行变色,研究发现它可以变成N种颜色之一,将这些颜色标号为0,1,2...N-1.研究发现这只狼的基因中存在一个变色矩阵,记为colormap,如果colormap[i][j]='Y'则这只狼可以在某一个夜晚从颜色i变成颜色j(一晚不可以变色多次),如果colormap[i][j]='N'则不能在一个晚上从i变成j色…
个人心得:太水了,还是对最短路不太深入了解,无法构建出最短路模板,然后就是读题能力, 这题的关键在于转换为最短路模板,因为DFS我在24组超时了. 假设把从i到j的代价看做是权值,那么就是对权值的确立了,显而易见,权值跟前面出现的Y的个数有关. 权值建立后就可以用最短路了,特意看了下最短路深入了解了下,每次选择最短的确实可以确定此时的到x的最短路径. 一个话:多思考,多思考 题目: 有一只特别的狼,它在每个夜晚会进行变色,研究发现它可以变成N种颜色之一,将这些颜色标号为0,1,2...N-1.研…
这是一道最短路模板题,但是在理解题意和提出模型的阶段比较考验思维,很容易想到并且深深进入暴力拆解题目的无底洞当中. 题意是说:给出一个邻接矩阵,在每个点时,走且仅走向,合法路径中编号最小的点.问题是是否能够从0点走向n-1点.如果可以走到,求出,最少应当删除几个合法边(如果(1,2)(2,1)(2,3)同时合法,前两个边就会不停的循环,这时候必须删掉(2,1)才能够让(2,3)这条边被走到,从而到达新的节点). 题解:重新定义变得权重:按照题意变得权重应当每次是1,但是显然在这道题的设定下,这个…
不定时更新博客,该博客仅仅是一篇关于最短路的题集,题目顺序随机. 算法思想什么的,我就随便说(复)说(制)咯: Dijkstra算法:以起始点为中心向外层层扩展,直到扩展到终点为止.有贪心的意思. 大部分题用Dij+队列优化都能解决..但有负权边不行哦. Bellman-Ford:反复对边集E中的每条边进行松弛操作. 求含负权图(有负环输出错误提示)的单源最短路径,效率很低,至于对多余松弛的优化就是设置个标记,还是很慢,不如写SPFA. 判断负环:在每次松弛时把每条边都更新一下,若在n-1次松弛…
51nod图论题解(4级,5级算法题) 1805 小树 基准时间限制:1.5 秒 空间限制:131072 KB 分值: 80 难度:5级算法题 她发现她的树的点上都有一个标号(从1到n),这些树都在空中飘浮不在土地上生根,然而每天她的这些树会变化一个形态,这使得她很恼火,她想弄清楚到底有多少种形态. 特殊的是这些树的叶子(度数为1)数目是不变的. 由于数目可能很大,她只要它模(1,000,000,007)就可以了. n=3,m=2时有3种方案:1-2-3, 2-3-1,3-1-2. 3-1-2和…
好久没刷51nod了,又听说topcoder有很多好题.那么就来51nod上刷吧.(那个客户端搞得有点烦(看不懂)) [1366 贫富差距] 当图不连通的时候,答案为无穷大. 当图连通时,两个点之间的最大差值就是最短路长度乘上 $d$,跑floyd再看最短路的最大值即可. #include <bits/stdc++.h> ; const int INF = 0x3f3f3f3f; char s[N]; int mp[N][N], fa[N], n; int getfa(int x) { ret…