hdu 4739(状态压缩)
来源:互联网 发布:於于同:无主之花 知乎 编辑:程序博客网 时间:2024/05/21 17:32
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4739
思路:状态压缩。
1 #include<iostream> 2 #include<cstdio> 3 #include<cstring> 4 #include<algorithm> 5 #include<vector> 6 using namespace std; 7 8 struct Point{ 9 int x,y;10 }point[22];11 12 int dp[(1<<20)+2];13 int n;14 15 int cmp(const Point &p,const Point &q)16 {17 if(p.y==q.y){18 return p.x<q.x;19 }20 return p.y<q.y;21 }22 23 24 bool Judge(int i,int j,int k,int l)25 {26 if(point[i].x==point[j].x&&point[i].y==point[j].y)return false;27 if(point[i].y!=point[j].y||point[i].x!=point[k].x||point[j].x!=point[l].x||point[k].y!=point[l].y)28 return false;29 if(abs(point[i].x-point[j].x)!=abs(point[i].y-point[k].y))30 return false;31 return true;32 }33 34 vector<int>g[22];35 int main()36 {37 while(~scanf("%d",&n)){38 if(n==-1)break;39 for(int i=0;i<n;i++)scanf("%d%d",&point[i].x,&point[i].y);40 sort(point,point+n,cmp);41 memset(dp,0,sizeof(dp));42 for(int i=0;i<=n;i++)g[i].clear();43 for(int i=0;i<n;i++){44 for(int j=i+1;j<n;j++){45 for(int k=j+1;k<n;k++){46 for(int l=k+1;l<n;l++){47 if(Judge(i,j,k,l)){48 int state=0;49 state|=(1<<i);50 state|=(1<<j);51 state|=(1<<k);52 state|=(1<<l);53 g[i].push_back(state);54 }55 }56 }57 }58 }59 for(int state=0;state<(1<<n);state++){60 for(int i=0;i<n;i++){61 if(state&(1<<i)){62 for(int j=0;j<g[i].size();j++){63 int S=g[i][j];64 if((S|state)==state)dp[state]=max(dp[state],dp[state^S]+4);65 }66 }67 }68 }69 printf("%d\n",dp[(1<<n)-1]);70 }71 return 0;72 }
0 0
- hdu 4739(状态压缩)
- Hdu 1429(状态压缩)
- hdu 3006(状态压缩)
- hdu 2167 Pebbles(状态压缩)
- hdu 4284(状态压缩)&& poj 3311 &&,,,
- HDU 3001--Travelling(状态压缩+tsp)
- hdu - 4628 - Pieces(状态压缩dp)
- HDU 4628 Pieces(状态压缩dp)
- hdu 1185(状态压缩dp)
- hdu 4628(状态压缩dp)
- hdu 2167 Pebbles(状态压缩DP)
- hdu 3001(状态压缩dp)
- hdu 4628 Pieces(状态压缩DP)
- hdu 2167 Pebbles (状态压缩dp)
- HDU 2167 Pebbles(状态压缩dp)
- hdu 1429 (bfs+状态压缩)
- hdu - 5045 - Contest(状态压缩dp)
- hdu 2167(状态压缩dp)
- zoj 3370(二分+二分图染色)
- hdu 3760(2次bfs求最短路)
- UVALive 6044(双连通分量的应用)
- UESTC 1511(差分约束)
- uva 610(tarjan的应用)
- hdu 4739(状态压缩)
- hdu4734(记忆化搜索)
- 浅谈2014年seo发展的方向
- zoj 3362(最大费用)
- uva 707(记忆化搜索)
- hdu 1667(IDA*)
- hdu 2234(IDA*)
- hdu 1560(IDA*)
- hdu 1813(IDA*)