摘要:
题目大意:在n*n的矩阵中,每个格子放置了一定数量的食物,一只老鼠每次水平或竖直最多移动k格,每次到的位置食物都要比前一次多,问最后一共能得到多少食物这道题利用记忆化搜索做,利用nowstate不断记录下一个位置所能到达的最大值,利用nowstate+mat[i][j](当前区域中所含的食物数量)得... 阅读全文
摘要:
题目大意:从(1,1)到(n,n),每经过一个点都要花费一定的时间,问花最短时间的路径有多少条dfs+dp先用bfs把所有到n花费的时间逆向dp计算一遍再用dfs不断找到前一个对应的较短路径的点不断搜索路径 1 #include 2 #include 3 #include 4 using na... 阅读全文
摘要:
题目大意:N*M的棋盘上摆了一些棋子,在剩余位置上尽可能多的摆上炮,使所有炮不能互吃dfs+回溯 1 #include 2 #include 3 #include 4 #define max(x,y) x>y?x:y; 5 using namespace std; 6 int a[30],b[... 阅读全文
摘要:
题目大意:两人轮流从两堆牌从抽取最顶端或者最底部的牌,得到的分数加到自己身上,问先拿牌的最多能得多少分记忆化搜索,2堆牌的底和顶,有四种方法,根据四种方法来找到最优解 1 #include 2 #include 3 #include 4 using namespace std; 5 int d... 阅读全文
摘要:
题目大意:在一段长度为n的黑板上按区间涂色,询问某段区间内不同颜色的数量这里颜色涂改我们很难区分,但因为这里至多只有30种颜色,所以我们可以利用2进制数来代表颜色的个数 1 #include 2 #include 3 #include 4 #include 5 using namespace... 阅读全文
摘要:
KEY公司开发出一种新的保险箱。要打开保险箱,不需要钥匙,但需要输入一个正确的、由n位数字组成的编码。这种保险箱有几种类型,从给小孩子玩的玩具(2位数字编码)到军用型的保险箱(6位数字编码)。当正确地输入最后一位编码后,保险箱就立刻打开了。保险箱上没有“确定”键。当你输入超过n位数字,则只有最后n位... 阅读全文
摘要:
假设数据输入时采用如下的格式进行输入:首先输入顶点个数n和边数m,然后输入每条边,每条边的数据占一行,格式为:u,v,表示从顶点u到顶点v的一条有向边这里把欧拉回路的路径输出了出来:手写栈: 1 #include 2 #include 3 #include 4 using namespace ... 阅读全文
摘要:
题目大意:有一堆头尾均有颜色的木条,要让它们拼接在一起,拼接处颜色要保证相同,问是否能够实现这道题我一开始利用map来对颜色进行赋值,好进行后面的并查操作以及欧拉通路的判断,但是map效率太低,超时了网上看了一遍发现必须得用效率更高的字典树对每个不同的颜色进行赋值 1 #include 2 #in... 阅读全文
摘要:
题目大意:给一堆字母,让它们进行接龙,要头对尾能够接的上,问有没有一种方法让所有成语都完成接龙这道题实际上是在考虑是否存在一条欧拉通路,每个单词产生一条有向线段,由第一个字母指向最后一个字母这道题另一个需要考虑的是是否所有存在的字母都是处于一个连通分量中的,这里我们考虑用并查集来解决问题。代码如下:... 阅读全文
摘要:
题目大意:从0~n-1编号的房间,从一个起点开始最后到达0号房间,每经过一扇门就关上,问最后能否通过所有门且到达0号房间我觉得这道题的输入输出格式是我第一次遇到,所以在sscanf上也看了很久每一行对应当前门能到达的房间,下方如有重复不在输入,所以会有空行,这里的空行,和将字符串内的数字一个个代入需... 阅读全文