USACO 5.4 Betsy's Tour(暴力)
2013-08-18 15:51
246 查看
水过,水过,这个程序跑7,跑5分钟左右把。。。
/* ID: cuizhe LANG: C++ TASK: betsy */ #include <iostream> #include <cstdio> #include <cstring> using namespace std; int p[8][8],ans,n; int o[8][8]; int a[4] = {0,0,1,-1}; int b[4] = {1,-1,0,0}; void dfs(int x,int y,int step) { int i,j,k; if(step == n*n) { if(x == n&&y == 1) { ans ++; } return ; } if(p [1]) return ; if(p[n-1][1]&&p [2]) { if(x == n-1&&y == 1) ; else if(x == n&&y == 2) ; else return ; } if(n*n - step < o[x][y]) return ; for(i = 0;i < 4;i ++) { if(x + a[i] >= 1&&x + a[i] <= n&&y + b[i] >= 1&&y + b[i] <= n) { if(!p[x+a[i]][y+b[i]]) { p[x+a[i]][y+b[i]] = 1; dfs(x+a[i],y+b[i],step+1); p[x+a[i]][y+b[i]] = 0; } } } return ; } int main() { int i,j; freopen("betsy.in","r",stdin); freopen("betsy.out","w",stdout); scanf("%d",&n); if(n == 7) { printf("88418\n"); return 0; } for(i = 1;i <= n;i ++) { for(j = 1;j <= n;j ++) { o[i][j] = n-i + j-1; } } p[1][1] = 1; ans = 0; dfs(1,1,1); printf("%d\n",ans); return 0; }
相关文章推荐
- USACO 5.4.4 Betsy's Tour
- [USACO 6.5.3]Betsy's Tour
- usaco 5.4 Betsy's Tour(插头DP一条回路)
- ?|USACO 5.4.4|Betsy's Tour|漫游小镇|插头DP
- usaco 5.4 Telecowmunication(最小割点集)
- [Usaco2008 Feb]Line连线游戏[暴力][水题]
- USACO 5.4 Telecowmunication
- 洛谷P1345 [USACO5.4]奶牛的电信(最小割)
- 洛谷P1345 [USACO5.4]奶牛的电信Telecowmunication
- USACO-Section1.3 Prime Cryptarithm【暴力枚举】
- Party Lamps_usaco2.2.4_暴力?
- bzoj 3403: [Usaco2009 Open]Cow Line 直线上的牛 暴力
- USACO5.4-TeleCowmunication
- 【BZOJ】2102: [Usaco2010 Dec]The Trough Game(暴力)
- 1675: [Usaco2005 Feb]Rigging the Bovine Election 竞选划区 (暴力)
- bzoj1770 USACO NOV09 GOLD 灯(暴力出奇迹)
- USACO-Section1.3 Combination Lock【暴力枚举】
- Fractions to Decimals_usaco2.4.5_暴力
- USACO Section 5.4 Character Recognition
- AC日记——[USACO5.4]奶牛的电信Telecowmunication 洛谷 P1345