【NOIP2015模拟11.4】JZOJ2020年8月6日提高组T2 最优交换
【NOIP2015模拟11.4】JZOJ2020年8月6日提高组T2 最优交换
题目


题解
题意
有一个长度为\(n\)的正整数
最多可以进行\(k\)次操作
每次操作交换相邻两个位置上的数
问可以得到的最大的数是多少
分析
很容易想到贪心
对于第\(i\)个位置
肯定要放\(i\)~\(i+k\)中最大的那个数才是最优的
由于本题数据范围不大
那么就可以暴力找数然后暴力修改
每次操作过后\(k\)要减去移动的长度
Code
#include<cstdio>
#include<cstring>
#include<iostream>
using namespace std;
int t,n,k,i,j,x,mx,mxid,a[55];
char ch;
int main()
{
    freopen("swap.in","r",stdin);
    freopen("swap.out","w",stdout);
    scanf("%d",&t);
    while (t--)
    {
        n=0;
        memset(a,0,sizeof(a));
        ch=getchar();
        while (ch<'0'||ch>'9') ch=getchar();
        while (ch>='0'&&ch<='9')
        {
            n++;
            a[n]=ch-'0';
            ch=getchar();
        }
        scanf("%d",&k);
        for (i=1;i<=n;i++)
        {
            mx=-1;
            for (j=i;j<=min(i+k,n);j++)
            {
                if (mx<a[j])
                {
                    mx=a[j];
                    mxid=j;
                }
            }
            x=a[mxid];
            for (j=mxid;j>i;j--)
                a[j]=a[j-1];
            a[i]=x;
            k-=mxid-i;
        }
        for (i=1;i<=n;i++)
            printf("%d",a[i]);
        printf("\n");
    }
    fclose(stdin);
    fclose(stdout);
    return 0;
}
【NOIP2015模拟11.4】JZOJ2020年8月6日提高组T2 最优交换的更多相关文章
- 【NOIP2015模拟11.2晚】JZOJ8月4日提高组T2 我的天
		[NOIP2015模拟11.2晚]JZOJ8月4日提高组T2 我的天 题目 很久很以前,有一个古老的村庄--xiba村,村子里生活着n+1个村民,但由于历届村长恐怖而且黑暗的魔法统治下,村民们各自过着 ... 
- 【GDKOI2014】JZOJ2020年8月13日提高组T2 石油储备计划
		[GDKOI2014]JZOJ2020年8月13日提高组T2 石油储备计划 题目 Description Input Output 对于每组数据,输出一个整数,表示达到"平衡"状态 ... 
- 【五校联考1day2】JZOJ2020年8月12日提高组T2 我想大声告诉你
		[五校联考1day2]JZOJ2020年8月12日提高组T2 我想大声告诉你 题目 Description 因为小Y 是知名的白富美,所以自然也有很多的追求者,这一天这些追求者打算进行一次游戏来踢出一 ... 
- 【佛山市选2013】JZOJ2020年8月7日提高组T2 树环转换
		[佛山市选2013]JZOJ2020年8月7日提高组T2 树环转换 题目 描述 给定一棵N个节点的树,去掉这棵树的一条边需要消耗值1,为这个图的两个点加上一条边也需要消耗值1.树的节点编号从1开始.在 ... 
- 【NOIP2015模拟11.5】JZOJ8月5日提高组T2 Lucas的数列
		[NOIP2015模拟11.5]JZOJ8月5日提高组T2 Lucas的数列 题目 PS:\(n*n*T*T<=10^{18}\)而不是\(10^1*8\) 题解 题意: 给出\(n\)个元素的 ... 
- 【GDOI2014模拟】JZOJ2020年8月14日提高组 服务器
		[GDOI2014模拟]JZOJ2020年8月14日提高组 服务器 题目 Time and Memory Limits Description 我们需要将一个文件复制到n个服务器上,这些服务器的编号为 ... 
- 【NOIP2012模拟8.7】JZOJ2020年8月8日提高组T1 奶牛编号
		[NOIP2012模拟8.7]JZOJ2020年8月8日提高组T1 奶牛编号 题目 作为一个神秘的电脑高手,Farmer John 用二进制数字标识他的奶牛. 然而,他有点迷信,标识奶牛用的二进制数字 ... 
- JZOJ2020年9月5日提高组反思
		JZOJ2020年9月5日提高组反思 T1 考试的时候没有头绪,就打了个暴力,愉快的拿到了10分的\(impossible\) 正解是\(DP\),设\(f[i][j][k]\)表示地\(i\)种币值 ... 
- JZOJ2020年8月7日提高组反思
		JZOJ2020年8月7日提高组反思 T1 暴力枚举 枚举起点和\(p\) 然后就 过了?! 根据本人不严谨的推算 时间复杂度\(O(\dfrac{n^7}{4})\) 数据太水就过去了QAQ T2 ... 
随机推荐
- Doctrine\ORM\QueryBuilder 源码解析之 where
			背景 最近有需求实现类似于 QueryBuilder 的谓词语句,就去翻看了它的源码.先看两个例子 例子1 $qb = $em->createQueryBuilder(); $qb->se ... 
- waitpid()系统调用学习
			waitpid()的头文件 #include <sys/types.h> #include <sys/wait.h> pid_t waitpid(pid_t pid,int ... 
- C# 中的数字分隔符 _
			编写 C# 代码时,我们时常会用到很大的数字,例如下面定义的变量: const long loops = 50000000000; 您能快速读出这是多少吗?是不是还是会有很多人把光标定位到最后一位,然 ... 
- 【JVM第一篇--类加载机制】类加载过程
			写在前面的话:本文是在观看尚硅谷JVM教程后,整理的学习笔记.其观看地址如下:尚硅谷2020最新版宋红康JVM教程 一.什么是类加载过程 (1).概述 我们编写的类(.java文件)会被编译器(如ja ... 
- linux 协议栈 实现--编码小知识分析
			unlikely 以及likely 作用: rcu_read_lock 以及rcu_read_unlock 作用: rcu_dereference .rcu_dereference_protecte ... 
- 再聊 Blazor,它是否值得你花时间学习
			之前写了一篇文章<快速了解 ASP.NET Core Blazor>,大家关心最多的问题是,我该不该花时间去学习 Blazor.今天聊聊这个话题,并表达一下我个人的看法. 在此之前,我还是 ... 
- linux域名解析引起登陆慢
			linux域名解析引起登陆慢的问题在于,ssh去登录这个台机器的时候,本机会去通过域名解析获取登录主机的主机名,所有一旦域名解析是无效的,需要等待较长时间 解决办法一: 将域名解析指到127.0.0. ... 
- Python博文_爬虫工程师是干什么的
			程序员有时候很难和外行人讲明白自己的工作是什么,甚至有些时候,跟同行的人讲清楚"你是干什么的"也很困难.比如我自己,就对Daivd在搞的语义网一头雾水.所以我打算写一篇博客,讲一下 ... 
- Python面试题_中级版
			Python 面试题 1.Python是如何进行内存管理的 对象引用机制.垃圾回收机制.内存池机制 1.1对象引用机制 Python内部使用引用计数,来保持追踪内存中的对象,所有对象都有引用计数. 引 ... 
- php获取字符串长度
			function len($zfc){ $arr = []; $len = mb_strlen($zfc); for ($i = 0; $i < $len; $i++) { array_push ... 
