power oj/2360/Change
题目链接[https://www.oj.swust.edu.cn/problem/show/2360]
题意:给出两个四位数A、B,目地是用最少的步骤使A变成B。变换规则如下:1、相邻的两位数可以交换,消耗为1步。2、每位数字可以增加或者减小,步骤为增加或者减小的量。
题解:用DFS先全排列交换,然后对每一位进行增加或者减小记录步骤和,然后取最小值。
#include<bits/stdc++.h>
using namespace std;
int n[],m[];
bool vis[];
char s[];
int t,stp;
int check(int num)
{
int x[]={,num/,num%/,num%/,num%};
int p=;
for(int i = ;i <= ;i++)
{
p+=min(fabs(m[i]-x[i]),-fabs(m[i]-x[i]));
}
return p;
}
void DFS(int num,int ex)
{
if(num>)
{
printf("%d %d\n",num,ex);
stp=min(stp,check(num)+ex);
}
else
{
for(int i = ;i <= ;i++)
{
if(!vis[i])
{
vis[i] = ;
DFS(num*+n[i],ex++);
vis[i] = ;
}
}
}
}
int main ()
{
scanf("%d",&t);
while(t--)
{
stp=1e5;
scanf("%s",s+);
for(int i = ;i <= ;i++)
n[i] = s[i]-'';
scanf("%s",s+);
for(int i = ;i <= ;i++)
m[i] = s[i]-'';
DFS(,);
printf("%d\n",stp);
}
return ;
}
power oj/2360/Change的更多相关文章
- power oj 2480 放积木[二进制状压DP]
题目链接[https://www.oj.swust.edu.cn/problem/show/2480] 题意:中文题目. 题解:二进制状态转移+坏点判断. #include<cstdio> ...
- power oj 1557种树[二进制状压DP]
题目链接[https://www.oj.swust.edu.cn/problem/show/1557] 题意:中文题目. 题解:用0,1表示某个位置是否种了树,先算出同一行的有效状态的总数,即开两个1 ...
- FZU oj 2277 Change 树状数组+dfs序
Problem 2277 Change Time Limit: 2000 mSec Memory Limit : 262144 KB Problem Description There is ...
- Power OJ 2605 SPFA+dp思想
题目链接[https://www.oj.swust.edu.cn/problem/show/2605] 题意:给出包含N(N <= 5000)个点M条边的有向图,然后求1 - N在满足距离小于T ...
- Power oj2498/DP/递推
power oj 2498 /递推 2498: 新年礼物 Time Limit: 1000 MS Memory Limit: 65536 KBTotal Submit: 12 Accepted: 3 ...
- HDU 6034---Balala Power!(搜索+贪心)
题目链接 Problem Description Talented Mr.Tang has n strings consisting of only lower case characters. He ...
- 2017 多校训练 1002 Balala Power!
Balala Power! Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others)T ...
- hdu 6034 B - Balala Power! 贪心
B - Balala Power! 题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=6034 题面描述 Talented Mr.Tang has n st ...
- HDU 6034 17多校1 Balala Power!(思维 排序)
Problem Description Talented Mr.Tang has n strings consisting of only lower case characters. He want ...
随机推荐
- TheSixthWeekJavaText
加密文档 实验要求编写一个算法加密一串英文字串. 设计思想:对于一个字符串,我们可以用String.charAt()方法依次取出其中的字符元素,组成一个字符数组.由于字符可以转化为short类型变量进 ...
- border表格有的自动换行,有的不能自动换行!
解决手机端tab超过设置的宽度换行! <table id="vip-tab"> <tr id="leibie"> <th clas ...
- 打印机服务器搭建 -cups
系统:ubuntu 14.04 http://foo2zjs.rkkda.com/INSTALL 安装cups sudo apt-get install cups 安装完成后,把打印机的数据线与服 ...
- NIO 入门
新的输入/输出 (NIO) 库是在 JDK 1.4 中引入的.NIO 弥补了原来的 I/O 的不足,它在标准 Java 代码中提供了高速的.面向块的 I/O.通过定义包含数据的类,以及通过以块的形式处 ...
- centos 7 连接 xshell5
首先 保证你的centos版本与你选择的linux版本相同. 1.首先查看本机IP和网关 2.在centos7命令行下输入nmtui 进入 Edit a commection 选择Edit 按照刚 ...
- JDK及Jmeter的安装和配置
Jmeter通常用于并发测试,本文介绍Jmeter工具的安装步骤. 工具/原料 WIN7 Jmeter安装包 JDK 一.安装JDK [步骤一]安装jdk 1.下载jdk,到官网下载jdk,地址: ...
- 基础dp
队友的建议,让我去学一学kuangbin的基础dp,在这里小小的整理总结一下吧. 首先我感觉自己还远远不够称为一个dp选手,一是这些题目还远不够,二是定义状态的经验不足.不过这些题目让我在一定程度上加 ...
- Generating Faces with Deconvolution Networks
用深度学习做人脸合成,website:https://zo7.github.io/blog/2016/09/25/generating-faces.html 受启发于 Learning to Gene ...
- B/S和C/S的区别。
现在软件开发的整体架构主要分为B/S架构与C/S架构 一,C/S——Client/Service:客户机/服务器模式: C/S (Client/Server)结构,即大家熟知的客户机和服务器结构.它是 ...
- jQuery动态添加元素事件
在项目中遇到需要jQuery动态添加元素的事件,做了一个demo,方便以后遇到相同的问题可以用上: <!DOCTYPE html> <html> <head> &l ...