好吧,這又是VJ水題堆里的一道題。 糾結了好長時間,終于把這道題磕過了,用到了很簡單的深搜和記憶化搜索。不過上網搜代碼的時候發現只是一道簡單的數學題 /想哭.jpg 先掏出小本本記錄下把這道題作為數學題的解題方法
首先 f(1)=3;f(2)=6;f(3)=6 現在考慮n>3的情況,若第n-1個格子和第一個格子不同,則為f(n-1); 若第n-1個格子和第1個格子相同,則第n-2個格子和第一個格子必然不同,此時為f(n-2)再乘第n個格子的顏色數,很顯然第n個格子可以是第一個格子(也是第n-1個格子)的顏色外的另外兩種,這樣為2*f(n-2);
因此總的情況為f(n)=f(n-1)+2*f(n-2);
哎呀這解題方式真是妙啊,一下就否定了我一下午的辛勤勞作,還挺讓我不甘心的。不過我自己是用深搜做的,這是我的博客,所以一定要炫耀一下我第一次獨立寫的深度搜索。
#include<stdio.h>#include<string.h>int color[100],Ncolor;int num;int ways;//紅色為1,綠色為2,藍色為3#define Q(x){/ num=x;ways=0;/ memset(color,0,sizeof(color));Ncolor=0;/ dfs(0);好,這就是深度搜索TLE的失敗案例。因為徹底沒有找到一個遞推關系式,所以也沒有成功做到記憶化搜索。也就是說,下午的時間我只是自己熟悉了一下深搜。 開心!!!!!新聞熱點
疑難解答