uva 10118 免費糖果 深搜+記憶化搜尋
http://www.cnblogs.com/kedebug/archive/2013/04/07/3006493.html
#include<stdio.h> #include<string.h> #define N 45 #define C 22 int max(int a,int b) { return a>b?a:b; } int pile[4][N],f[N][N][N][N],n,top[4]; int dfs(int s,int hash[C]) { int i,j,ans=0; if(f[top[0]][top[1]][top[2]][top[3]]!=-1) { return f[top[0]][top[1]][top[2]][top[3]]; } if(s==5)//籃子滿了,末狀態 return f[top[0]][top[1]][top[2]][top[3]]=0; int h[C],t[4]; for(i=0;i<4;i++) { memcpy(h,hash,sizeof(h)); if(top[i]!=n)//到n是拿空了 { if(h[pile[i][top[i]]])//拿i堆頂,可以湊對 { h[pile[i][top[i]]]=0; top[i]++; ans=max(ans,dfs(s-1,h)+1); } else { h[pile[i][top[i]]]=1; top[i]++; ans=max(ans,dfs(s+1,h)); } top[i]--; } } return f[top[0]][top[1]][top[2]][top[3]]=ans; } int main() { int i,j,k,l,m; while(scanf("%d",&n)&&n) { memset(pile,0,sizeof(pile)); for(i=0;i<n;i++) { for(j=0;j<4;j++) scanf("%d",&pile[j][i]); } memset(f,-1,sizeof(f)); memset(top,0,sizeof(top)); int hash[C]={0}; printf("%d\n",dfs(0,hash)); } return 0; }
相關推薦
uva 10118 免費糖果 深搜+記憶化搜尋
http://www.cnblogs.com/kedebug/archive/2013/04/07/3006493.html #include<stdio.h> #include<string.h> #define N 45 #define C
問題 C: 調酒壺裏的酸奶 廣搜或深搜+記憶化搜索
urn c++ pri possible 外部 需要 main names highlight 問題 C: 調酒壺裏的酸奶 時間限制: 1 Sec 內存限制: 128 MB提交: 284 解決: 97[提交] [狀態] [命題人:外部導入] 題目描述 最近
UVa 免費糖果(記憶化搜尋)
在狀態複雜,資訊多且資料小的情況下可以選擇考慮記憶化搜尋.這題我就做的很zz,一開始已知想打一個dp, 不過太麻煩了.看了解題報告之後才發現記憶化搜尋這麼簡單 #include<
UVa 10651 Pebble Solitaire(DP 記憶化搜索)
src output one row max -s turn -- nth Pebble Solitaire Pebble solitaire is an interesting game. This is a game where you are given
UVA-11761-馬爾可夫/記憶化搜索
cstring return pro cin push_back 保存 include ini sum https://vjudge.net/problem/UVA-11762 給出一個整數n,每次隨機挑選一個小於等於n的素數,如果是n的因子,n變為n/x ,否則不
bzoj 1589: [Usaco2008 Dec]Trick or Treat on the Farm 采集糖果【tarjan+記憶化搜索】
dfs spa 重新 i++ mes RM tar \n () 對這個奇形怪狀的圖tarjan,然後重新連邊把圖變成DAG,然後記憶化搜索即可 #include<iostream> #include<cstdio> using namespace s
UVa 10118 Free Candies (記憶化搜尋+狀態壓縮)
題目連結:https://cn.vjudge.net/problem/UVA-10118 思路:設dp[pa][pb][pc][pd]四堆糖分別取到這四堆的第pa、pb、pc、pd顆時最多的pair數, 用一個二進位制串記錄籃中糖的狀態(即哪些糖有那些沒有)。狀態轉移一共四
hdu 1428 挺好的一個題目 記憶化搜尋+廣搜實現迪傑斯特拉
漫步校園 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 4369 Accepted Submission
一道題看懂遞迴、(深度搜索)dfs、記憶化搜尋、動態規劃(DP)的差別!
有一個層數為n(n<=1000)的數字三角形。現有一隻螞蟻從頂層開始向下走,每走下一級,可向左下方向或右下方向走。求走到底層後它所經過數字的總和的最大值。 【輸入格式】 第一個整數為n,一下n行為各層的數字。 【輸出格式】 一個整數,即最大值。
uva 437(不用記憶化搜尋解)
思路:放程式碼上了 程式碼如下: /* 最優解是max height 最優子結構是以i方塊作為最後一塊的最大長度 子問題的最優解是以前1,2,3...i-1個方塊作為最後一塊的最大長度 顯然:最優子結構包含了子問題的最優解 並且這些子問題的解之間相互獨立(其中一個問題的解,不會影響另
uva 572 簡單的深搜
#include <iostream> #include <cstdio> #include <cstring> using namespace std; const int MAXN = 110; char map[MAXN][MA
uva 707(記憶化搜尋)
思路:此題需要記憶化搜尋,dp[x][y][t]表示當前狀態下是否是否有可能點(x,y)上有賊,0表示不可能,1表示可能,然後及時記憶化搜尋。 1 #include<iostream>
Pebble Solitaire+uva+狀態壓縮+記憶化搜尋
Time Limit: 3000MS Memory Limit: Unknown 64bit IO Format: %lld & %llu Description Problem A Pebble Solitaire Input: standard in
UVA 1630 記憶化搜尋
題意 輸入一個字串,摺疊成一個儘量短的串。問最短可以摺疊成什麼樣子的一個串。 題解 設dp[i][j]為字串i到j摺疊成最短的字串後的長度,ss[i][j]為字串i到j摺疊成的最短的字串。DFS+記憶化搜尋即可。 注意事項 輸入的字串右邊界為s
uva 10285 記憶化搜尋
求矩陣中最長遞減路徑的長度,記憶化搜尋,因為要找的路徑是嚴格遞減的,所以不會有回頭路 Sample Input 2 Feldberg 10 5 56 14 51 58 88 26 94 24 39 41 24 16 8 51 51 76 72 77 43 10 38 50
【10.31校內測試】【組合數學】【記憶化搜尋/DP】【多起點多終點二進位制拆位Spfa】
Solution 注意取模!!! Code #include<bits/stdc++.h> #define mod 1000000007 #define LL long long using namespace std; int n, a, b;
icpc 2018 徐州 網路賽 B 博弈+記憶化搜尋
In a world where ordinary people cannot reach, a boy named "Koutarou" and a girl named "Sena" are playing a video game. The game system of this vide
洛谷P3387 縮點模板(縮點+記憶化搜尋)
題目連結:https://www.luogu.org/problemnew/show/P3387 如果你還不會Tarjan縮點,我見一你還是先看看這篇部落格:https://www.cnblogs.com/WWHHTT/p/9825766.html 或者過一段時間再來 首先我們分析題目,要求出圖中的一條
BZOJ 1415 聰聰和可可 (Dijkstra預處理 + 期望DP + 記憶化搜尋)
任重而道遠 Input 資料的第1行為兩個整數N和E,以空格分隔,分別表示森林中的景點數和連線相鄰景點的路的條數。 第2行包含兩個整數C和M,以空格分隔,分別表示初始時聰聰和可可所在的景點的編號。 接下來E行,每行兩個整數,第i+2行的兩個整數Ai和Bi表示景點Ai和景點Bi之間有一條
CodeForces - 208B Solitaire 記憶化搜尋
A boy named Vasya wants to play an old Russian solitaire called "Accordion". In this solitaire, the player must observe the following rules: A de