题意:

给出一个长度为N的串,每个元素介于1-6之间,现在有两种操作方式:
A、将所有值为x的改为y
B、将某个位置为x
现在给出初始串S,要求将其变为目标串T的最小操作次数。
N≤100


分析:

首先,必须得到一个结论,所有的B操作都可以在所有A操作做完后进行
证明非常简单:无论最优解中B操作在任意一个位置,将其在A操作做完后,将其直接改为目标串的值,这样可以是不会增加操作次数的。
所以现在就很简单了,我们可以暴力枚举A操作,很容易可以发现A操作其实是一种映射关系,我们可以bfs暴力一发,最后枚举每种操作方式,将原串根据每种操作方式进行映射,再将映射后的串用O(n)的复杂度扫描一次,若该位置的值与目标串不一样,就需要在该位置做一次B操作。再将所有的映射关系的操作次数与其需要做的B操作次数相加,就得到了一种方案。所有方案取最小值,即可求出我们要的答案。

#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cmath>
#include<queue>
#define SF scanf
#define PF printf
#define MAXN 110
#define INF 0x3FFFFFFF
using namespace std;
int col[7],n,col1[7];
char s[MAXN],t[MAXN];
int vis[46656+100];
queue<int> q;
int get_num(){int y=1,res=0;for(int i=5;i>=0;i--){res+=col[i]*y;y*=6;}return res;
}
void get_id(int x){for(int i=5;i>=0;i--){col[i]=x%6;x/=6;}
}
int check(int x){get_id(x);/*if(col[0]==1&&col[1]==1&&col[2]==2&&col[3]==3&&col[4]==4&&col[5]==5)PF("*");*/int cnt=0;for(int i=0;i<n;i++){int tx=col[s[i]-'1'];if(tx!=t[i]-'1')cnt++;}return cnt;
}
int bfs(){memset(vis,-1,sizeof vis);for(int i=0;i<6;i++)col[i]=i;int st=get_num();q.push(st);vis[st]=0;while(!q.empty()){int x=q.front();q.pop();get_id(x);for(int i=0;i<6;i++)col1[i]=col[i];for(int i=0;i<6;i++)for(int j=0;j<6;j++){for(int k=0;k<6;k++)if(col[k]==i)col[k]=j;int newn=get_num();if(vis[newn]==-1){vis[newn]=vis[x]+1;q.push(newn);}for(int k=0;k<6;k++)col[k]=col1[k];}}
}
int main(){bfs();while(SF("%s%s",t,s)!=EOF){n=strlen(s);int ans=INF;for(int i=0;i<46656;i++)if(vis[i]!=-1){ans=min(ans,check(i)+vis[i]);}PF("%d\n",ans);}
}

