blog正式转移到了这里:

http://blog.phoeagon.cz.cc



I know

phoeagon啲01世界

2010 年 3 月 15 日  星期一   晴天


连通性 Dynamic Programming 分類: Programming Impossib...

KOI打击过以后决定小做做最简单的 基于连通性的状态压缩动态规划。

Cdq神牛的论文看了很久~ 还是找了某代码看~ 果然我理解代码的能力还是稍微比看solution好点。

那是一道Betsy's Tour. Code是逐格递推,每个格子滚动数组:

 int main{int i,j,k; int nx,t1,t2,u,v; int size=1<<(m+1)*2; memset(f1,0,sizeof(f1)); memset(f2,0,sizeof(f2)); f1[0]-->        int i,j,k;
int nx,t1,t2,u,v;
int size=1<<(m+1)*2;
memset(f1,0,sizeof(f1));
memset(f2,0,sizeof(f2));
f1[0]=1;
_f1=f1; _f2=f2;
for (i=0;i<n;++i){
for (j=0;j<m;++j){
memset(_f2,0,sizeof(f2));
if (mp[i][j]){
for (k=0;k<size;++k)if (_f1[k]){
nx=k; t1=getbit(nx,j); t2=getbit(nx,j+1);
if ( !t1 && !t2 ){
// # #
setbit(nx,j,1); setbit(nx,j+1,2);
_f2[nx]+=_f1[k];
}
else if ( t1==2 && t2==1 ){
setbit(nx,j,0); setbit(nx,j+1,0);
_f2[nx]+=_f1[k];
}
else if ( t1==1 && t2==1 ){
u=match_right(nx,j+1);
setbit(nx,j,0); setbit(nx,j+1,0);
setbit(nx,u,1);
_f2[nx]+=_f1[k];
}
else if ( t1==2 && t2==2 ){
u=match_left(nx,j);
setbit(nx,j,0); setbit(nx,j+1,0);
setbit(nx,u,2);
_f2[nx]+=_f1[k];
}
else if ( t1==0 || t2==0 ){
_f2[nx]+=_f1[k];
setbit(nx,j,t2); setbit(nx,j+1,t1);
_f2[nx]+=_f1[k];
}
} }
else{
for (k=0;k<size;++k)
if (_f1[k]){
nx=k; t1=getbit(nx,j); t2=getbit(nx,j+1);
if ( t1==0 && t2==0 ){
_f2[nx]+=_f1[k];
}
}
}
tmp=_f1;_f1=_f2;_f2=tmp;
}
memset(_f2,0,sizeof(f2));
for (k=0;k<(size>>2);++k)
_f2[k<<2]=_f1[k];
tmp=_f1; _f1=_f2; _f2=tmp;
}
int goal=0;
setbit(goal,1,1);
setbit(goal,m,2);
//printf("%d\n",goal);
printf("%d\n",_f1[goal]);
}
//(改成Tony's Tour的版本)

然后~ 发现还是效率不够,不够Ural的Formula 1.于是改写成Hash写法:


   

 

Manhattan Wire还是不是清晰。。。再说吧。

 






訪客留言 (返回 phoeagon 的日誌)


ftiasch 於 2010-03-20 12:39 PM 發表:
= = 我的Mahatan wiring好像写shit了。不过还是很快……
[ 回覆 ] [ 封鎖 ] [ 刪除 ]


訪客名稱:
電郵地址: (不會公開)
驗證碼:  按此更新驗證碼 (如看不清楚驗證碼請點擊圖片刷新)
俏俏話: (必需 登入 後才能使用此功能)
[ 開啟多功能編輯器 ]







人氣:79325
暱稱: phoeagon
性別: 男
MORE...  
« April 2019 »
SMTWTFS
123456
78910111213
14151617181920
21222324252627
282930
» 最新日誌
Blog Moved!
跨站jsMath实现
路由表是个好东西
Twitter Fav列表达陈100...
搞定了公式显示
» 日誌分類
全部 (175)
Code Storage (11)
Math&Phy@Chem@MM (8)
Music Anyway (5)
Programming Impossible (28)
RSS提示 (2)
StorageBox (5)
'Bout Here (12)
滑鼠人生 (42)
碎屑 (51)
未分類 (11)
» 訪客留言
http://clean... (xuotfenugvyz)
http://polll... (fzxzwtiooaqj)
Фильмы... (EqSo.obum)
Фильмы... (DfKz.wmnu)
Фильмы... (FiWo.snbd)
» 最近訪客
最近沒有訪客
» 每月文章
» 日誌訂閱
尚未訂閱任何日誌
» 我的好友
» 我的連結
Ink Mark --Jlim
StarKirby
|S||S||S|
「流年祭」
» 日誌統計
文章總數: 175
留言總數: 86
今日人氣: 95
累積人氣: 79325
» 站內搜索
RSS Feed