问题 E: 某科学的打麻将

时间限制: 1 秒  内存限制: 64 MB
提交: 18  解决: 2
提交 状态

题目描述

过年打麻将果然是一项必备技能(雾),打麻将的起手式是整理好自己手中的牌,现在你有十三张牌(只可能出现一万到九万,一筒到九筒,一条到九条),你要把这些牌整理好,使得相同花色的牌必须在连续的唯一一段(即所有的"万"要放在一起,所有的"条"要放在一起,所有的"筒"要放在一起。),每段内牌是按照从小到大的顺序排列(“万”,“条”,“筒”的顺序没有要求)。你每次只能将当前牌中的任意一张牌放到最左边或者最右边。请问最少经过多少次可以使得牌被整理好。

一万到九万,用数字1-9表示

一筒到九筒,用小写字母a-i表示

一条到九条,用大写字母A-I 表示

输入

第一行 一个数字T代表数据组数(T<=10000)

接下来每行 13个字符 代表初始的牌

输出

T行每行一个数字,代表答案

样例输入

1
3abcABBDEFG11

样例输出

1

总共3种字符,任意排列共6种情况,对于每种情况,用原串的子序列匹配有序串的子串,所得出的最长长度就是不

用移动的字符个数,最后6种情况中取最优的即可!

PS:此题题目数据有问题(已改)

http://172.18.66.54:50015/JudgeOnline/problem.php?cid=1020&pid=4

#include<stdio.h>
#include<string.h>
#include<ctype.h>
#include<algorithm>
using namespace std;
char str[18], jud[18], a[18], b[18], c[18];
int dp[18][18];
int Jud(int n)
{int i, j, bet;bet = 0;for(i=1;i<=n;i++){for(j=1;j<=n;j++){if(str[i]==jud[j])dp[i][j] = dp[i-1][j-1]+1;elsedp[i][j] = dp[i-1][j];bet = max(bet, dp[i][j]);}}//printf("%s %d\n", jud+1, bet);return n-bet;
}
int main(void)
{int T, n, la, lb, lc, i, ans;scanf("%d", &T);while(T--){scanf("%s", str+1);n = strlen(str+1);la = lb = lc = 0;for(i=1;i<=n;i++){if(isdigit(str[i]))a[++la] = str[i];else if(islower(str[i]))b[++lb] = str[i];elsec[++lc] = str[i];}a[la+1] = b[lb+1] = c[lc+1] = 0;sort(a+1, a+la+1);sort(b+1, b+lb+1);sort(c+1, c+lc+1);memset(jud, 0, sizeof(jud));strcat(jud+1, a+1), strcat(jud+1, b+1), strcat(jud+1, c+1);ans = Jud(n);memset(jud, 0, sizeof(jud));strcat(jud+1, a+1), strcat(jud+1, c+1), strcat(jud+1, b+1);ans = min(ans, Jud(n));memset(jud, 0, sizeof(jud));strcat(jud+1, b+1), strcat(jud+1, a+1), strcat(jud+1, c+1);ans = min(ans, Jud(n));memset(jud, 0, sizeof(jud));strcat(jud+1, b+1), strcat(jud+1, c+1), strcat(jud+1, a+1);ans = min(ans, Jud(n));memset(jud, 0, sizeof(jud));strcat(jud+1, c+1), strcat(jud+1, b+1), strcat(jud+1, a+1);ans = min(ans, Jud(n));memset(jud, 0, sizeof(jud));strcat(jud+1, c+1), strcat(jud+1, a+1), strcat(jud+1, b+1);ans = min(ans, Jud(n));printf("%d\n", ans);}return 0;
}