hihocoder1251Uvalive7263 Today Is a Rainy Day 2015北京赛区C相关推荐

  1. 北京计算机 英语职称考试报名时间2015,2015北京职称计算机考试报名入口

    [考试简介]全国专业技术人员计算机应用能力考试是一种计算机能力考试. 全国职称计算机考试可以提高计算机和网络的普及应用程度,加强信息资源的开发和利用"的精神,落实国家加快信息化建设的要求,引 ...

  2. 北京赛区总结,以及。。。

    上次合肥看错题.这次北京推不出前缀和二项式....还是太弱了呢.感觉一年里收获的也不是特别多.很多算法和自己的代码能力需要进一步提高....感觉还是被队友带飞了呢.然后.... 北京赛区的水题BFS, ...

  3. 2018 ACM-ICPC亚洲区域赛 北京赛区

    2018 ACM-ICPC亚洲区域赛 北京赛区 A - Jin Yong's Wukong Ranking List HihoCoder - 1870 题意 给N对关系,每对关系表示为A 比B 厉害, ...

  4. “阳光天使”2007全国小姐大赛北京赛区决赛

      2007年"阳光天使"全国小姐大赛北京赛区决赛在吉利大学举行.我作为评委参加.进入前5名的将要到武汉参加全国总决赛,之后选出5人参加世界洲际小姐总决赛.进入三甲的各有特色,冠军 ...

  5. 2017 ACM/ICPC 北京赛区小结 By jsb @Reconquista

    Statistics TYPE: Onsite Contest NAME: 2017 - ICPC - Asia Beijing PLAT: hihoCoder TIME: 2017/11/19 09 ...

  6. icpc 北京赛区总结

    day1:第一天早早的去体育馆等候开幕式,热身赛的题目都是前几年北京的原题,因为我们队训练的时候已经把北京赛区前几年的题都做过了(本想靠着热身赛找下状态,因为也好几天没有做题了,可能这个也埋下了伏笔) ...

  7. ACM-ICPC国际大学生程序设计竞赛北京赛区(2017)网络赛 A. Visiting Peking University

    ACM-ICPC国际大学生程序设计竞赛北京赛区(2017)网络赛 A. Visiting Peking University 题意,一个人去北京旅游,计划待m天,但是其中有一些天交通管制,不能出去,到 ...

  8. 2014 ACM/ICPC 北京赛区网络赛解题报告汇总

    首页 算法竞赛» 信息聚合 ONLINE JUDGE 书刊杂志 BLOG» 新闻故事» 招聘信息» 投稿须知 2014 ACM/ICPC 北京赛区网络赛解题报告汇总 九月 21st, 2014 | P ...

  9. ACM-ICPC 2018 北京赛区网络预赛(A B C D H)

    ACM-ICPC 2018 北京赛区网络预赛(A B C D H) 自闭症患者 A. Saving Tang Monk II 题目链接 题面: 划掉 题意: 大搜索,队友写的 思路: 大搜索,队友写的 ...

  10. 2010 CJ Cosplay嘉年华北京赛区决战

    2010 ChinaJoy Cosplay嘉年华北京赛区 暨 第二届网尚文化·千色境界ComiQ动漫游戏嘉年华决赛将在本月15日登陆北京海淀剧院.决赛当日,将有十二支实力社团同场竞技,为大家呈现精彩激 ...

最新文章

  1. seaborn箱图(box plot)可视化、并且在箱图中使用三角形标注均值的位置(showmeans=True)
  2. 基于vue和elementUI封装框选表格组件
  3. View的绘制-draw流程详解
  4. android 键盘 能复制,android – 从EditText中禁用软键盘,但仍允许复制/粘贴?
  5. 【codevs1079】回家
  6. 倒计时6天|2020腾讯广告犀牛鸟计划申请即将截止,错过再等一年!
  7. java序列化和反序列化练习
  8. BZOJ-3227 红黑树(tree) 树形DP
  9. c语言编写一个用户登录界面,怎么用C语言编写个登陆界面?
  10. 台式电脑连不上wifi怎么办
  11. 蒸汽管道图纸符号_水暖工程图纸中的符号表示
  12. vue移动端UI组件
  13. HTML-零基础入门
  14. [敏捷开发培训] 构建Agile MVP
  15. 云和恩墨数据库人才招聘
  16. [跨境工具通]2020年Shopify卖家可以免费使用的10款Dropshipping工具推荐
  17. 躲避雪糕刺客?通过爬虫爬取雪糕价格
  18. gmail账号找回_如何找回忘记的Gmail密码
  19. 【LowCode Talk】前端大佬姚老师、狼叔怎么看:低代码会让程序员失业?
  20. 肆拾肆- 微信小程序 canvas 解锁及弹簧物理效应动画

热门文章

  1. 电脑声卡维修经验和实例完全分析
  2. c语言结构体投票系统,结构体之投票系统
  3. 解决onenote同步速度慢问题
  4. 服务器如何防止被攻击
  5. CleanMyMac X免费的c盘清理工具
  6. SEO诊断案例-崔凯博客
  7. html5 音乐播放器 静态,使用HTML5 Audio标签制作音乐播放器
  8. Operator 基础原理和概念
  9. 笔记本设置WiFi热点命令操作
  10. oracle revoke 列_oracle受权与回收权限grant和revoke