题目一:传送门

思路:主要是找到状态,

考虑字母有两种状态,大写和小写,

从小写变为大写的变化方式有两种:保持cap状态,或者按住shift键;

从小写变为大写也有一种变化方式:按住shift键;

看起来很乱,但是主要就是是否为cap状态,shift可以看做多按一次键,

不能算作状态,所以一个字母就两个状态,大写键开启,或不开启。

由此建立一个二维数组dp[i][j],i表示节点位置;j表示状态,有0,1两种,表示大写键开启或不开启。

然后就是从0--len依次循环更新状态就行了,注意最终状态是大写键关闭。

代码:

#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
const int maxn = ;
const int INF = ;
char str[maxn];
int dp[maxn][],a[maxn];
int MIN(int x,int y)
{
return x<y?x:y;
}
int main(void)
{
int t,fg,i,len,cnt,j;
scanf("%d",&t);
while(t--)
{
scanf("%s",str);
len=strlen(str);
dp[][]=,dp[][]=;
for(i=;i<len;i++)
{
if(str[i]>='a'&&str[i]<='z')
{
dp[i+][]=MIN(dp[i][]+,dp[i][]+);
dp[i+][]=MIN(dp[i][]+,dp[i][]+);
}
else
{
dp[i+][]=MIN(dp[i][]+,dp[i][]+);
dp[i+][]=MIN(dp[i][]+,dp[i][]+);
}
}
printf("%d\n",MIN(dp[len][]+,dp[len][]));
}
return ;
}

题目二:传送门

思路:bfs+康托展开

参考文章:传送门

(1)将二维坐标用以为数组存储,每次只要进行行列变换就行了;

(2)每次交换两个坐标的值,然后再重新算出这个序列在全排列中的位置;

(3)x可以设为9,利用康拓展开每次返回当前序列在1-9全排列的位置,截止的标志是statu==1;

(4)每次记录变换的方向和前一个位置。

假期训练五(poj-1077bfs+康拓展开,hdu-2577dp)的更多相关文章

  1. hdu 1043 pku poj 1077 Eight (BFS + 康拓展开)

    http://acm.hdu.edu.cn/showproblem.php?pid=1043 http://poj.org/problem?id=1077 Eight Time Limit: 1000 ...

  2. Eight (HDU - 1043|POJ - 1077)(A* | 双向bfs+康拓展开)

    The 15-puzzle has been around for over 100 years; even if you don't know it by that name, you've see ...

  3. HDU 4531 bfs/康拓展开

    题目链接http://acm.hdu.edu.cn/showproblem.php?pid=4531 吉哥系列故事——乾坤大挪移 Time Limit: 2000/1000 MS (Java/Othe ...

  4. hdu 1043 Eight (八数码问题)【BFS】+【康拓展开】

    <题目链接> 题目大意:给出一个3×3的矩阵(包含1-8数字和一个字母x),经过一些移动格子上的数后得到连续的1-8,最后一格是x,要求最小移动步数. 解题分析:本题用BFS来寻找路径,为 ...

  5. hdoj1043 Eight(逆向BFS+打表+康拓展开)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1043 思路: 由于自己对康拓展开用的太少,看到这个题没想到康拓展开,最开始打算直接转换为数字,但太占内 ...

  6. 【HDOJ3567】【预处理bfs+映射+康拓展开hash】

    http://acm.hdu.edu.cn/showproblem.php?pid=3567 Eight II Time Limit: 4000/2000 MS (Java/Others)    Me ...

  7. 【HDOJ1043】【康拓展开+BFS】

    http://acm.hdu.edu.cn/showproblem.php?pid=1043 Eight Time Limit: 10000/5000 MS (Java/Others)    Memo ...

  8. 【康拓展开】及其在求全排列第k个数中的应用

    题目:给出n个互不相同的字符, 并给定它们的相对大小顺序,这样n个字符的所有排列也会有一个顺序. 现在任给一个排列,求出在它后面的第i个排列.这是一个典型的康拓展开应用,首先我们先阐述一下什么是康拓展 ...

  9. ACM/ICPC 之 BFS(离线)+康拓展开(TSH OJ-玩具(Toy))

    祝大家新年快乐,相信在新的一年里一定有我们自己的梦! 这是一个简化的魔板问题,只需输出步骤即可. 玩具(Toy) 描述 ZC神最擅长逻辑推理,一日,他给大家讲述起自己儿时的数字玩具. 该玩具酷似魔方, ...

随机推荐

  1. FortiGate防火墙内存使用率高问题

    1.现象:zabbix监控到防火墙内存使用率频繁超过80%,而FortiGate防火墙内存超过80%将开启自身保护模式而不能新加策略等. 2.分析:这种情况一般是某些进程再释放内存的时候卡住.可以先查 ...

  2. ABAP空格和零的问题

    空格 concatenate wa_detail-zz_mark1 '' '' '' wa_detail-kdmat1 into wa_detail-zz_mark1 separated by spa ...

  3. ARM交叉编译工具链

    交叉编译工具链是一个由编译器.连接器和解释器组成的综合开发环境,交叉编译工具链主要由binutils.gcc和glibc三个部分组成. 免费版目前有三大主流工具商提供,第一是GNU(提供源码,自行编译 ...

  4. 【linux】下Apache无法启动(8080端口被占用)

    Linux下8080端口被占用,apache无法启动. 打开终端输入netstat -lnp|grep 8080 发现竟然是tcp6 占用里,因此ipv6启用占用了端口. 1.打开/etc/sysct ...

  5. 纯css背景图自适应

    只需要这样设置即可,只要你的图片足够大的话可以无限缩小,当不在缩小的时候则跟你的实际图片大小有关系

  6. rbac之 权限粒度控制到按钮级别

    rbac之 权限粒度控制到按钮级别:  这里的意思就是 如果当前用户,没有这个权限. 那么这个相对应的这个按钮的权限, 就不应该展示.看都不能给看到. 思路: 为每一个权限,设置一个别名.  这里是这 ...

  7. slam14讲证明构成李代数

  8. iOS.Thread.OSAtomic

    1. 原子操作 (Atomic Operations) 编写多线程代码最重要的一点是:对共享数据的访问要加锁. Shared data is any data which more than one ...

  9. Android.Tools.Ant

    ant 1. ant手册翻译 ant手册翻译是一项大工程!!!!!! ant在线手册的链接好不明确. 2. ant 支持for循环 安装ant-contrib Ref[1.1]. 要在ant的buil ...

  10. *jquery操作DOM总结 (原创:最全、最系统、实例展示)

    jquery操作DOM包括八个方面: 一:jquery对DOM节点的基本操作:二:jquery对DOM节点的CSS样式操作:三:jquery遍历DOM节点:四:jquery创建DOM节点:五:jque ...