wing是什么_nativepage原理

wing是什么_nativepage原理给定 n 本书,编号为 1∼n。在初始状态下,书是任意排列的。在每一次操作中,可以抽取其中连续的一段,再把这段插入到其他某个位置。我们的目标状态是把书按照 1∼n 的顺序依次排列。求最少需要多少次操作。输入格式第一行包含整数 T,表示共有 T 组测试数据。每组数据包含两行,第一行为整数 n,表示书的数量。第二行为 n 个整数,表示 1∼n 的一种任意排列。同行数之间用空格隔开。输出格式每组数据输出一个最少操作次数。如果最少操作次数大于或等于 5 次,则输出 5 or more。每个

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

给定 n 本书,编号为 1∼n。

在初始状态下,书是任意排列的。

在每一次操作中,可以抽取其中连续的一段,再把这段插入到其他某个位置。

我们的目标状态是把书按照 1∼n 的顺序依次排列。

求最少需要多少次操作。

输入格式
第一行包含整数 T,表示共有 T 组测试数据。

每组数据包含两行,第一行为整数 n,表示书的数量。

第二行为 n 个整数,表示 1∼n 的一种任意排列。

同行数之间用空格隔开。

输出格式
每组数据输出一个最少操作次数。

如果最少操作次数大于或等于 5 次,则输出 5 or more。

每个结果占一行。

数据范围
1≤n≤15

输入样例:
3
6
1 3 4 6 2 5
5
5 4 3 2 1
10
6 8 5 3 4 7 2 9 1 10
输出样例:
2
3
5 or more

题解
IDA*,每一次变动都会改变3个数的后继,所以我们可以先统计每个数的后继,然后看看当前状态是否能达到要求。

  1. IDA*
#include<bits/stdc++.h>
using namespace std;
int n;
const int N = 1e2;
string t;
int f(){ 
   
    int tot = 0;
    for(int i = 1;i < n;i ++)
        if(t[i - 1] != t[i] - 1)tot ++;
    return (tot + 2) / 3;
}
bool IDAstar(int u,int maxn){ 
   
    if(f() > maxn - u)return false;
    if(u == maxn){ 
   
        return true;
    }
    string temp = t;
    for(int len = 1;len <= n - 1;len ++){ 
   
        for(int l = 0;l <= n - len;l ++){ 
   
            int r = l + len - 1;
            string substr = temp.substr(l,r - l + 1);
            for(int k = r + 1;k < n;k ++){ 
   
                t.insert(k + 1,substr);
                t.erase(l,r - l + 1);
                if(IDAstar(u + 1,maxn))return true;
                t = temp;
            }
        }
    }
    return false;
}
int a[N];
int main(){ 
   
    int T;
    cin>>T;
    while(T --){ 
   
        cin>>n;
        t = "";
        for(int i = 0;i < n;i ++){ 
   
            cin>>a[i];
        
            t += a[i];
        }
        int maxn = 0;
        while(maxn <= 4 && IDAstar(0,maxn) == false ){ 
   
            maxn ++;
        }
        if(maxn == 5){ 
   
            cout<<"5 or more"<<endl;
        }
        else cout<<maxn<<endl;
    }
    return 0;
}
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/169133.html原文链接:https://javaforall.net

(0)
上一篇 2022年8月9日 下午10:16
下一篇 2022年8月9日 下午10:16


相关推荐

  • C语言小游戏,游戏设计,500+行代码

    C语言小游戏,游戏设计,500+行代码自学c语言有2个月了,自己给自己做了个毕业设计。希望大家可以参考学习,也欢迎有大佬提出自己的见解。(注:本程序为纯C语言)c语言毕业设计…

    2022年5月12日
    46
  • 串口调试助手fx2n_PLC串口调试助手详细讲解(结合实操)「建议收藏」

    串口调试助手fx2n_PLC串口调试助手详细讲解(结合实操)「建议收藏」下面技成培训网给大家分享一则案例文,学员常见问题!经常会有学员问,老师老师,我的PLC和变频器通讯不上了,不知道什么原因,您能帮我看看么。其实吧,这个一般远程是帮不上你什么的,还是要你自己去测试,找出问题,那么怎么测试呢,今天就给大家做一个详细的解说,我们通过一个实际对的案例,结合一个叫做串口调试助手的小工具,带大家了解,通讯出问题了,一般是怎么去查找问题的。案例是这样的:一台三菱的PLC,PLC…

    2022年6月4日
    59
  • 前端如何做好seo_seo的五个步骤

    前端如何做好seo_seo的五个步骤一、合理的title、description、keywords搜索对着三项的权重逐个减小,title值强调重点即可;description把页面内容高度概括,不可过分堆砌关键词;keywords列举出重要关键词。1、titletitle,就是浏览器上显示的那些内容,不仅用户能看到,也能被搜索引擎检索到(搜索引擎在抓取网页时,最先读取的就是网页标题,所以title是否正确设置极其…

    2026年1月16日
    4
  • 谷歌放大招了!Nano Banana Pro 这四大提升太牛了(附 APi 接入教程 0.15/张) · w2solo

    谷歌放大招了!Nano Banana Pro 这四大提升太牛了(附 APi 接入教程 0.15/张) · w2solo

    2026年3月13日
    2
  • stm32之继电器驱动[通俗易懂]

    stm32之继电器驱动[通俗易懂]继电器(英文名称:relay)是一种电控制器件,当输入量的变化达到规定要求时,在电气输出电路中使被控量发生预定的 阶跃变化的一种电器。它具有控制系统(又称输入回路)和被控制系统(又称输出回路)之间的互动关系。通常应用于自动化  的控制电路中,它实际上是用小电流去控制大电流运作的一种“自动开关”。虽然很简单,但是可以作为入门知识来学习。第一步:找到单片机控制继电器的引脚,引

    2022年6月24日
    34
  • web聊天框页面

    web聊天框页面DOCTYPE tml htmllang en head metacharset UTF 8 title 聊天窗口 title metaname renderer content webkit metahttp equiv X UA Compatible content IE edge chrome 1 amp l metahttp equiv X UA Compatible content IE edge chrome 1 metaname renderer content webkit metacharset UTF 8 head htmllang en

    2025年11月17日
    6

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号