HAUT校赛--某科学的打麻将相关推荐

  1. HAUT校赛--最大奇子段和

    问题 G: 最大子段和 时间限制: 1 秒  内存限制: 64 MB 提交: 42  解决: 10 提交 状态 题目描述 一个大小为n的数组a1到an(−10^4≤ai≤10^4).请你找出一个连续子 ...

  2. HAUT校赛 魔法宝石 暴力

    问题 C: 魔法宝石 时间限制: 2 秒  内存限制: 64 MB 提交: 505  解决: 149 提交 状态 题目描述 小s想要创造n种魔法宝石.小s可以用ai的魔力值创造一棵第i种魔法宝石,或是 ...

  3. 18年12月蓝桥杯校赛

    前言 昨天下午参加了蓝桥杯校内选拔赛. 不谈别人,只谈自己,我觉得这次校赛的发挥还算正常,大概做出了5/8或4/5吧,剩下几道题没时间看了. 应该提高做题效率了- 第一题 Excel地址 Excel单 ...

  4. 郑轻第六届校赛 -- 部分题解

    1427: 数字转换 Time Limit: 1 Sec  Memory Limit: 128 MB Submit: 379  Solved: 93 SubmitStatusWeb Board Des ...

  5. [置顶]2010年东北大学ACM程序设计竞赛冬季校赛题解

    8题只做出4题比较easy的题,而且做得挺麻烦,看来还要多练练. AC的题如下 NEUOJ  1112 I Love Apple Description So many people love app ...

  6. 2017校赛 问题 F: 懒人得多动脑

    题目描述 小D的家A和学校B都恰好在以点F为焦点的双曲线上,而小D每日所需的生活水源在一条平行该双曲线准线的直线上,设它的值为v.大家都知道,每天都是要喝水的,但是小D有点懒,他希望自己能在去上学或者 ...

  7. 关于安徽赛区推广校赛的实施办法

    关于安徽赛区 推广校赛的实施办法 全国组委会:   安徽赛区作为第一个省级赛区自2010年举办至今,受到安徽省教育厅和安徽各高校高度认可,是安徽省教育厅重点支持的大学生学科和技能竞赛A类赛事.但安徽赛 ...

  8. 第18届浙江大学校赛 Mergeable Stack

    The 18th Zhejiang University Programming Contest Sponsored by TuSimple 第18届浙江大学校赛的c题 解析:起先是用stack写的模 ...

  9. 21-5-22校赛J 下围棋

    21-5-22校赛J 下围棋 给出一个节点个数为n的树,其根节点为1,两个人轮流操作,每一次操作可以选择一个非根节点,删除这个节点及其子树,当一个人无法进行操作的时候,他就输掉了.问后手是必胜还是必败 ...

最新文章

  1. 月薪25-80K丨一汽(南京)招聘雷达感知开发工程师、主管、主任、高级主任
  2. php怎么添加框架,PHPWind 给默认的风格添加大框架
  3. AI公开课:19.03.07王海峰博士《人工智能技术与产业应用》课堂笔记以及个人感悟
  4. 掌握Angular2的服务(service)
  5. W-D-S-UART编程
  6. SQL中的left join
  7. hdoj - 1258 Sum It Up hdoj - 1016 Prime Ring Problem (简单dfs)
  8. .Net程序员学习Linux最简单的方法
  9. python函数作用域_Python命名空间和作用域的基本认识和一点小魔法
  10. 深度学习自学(三十五):双向图推理全景图像分割
  11. 细说GIT分布式版本控制器
  12. Landsat8处理小工具(python)
  13. VS2017离线下载及安装方式
  14. 关于j2sdk的设置
  15. java.lang.ClassCastException: com.sun.proxy.$Proxy7 cannot be cast to comms.service.message
  16. HTML基本结构标签
  17. linux 关闭 飞行模式,飞行模式和免打扰模式的区别
  18. tp摄像头的默认地址_tplink的ip默认地址是什么?
  19. 物联网应用技术和计算机应用技术哪个更好,2020物联网应用技术专业选什么大学好?...
  20. 基于Windows平台的Radius服务器搭建指南

热门文章

  1. python爬虫步骤-Docker部署Python爬虫项目的方法步骤
  2. 调研报告|在线语音识别改进之 RNN-T 训练
  3. 语音识别芯片的经典应用案例
  4. 来自DFRobot的中文语音识别模块
  5. Keil用C语言定义函数,STC单片机Keil中C语言函数定位的方法
  6. python多态_记录学习python第9天-继承/多态
  7. mysql 修复数据表 批量_MySQL数据库迁移与MySQL数据库批量恢复
  8. 【java笔记】线程(2):多线程的原理
  9. SDL2源代码分析5:更新纹理(SDL_UpdateTexture())
  10. bootstrapValidator验证失败问题