UVA 10651
来源:互联网 发布:淘宝手机端图片大小 编辑:程序博客网 时间:2024/04/20 08:15
题目大意是给12个空槽,初始时有以下空槽中有石头,可以把两个连续的石头移动到相邻的一个空槽,并移调中间的石头,求最少剩余几块石头。
用一个整数表示状态,因公也就不到10000种状态,数组记录即可,状态转移用位操作即可。
#include <iostream>#include <algorithm>#include <cstdio>#include <cstring>#define lowbit(x) x&(-x)using namespace std;int dp[10000];int dfs(int st){if(dp[st]!=-1) return dp[st];int op=7,r1=3,r2=6,tt=st;dp[st]=0;while(tt) {dp[st]++;tt^=(lowbit(tt));}while(op<=3584){int temp=st&op;// 获取局部状态if(temp==r1||temp==r2) dp[st]=min(dp[st],dfs(st^op));// 若可以消去石头,则尝试更新op<<=1;r1<<=1;r2<<=1;}return dp[st];}int main(){int n;cin>>n;getchar();while(n--){memset(dp,-1,sizeof(dp));int st=0;char t;for(int i=0;(t=getchar())!='\n';i++){st|=((t=='-'?0:1)<<i);}dfs(st);cout<<dp[st]<<endl;}return 0;}
0 0
- uva 10651
- UVA 10651
- UVA 10651
- uva 10651 Pebble Solitaire
- UVA 10651 Pebble Solitaire
- Uva - 10651 - Pebble Solitaire
- uva 10651 pebble Solitaire
- UVa 10651 - Pebble Solitaire
- UVA - 10651 Pebble Solitaire
- UVa:10651 Pebble Solitaire
- uva 10651 Pebble Solitaire
- uva 10651 - Pebble Solitaire
- uva 10651(dp + 哈希)
- UVa 10651 - Pebble Solitaire
- UVA 10651 - Pebble Solitaire
- UVA 10651 Pebble Solitaire
- uva 10651 Pebble Solitaire
- UVA 10651 Pebble Solitaire
- 操作系统默认TTL值
- Linux常用MySQL操作命令
- Min3D测试-在Android里面载入MMD模型-快速3D模型显示测试-By黑月君
- iOS Sqlite数据库增删改查基本操作
- Maven的安装、配置
- UVA 10651
- 1412201333-hd-A + B
- 斯坦福NG机器学习课程:Dimensionality_reduction笔记
- atitit.Oracle 9 10 11 12新特性attilax总结
- hdu 1561 The more, The Better(树形dp)
- PostgreSQL备份与恢复(SQL dump)
- 关于照片在imageView中转置的问题
- js添加标签以及事件和jQuery常用标签详解
- WinPcap编程调试解决办法