2017南宁网络赛 Problem J Minimum Distance in a Star Graph ( 模拟 )

题意 : 乱七八糟说了一大堆,实际上就是问你从一个序列到另个序列最少经过多少步的变化,每一次变化只能取序列的任意一个元素去和首元素互换

分析 : 由于只能和第一个元素去互换这种操作,所以没啥最优的特别方法,只要乖乖模拟即可,如果第一个元素不在正确位置则将它和正确位置的元素交换使其回到正确位置,如果第一个元素的位置就是正确的,那么就往后找不在正确位置的元素将它互换到第一个去,然后再对第一个元素进行判断即可,直到序列变成最终满足条件的序列........

#include<bits/stdc++.h>
using namespace std;
map<char, int> pos;
char st[11], en[11];
int n;
bool OK()
{
    for(int i=0; i<n; i++){
        if(st[i] != en[i])
            return false;
    }return true;
}
int main(void)
{
    scanf("%d", &n);
    for(int t=1; t<=5; t++){
        pos.clear();
        scanf("%s %s", st, en);
        for(int i=0; i<n; i++){
            pos[en[i]] = i;///记录每一个数字的正确位置
        }
        int ans = 0;
        int p = 0;
        while(!OK()){///每一次检查一下序列是否已经变成了最终序列
            if(en[0] != st[0]){
                swap(st[0], st[pos[st[0]]]);
                ans++;
            }else{
                for(int i=1; i<n; i++){
                    if(en[i] != st[i]){
                        swap(st[0], st[i]);
                        ans++;
                        break;
                    }
                }
            }
        }
        printf("%d\n", ans);
    }
    return 0;
}

瞎 : 做题经验不够,不能根据通过人数大胆往简单方向想,导致一直在乱七八糟找规律,期间还写了个BFS进行状态图搜索,导致在这个题浪费挺多时间(ノ`Д)ノ

时间: 2024-10-06 12:01:38

2017南宁网络赛 Problem J Minimum Distance in a Star Graph ( 模拟 )的相关文章

GSM Base Station Identification 2017南宁网络赛

emmm...... 我上小学开始就不打小报告了 emmm...... 话太多就变菜了 1 #include<bits/stdc++.h> 2 #define cl(a,b) memset(a,b,sizeof(a)) 3 #define debug(a) cerr<<#a<<"=="<<a<<endl 4 using namespace std; 5 typedef long long ll; 6 typedef pair&

2017 ACM-ICPC 南宁区比赛 Minimum Distance in a Star Graph

2017-09-25 19:58:04 writer:pprp 题意看上去很难很难,但是耐心看看还是能看懂的,给你n位数字 你可以交换第一位和之后的某一位,问你采用最少的步数可以交换成目标 有五组数据 用BFS进行搜索,并进行剪枝,已经搜索过的点不再搜索 #include <iostream> #include <cstdio> #include <algorithm> #include <cstring> #include <string> #

2017 icpc 南宁网络赛

2000年台湾大专题...英语阅读输入输出专场..我只能说很强势.. M. Frequent Subsets Problem The frequent subset problem is defined as follows. Suppose UU={1, 2,\ldots-,N} is the universe, and S_{1}S?1??, S_{2}S?2??,\ldots-,S_{M}S?M?? are MM sets over UU. Given a positive constan

hdu 6152 : Friend-Graph (2017 CCPC网络赛 1003)

题目链接 裸的结论题.百度 Ramsey定理.刚学过之后以为在哪也不会用到23333333333,没想到今天网络赛居然出了.顺利在题面更改前A掉~~~(我觉得要不是我开机慢+编译慢+中间暂时死机,我还能再早几分钟过掉它 #include<bits/stdc++.h> using namespace std; int g[8][8]; int n; void solve() { for(int i=1; i<=n; i++) for(int j=i+1; j<=n; j++) for

hihocoder 1586 ACM-ICPC国际大学生程序设计竞赛北京赛区(2017)网络赛-题目9 : Minimum【线段树】

https://hihocoder.com/problemset/problem/1586 线段树操作,原来题并不难..... 要求乘积最小只要求区间内最大值.最小值和绝对值小的数,再判断min,max正负就行了. 1 #include<iostream> 2 #include<cstdio> 3 #include<cstring> 4 #include<algorithm> 5 #include<cmath> 6 #define lson l,

ACM-ICPC国际大学生程序设计竞赛北京赛区(2017)网络赛 i题 Minimum(线段树)

描述 You are given a list of integers a0, a1, …, a2^k-1. You need to support two types of queries: 1. Output Minx,y∈[l,r] {ax?ay}. 2. Let ax=y. 输入 The first line is an integer T, indicating the number of test cases. (1≤T≤10). For each test case: The fi

ACM-ICPC国际大学生程序设计竞赛北京赛区(2017)网络赛 题目9 : Minimum

时间限制:1000ms 单点时限:1000ms 内存限制:256MB 描述 You are given a list of integers a0, a1, …, a2^k-1. You need to support two types of queries: 1. Output Minx,y∈[l,r] {ax?ay}. 2. Let ax=y. 输入 The first line is an integer T, indicating the number of test cases. (

2017乌鲁木齐网络赛 J题 Our Journey of Dalian Ends ( 最小费用最大流 )

题目链接 题意 : 给出一副图,大连是起点,终点是西安,要求你求出从起点到终点且经过中转点上海的最小花费是多少? 分析 : 最短路是最小费用最大流的一个特例,所以有些包含中转限制或者经过点次数有限制的最短路问题都可以考虑使用最小费用最大流来建图解决. 首先对于每个点都只能经过一次这个限制,在网络流中是比较常见的一个限制,只要将所有的点由一拆二且两点间连容量为 1 且花费为 0 的边. 这题的建图很巧妙,是将中转点作为汇点,提示到了这里不如停下来想想如何建图? 然后抽象出一个超级源点,然后将起点和

HDU 6198 2017沈阳网络赛 线形递推

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6198 题意:给出一个数k,问用k个斐波那契数相加,得不到的数最小是几. 解法:先暴力打表看看有没有规律. #include <bits/stdc++.h> using namespace std; int dp[2000][2000]; typedef long long LL; int main() { LL c[50]; c[0]=0; c[1]=1; c[2]=1; for(int i=2;