原题链接: https://codeforces.com/contest/1397/problem/B


测试样例:

input
3
1 3 2
output
1
input
3
1000000000 1000000000 1000000000
output
1999982505

Note

In the first example, we first reorder {1,3,2} into {1,2,3}, then increment a2 to 4 with cost 1 to get a power sequence {1,2,4}.

题意: 给你一个整数序列,你可以先更改整数序列的顺序,之后,你可以对任意位置的元素进行+1-1操作,成本消耗为1.问变成一个等比数列的最小成本是多少?

解题思路: 这道题关键是要读懂题目。我们知道一个整数序列,同样题目中说明我们可以免费排序,那么根据等比数列的特征,我们肯定会选择从小到大排序。那么由于ai=cia_i=c^iai​=ci,所以我们关键是要确定公比ccc,那么我们可以通过暴力枚举来解决,取成本消耗最少的值。 要注意优化时间,由于我们是不断增加公比去求成本消耗最小值,倘若我们再增加公比的值求得的成本消耗比上一次的还要高,那么这个时候我们就必须要退出了,因为之后再增加还是一样的情况。

AC代码:

/*
*邮箱:unique_powerhouse@qq.com
*blog:https://me.csdn.net/hzf0701
*注:文章若有任何问题请私信我或评论区留言,谢谢支持。
*
*/
#include<bits/stdc++.h> //POJ不支持#define rep(i,a,n) for (int i=a;i<=n;i++)//i为循环变量,a为初始值,n为界限值,递增
#define per(i,a,n) for (int i=a;i>=n;i--)//i为循环变量, a为初始值,n为界限值,递减。
#define pb push_back
#define IOS ios::sync_with_stdio(false);cin.tie(0); cout.tie(0)
#define fi first
#define se second
#define mp make_pairusing namespace std;const long long inf = 1e15;//无穷大
const int maxn = 1e5+3;//最大值。
typedef long long ll;
typedef long double ld;
typedef pair<ll, ll>  pll;
typedef pair<int, int> pii;
//*******************************分割线,以上为自定义代码模板***************************************//int n;
ll a[maxn];
void calculate(){ll result=inf;ll ans,temp;for(ll i=1;i<=1000004;i++){ans=a[0]-1;temp=1;bool flag=true;for(ll j=1;j<n;j++){temp*=i;ans+=abs(a[j]-temp);if(ans>result){flag=false;break;}}if(!flag)break;result=min(result,ans);}cout<<result<<endl;
}
int main(){//freopen("in.txt", "r", stdin);//提交的时候要注释掉IOS;while(cin>>n){rep(i,0,n-1)cin>>a[i];sort(a,a+n);calculate();}return 0;
}

B. Power Sequence(数学+枚举)Codeforces Round #666 (Div. 2)相关推荐

  1. 枚举 ---- B. Power Sequence[Codeforces Round #666 (Div. 2)][暴力]

    B. Power Sequence 有 n 个数,现在要求将这个数列变成一个等比数列的形式 你可以将这 n 个数随意排列 或者将任意一个数加一或者减一操作,每次此类操作都要花费 1,问最少花费是多少 ...

  2. Codeforces Round #666 (Div. 2)

    哎太菜了就做出2个题掉了19分~~ A - Juggling Letters 统计一下每个字母出现的次数,由于最后要平均分配到每个数组中那么每个字母出现次数应该是n的倍数 #define IO ios ...

  3. Codeforces Round #666 (Div. 2)B. Power Sequence(等比数列)

    problem 给出一个数列 两个操作 交换位置或者+1 -1 使数列成为首项为1的等比 求最少操作次数 solution 考虑到等比数列一定递增,直接排序 (过渡)试想特殊情况,排序后如果知道公比, ...

  4. 枚举 ---- Codeforces Round #711 (Div. 2) D. Bananas in a Microwave[枚举暴力+思维优化]

    题目链接 题目大意: 就是你有n次操作,每次操作给你三个参数:ti,xi,yit_i,x_i,y_iti​,xi​,yi​. 如果ti==1t_i == 1ti​==1你可以进行k=k+xik=k+x ...

  5. B. Multiply by 2, divide by 6(数学) Codeforces Round #653 (Div. 3)

    原题链接:https://codeforces.com/problemset/problem/1374/B 题意:有一个数能进行两种操作,除以6乘以2,问经过多少次操作能变成1.若不行则输出-1. 解 ...

  6. Codeforces Round #666 (Div. 1) C. Monster Invaders

    题目链接 一.题意 有3种武器,取名为,使用一次每个武器的时间分别是. 有个关卡,从第关到第关或第关需要时间. 第关有个小怪,每个小怪有点血. 每关有一个大怪,每个大怪有点血. 你只有杀死所有小怪才能 ...

  7. acm-(模拟、暴力枚举)Codeforces Round #664 (Div. 1) A. Boboniu Chats with Du

    传送门 将元素分为两类,大于mmm的和小于等于mmm的. 对于大于mmm的,我们将最大的那个放在序列末端,然后枚举其它元素有多少个能产生贡献,假设有xxx个能产生贡献,那么这xxx个元素还会消耗xdx ...

  8. Codeforces Round #666 (Div. 1) ABCD(E)题解

    目录 比赛记录: A B C D Solution 1 Solution 2 Solution 3 Solution 4 E(目前不太会,正在尝试) 比赛记录: 00:00:00 Participan ...

  9. Codeforces Round #666 (Div. 1) 题解

    A 假设第三次操作范围是 [ 1 , n ] [1,n] [1,n],那么前两次操作的目标就是把每个数变成 n n n 的倍数. 假设前两次目标的操作范围都是 b b b,那么对于每个数 a a a, ...

最新文章

  1. 运行PHP出现No input file specified错误解决办法
  2. 彻底理解Spring AOP
  3. python打印乘法表口诀-用Python打印九九乘法表正三角和倒三角。
  4. Uedit32和Ubuntu 选定跳转
  5. 第五章 软件下载与安装(二、Ubuntu安装Mininet)
  6. 每一对顶点之间的最短路径
  7. link-cut-tree 简单介绍
  8. linux常用命令--开发调试篇
  9. macbook禁用键盘_一行命令禁用 MacBook 内置键盘
  10. C#开发微信门户及应用(32)--微信支付接入和API封装使用
  11. 408计算机先学哪个,408计算机统考各科难度分析
  12. 【平面设计】扁平化设计(Ⅲ)——原则
  13. 页面css样式找不到问题
  14. 【全家福】多项式的各种板子
  15. Android中的数据编码,Android与服务端数据传输的编码处理
  16. MAX96706开发板POC电路分析
  17. mac上好用的chm阅读器
  18. Javascript技巧之对话窗口
  19. 【转】DSP是什么--DSP是神马东东??
  20. alicloud linux3安装Jdk和Maven

热门文章

  1. [Flink] 容错机制与状态一致性机制
  2. MongoDB系列之复制数据库和Collection
  3. MacOS11.2安装mysql 连接Sequelpro 最新整理(各种新坑)
  4. 解决服务器系统【卷影副本】文件属性“以前的版本”是空的
  5. mysql查询多字段_mysql多关键字多字段模糊查询
  6. iPadOS 更新日志 - 持续更新中
  7. 垃圾站是怎样练成的?
  8. 用移动激光扫描来估计树干直径的分割和树干校准法
  9. 他为故宫送快递,全年无休,三年零投诉
  10. autojs安卓免root脚本代码UI选择文件源码