题意:给定一个数,和一个最多交换次数k,问在不超过k次操作的情况,问可以得到的最大值和最小值是多少?

个人解题的艰辛路程 , 开始是想到了暴力枚举的可能 , 打出来发现在判断枚举的数组与原来数组交换了多少次出现了错误 , 我们扫一遍枚举的数组于原来的数组不相同就往后面找到相同 , 但这个是不行的 , 这样必须是每一位数都不一样才可以 , 然后无耻的看了题解 , O!原来是枚举位置 ,  然后题解,超时了 , 想了想发现当k>cnt 的时候 ,是一定可以构成出来的 ,不需要枚举 , 所以加了这样Ala

#include<bits/stdc++.h>
using namespace std ;
int A[],a[],T[],sumMAX[],sumMIN[];
int main()
{
int t;
scanf("%d",&t);
while(t--)
{
memset(sumMIN,,sizeof(sumMIN));
memset(sumMAX,,sizeof(sumMAX));
int x,k;
scanf("%d%d",&x,&k);
int cnt=;
while(x)
{ a[cnt++]=x%;
sumMAX[x%]++;sumMIN[x%]++;
x/=;
}
for(int i=cnt- ; i>= ; i--)
{
A[cnt--i]=a[i];
}
for(int i= ; i<cnt ; i++) a[i]=i;
int MIN=0x3f3f3f3f,MAX=-;
if(k>=cnt-)///剪枝
{
for(int i= ; i<= ; i++)///第一位排除0
{
if(sumMIN[i])
{
printf("%d",i);
sumMIN[i]--;
break;
}
}
for(int i= ; i<= ; i++)
{
while(sumMIN[i])
{
printf("%d",i);
sumMIN[i]--;
}
}
printf(" ");
for(int i= ; i>= ; i--)
{
while(sumMAX[i])
{
printf("%d",i);sumMAX[i]--;
}
}
puts("");continue;
}
do
{
int now=;
int ans=;
if(A[a[]]==) continue;
for(int i= ; i<cnt ; i++)
T[i]=a[i];
for(int i= ; i<cnt ; i++)
{
if(T[i]!=i)
{
now++;
if(now>k) break;
for(int j=i+ ; j<cnt ; j++)
{
if(T[j]==i)
{
swap(T[i],T[j]);break;
}
}
}
if(now>k) break;
ans=ans*+A[a[i]]; }
if(now<=k)
{
// printf("%d %d\n",ans,now);
MAX=max(MAX,ans) , MIN=min(MIN,ans);
}
} while(next_permutation(a,a+cnt));
printf("%d %d\n",MIN,MAX); }
}

HDU 6351 (带技巧的暴力)的更多相关文章

  1. HDU - 6351 Beautiful Now

    Beautiful Now HDU - 6351 Anton has a positive integer n, however, it quite looks like a mess, so he ...

  2. HDU 2920 分块底数优化 暴力

    其实和昨天写的那道水题是一样的,注意爆LL $1<=n,k<=1e9$,$\sum\limits_{i=1}^{n}(k \mod i) = nk - \sum\limits_{i=1}^ ...

  3. HDU 6351暴力枚举 6354计算几何

    Beautiful Now Time Limit: 5000/2500 MS (Java/Others)    Memory Limit: 262144/262144 K (Java/Others)T ...

  4. HDU 2588 GCD 【Euler + 暴力技巧】

    任意门:http://acm.hdu.edu.cn/showproblem.php?pid=2588 GCD Time Limit: 2000/1000 MS (Java/Others)    Mem ...

  5. hdu 1006 Tick and Tick 有技巧的暴力

    Tick and Tick Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Tot ...

  6. Bazinga HDU - 5510【技巧暴力+字符串】

    题目:https://vjudge.net/problem/HDU-5510 $2015ACM/ICPC$ 亚洲区沈阳站 题目大意: 输入$t$(表示样例个数) 如何每个样例一个 $n$,表示字符串的 ...

  7. hdu 5277 YJC counts stars 暴力

    YJC counts stars Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://acm.hdu.edu.cn/showproblem.php? ...

  8. HDU 5311 Hidden String (暴力)

    题意:今天是BestCoder一周年纪念日. 比赛管理员Soda有一个长度为n的字符串s. 他想要知道能否找到s的三个互不相交的子串s[l1..r1], s[l2..r2], s[l3..r3]满足下 ...

  9. HDU 5762 Teacher Bo (暴力)

    Teacher Bo 题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5762 Description Teacher BoBo is a geogra ...

随机推荐

  1. 575. Distribute Candies 平均分糖果,但要求种类最多

    [抄题]: Given an integer array with even length, where different numbers in this array represent diffe ...

  2. Ubuntu 复制 拷贝和自适应屏幕

    ubuntu 16.04安装vmtools实测无效!!!!!!11 1.解决VMware workstation与主机的粘贴.复制.文件拖拽问题. 2.解决VMware workstations中Ub ...

  3. Glade编程

    一.简介 如果有一种软件能将图形界面的设计及时地展现于开发人员的面前,而且在设计完后能直接看到界面的外观效果,这样就使程序员的主要精力集中于应用程序核心功能的开发上,这就是所谓的可视化编程思想.   ...

  4. .NET Framework各版本特性一览

    https://msdn.microsoft.com/en-us/library/bb822049.aspx .NET Framework version CL version Features In ...

  5. C# JSON使用的常用技巧(二)

    JSON在php里一句json_encode就可以得到 在C#里我们同样也很容易的可以得到 用到的类库:Newtonsoft.Json.dll 实体类: class Cat { public stri ...

  6. (转)不定义JQuery插件,不要说会JQuery

    原文地址:http://www.cnblogs.com/xcj26/p/3345556.html 一:导言 有些WEB开发者,会引用一个JQuery类库,然后在网页上写一写$("#" ...

  7. Max Sum(动态规划)

    原创 http://acm.hdu.edu.cn/showproblem.php?pid=1003 题目要求求出一个序列里面的最大序列和,序列要求是连续的,给出最大序列和,序列首元素下标和尾元素下标, ...

  8. SQL计算时间差并排除周末

    SQL计算时间差并排除周末 CREATE FUNCTION DI_FN_GET_WorkDay (@begin DATETIME , @end DATETIME ) RETURNS int BEGIN ...

  9. .NET Framework的一些基本概念

    各种Framework的区别(按在Windows程序管理中显示的名称) .NET Framework: 运行环境,仅用于运行程序 .NET Framework Developer Pack: 包含Ru ...

  10. python爬取淘宝排名

    import timeimport jsonimport requestsimport xlrdimport randomimport os from xlutils.copy import copy ...