Today Is a Rainy Day UVALive - 7263

2024-02-22 18:18
文章标签 day rainy uvalive today 7263

本文主要是介绍Today Is a Rainy Day UVALive - 7263,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=5275

给两个串s1 s2 有两种操作 一是把单个字符改变 二是吧一种字符改变 问最少几次操作将s2变为s1

第二种操作肯定是越多越好 预处理第二种操作各个状态与原始状态123456的距离 对每次查询 枚举所有状态 把s2按当前状态进行第二种操作后的得到的字符串与s1比较 看有几个不一样 再加上距离后取最小值

#include <bits/stdc++.h>
using namespace std;
const int maxm=1e6+10;
const int N=0x3f3f3f3f;map <string,int> mp;
queue <string> que;
string pre[maxm];
string s1,s2;
int n,tot;void init()
{string cur,tmp;int i,j,k;cur="000000",tmp="000000";que.push("123456");mp["123456"]=1;pre[++tot]="123456";while(!que.empty()){cur=que.front();que.pop();for(i=0;i<6;i++){for(j=0;j<6;j++){if(i==j) continue;for(k=0;k<6;k++){if(cur[k]=='1'+i) tmp[k]='1'+j;else tmp[k]=cur[k];}if(!mp[tmp]){que.push(tmp);mp[tmp]=mp[cur]+1;pre[++tot]=tmp;}}}}
}int solve()
{int res,cnt,i,j;res=N;for(i=1;i<=tot;i++){cnt=mp[pre[i]]-1;for(j=0;j<n;j++) if(pre[i][s1[j]-'0'-1]!=s2[j]) cnt++;res=min(res,cnt);}return res;
}int main()
{int i;init();while(cin>>s2>>s1){n=s2.size();printf("%d\n",solve());}return 0;
}

 

这篇关于Today Is a Rainy Day UVALive - 7263的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/736097

相关文章

随想录 Day 69 并查集 107. 寻找存在的路径

随想录 Day 69 并查集 107. 寻找存在的路径 理论基础 int n = 1005; // n根据题目中节点数量而定,一般比节点数量大一点就好vector<int> father = vector<int> (n, 0); // C++里的一种数组结构// 并查集初始化void init() {for (int i = 0; i < n; ++i) {father[i] = i;}

Codeforces April Fools Day Contest 2014(附官方题解)

Codeforces2014年愚人节的坑题。。。但还是感觉挺好玩的。。。 A. The Great Game time limit per test 1 second memory limit per test 256 megabytes input standard input output standard output Two teams mee

Codeforces April Fools Day Contest 2013

2013年愚人节的坑题。。。 A. Mysterious strings time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output Input The input contains a sin

随想录 Day 66 101. 孤岛的总面积 102. 沉没孤岛 103. 水流问题

随想录 Day 66 101. 孤岛的总面积 102. 沉没孤岛 103. 水流问题 101. 孤岛的总面积 101. 孤岛的总面积 时间限制:1.000S 空间限制:256MB 题目描述 给定一个由 1(陆地)和 0(水)组成的矩阵,岛屿指的是由水平或垂直方向上相邻的陆地单元格组成的区域,且完全被水域单元格包围。孤岛是那些位于矩阵内部、所有单元格都不接触边缘的岛屿。 现在你需要计算所有孤

Day 31:100334. 包含所有1的最小矩形面积Ⅰ

Leetcode 100334. 包含所有1的最小矩形面积Ⅰ 给你一个二维 **二进制 **数组 grid。请你找出一个边在水平方向和竖直方向上、面积 最小 的矩形,并且满足 grid 中所有的 1 都在矩形的内部。 返回这个矩形可能的 **最小 **面积。 确定首次出现 1 的第一行 top,最后一次出现 1 的最后一列 r,最后一次出现 1 的最后一行 bottom,首次出现的第

[Day 19] 區塊鏈與人工智能的聯動應用:理論、技術與實踐

區塊鏈的數據透明性 區塊鏈技術作為一種分布式賬本技術,因其去中心化、不可篡改和高度透明的特性,已經在各行各業中得到了廣泛應用。在本文中,我們將深入探討區塊鏈的數據透明性,包括其原理、實現方法及相關代碼示例,並詳細解釋每段代碼的作用。 1. 區塊鏈數據透明性的原理 區塊鏈技術的核心是去中心化的分布式賬本,這意味著每個區塊中的數據都是公開的,並且可以由任何節點查看和驗證。這種透明性主要來源於以下

JavaWeb自学之JavaScript学习笔记 Day-2

1、js的String对象 **创建String对象 ***var str="abc"; **方法和属性(文档) ***属性 length:字符串的长度 ***方法 (1)与html相关的方法 -bold():加粗 -fontcolor():设置字符串的颜色 -fontsize():设置字体的大小(1~7)

java开发俄罗斯方块学习笔记 Day-6 布局

今天完成全部窗体的设计,从游戏界面可以看到需要设计8个不同的窗体,首先进行主窗体的设计,也就是游戏窗体。在设计游戏窗体时,需要认识到小方块尺寸为32*32,边框宽度为7,游戏窗口为16:9,经过计算主窗口宽度为32*10+14=334,高度为32*18+14=590,要设计出来的边框好看,设定边框宽度都相等,窗口之间的间距也相等。由最外面的边框宽度为654,根据16:9可以求得长度为1162.然

java开发俄罗斯方块学习笔记 Day-5 封装

在了解了如何将窗体素材切割成不同的几块之后,现在需要绘制完整的窗体。  一个完整的图片可以被分为9部分,根据图片在Panel上显示的左上角和右下角的坐标,以及源图片素材的切割起始点(左上角)和切割终点(右下角)坐标,可以绘制成不同的矩形窗体。 考虑到整个游戏界面有8个窗体组成,如果对每个窗体单独绘制,这样会造成大量代码重复,而且难以维护,所以我们将窗体的绘制封装成一个类Lay,绘制不同窗体时只

JavaWeb自学之html学习笔记 Day-2

5、图像标签(**********************) <img src="图片的路径" width="宽度" height="高度" alt="图片上显示的文字"/> -src:图片的路径 -width:图片的宽度 -height:图片的高度 -alt:图片上显示的文字(兼容性差,有些浏览器不显示此属性,不重要) 6、路径的介绍(********************) 分类