C. Adding Powers

原题目地址

题意:

给你一个目标数组,要你 对一个所有元素从0开始的数组 进行一种操作。

  1. 每一步可以对一个元素增加 k^i ( i 为每一步)( i 可以为0)
  2. 或者第 i 步不进行操作

思路(贪心):

既然每一步的元素只能用一次,或者不用,而又是k次幂。

所以对最大一个考察时,应该满足一个条件:

  1. 最大的元素只能由比它小的 k次幂来构成

(等比数列第n项和前n-1项和有一个关系:
sum(n-1)< k^n,我做的时候想到这个结论,不过没用上qwq)

————————————————————————————————————————————————————————
所以可以贪心的把每个元素分解为 k的n次幂
分解方法除k取余(除k取得余数即是一个: k^n, 并标记是否用过)(与2进制的除2取余相似)————————————————————————————————————————————————————————

反思

  1. 在求一个数由k^n构成时,要想到模拟进制转换中的除k取余。
  2. k进制每一位下的1—代表10进制下k^n次幂

AC(咩哥代码)

#include <iostream>
#include <cstring>
#define mst(x,a) memset(x,a,sizeof(x))
#define For(i,x,y) for(int i=(x); i<=(y); i++)
using namespace std;
typedef long long ll;
ll vis[110];
const ll INF=1e16;
int main()
{ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);int t;cin>>t;while(t--){mst(vis,0);ll n,k;cin>>n>>k;int flag=1;For(i,1,n){ll a;cin>>a;for(int j=0; a&&j<=100; j++){vis[j]+=a%k;a/=k;}}For(i,0,100){if(vis[i]>1){flag=0;break;}}if(flag)cout<<"YES"<<endl;else cout<<"NO"<<endl;}return 0;
}

Educational codeforces round 83 div2C(类似进制转换,等比数列又一个性质)相关推荐

  1. 进制转换 写出一个程序,接受一个十六进制的数,输出该数值的十进制表示。

    进制转换 写出一个程序,接受一个十六进制的数,输出该数值的十进制表示. import java.util.Scanner; public class Main {public static void ...

  2. Codeforces 552C Vanya and Scales(进制转换+思维)

    题目链接:http://codeforces.com/problemset/problem/552/C 题目大意: 有101个砝码重量为w^0,w^1,....,w^100和一个重量为m的物体,问能否 ...

  3. Codefoece Educational Codeforces Round 83 (Rated for Div. 2)题解,(ABCDE)

    比赛链接 A题: 思路:签到题. 代码: #include<bits/stdc++.h> using namespace std; typedef long long ll; const ...

  4. 进制转换:输入一个十进制整数转换为十六进制。

    public static String decToHex(int n){String r="";//定义一个空字符串while (n>=16){int yushu=n%16 ...

  5. 从零学起-----通识篇01 进制转换

    目录 一.目标 二.学习说明背景 三.学习内容 1.进制定义 2.各进制间的转换方法 2.1 二进制转其他进制 2.2 十进制转其他进制 2.3 八进制转其他进制 2.4 十六进制转其他进制 2.5 ...

  6. 题库练习2(随机数去重排序、分割字符串、进制转换)

    1. 随机数去重排序 明明想在学校中请一些同学一起做一项问卷调查,为了实验的客观性,他先用计算机生成了N个1到1000之间的随机整数(N≤1000),对于其中重复的数字,只保留一个,把其余相同的数去掉 ...

  7. python内置函数bin,Python内置函数bin() oct()等实现进制转换

    Python内置函数bin() oct()等实现进制转换 使用Python内置函数:bin().oct().int().hex()可实现进制转换. 先看Python官方文档中对这几个内置函数的描述: ...

  8. [NOIP2000]进制转换

    链接:登录-专业IT笔试面试备考平台_牛客网 来源:牛客网 我们可以用这样的方式来表示一个十进制数: 将每个阿拉伯数字乘以一个以该数字所处位置的值减1为指数,以10为底数的幂之和的形式.例如:123可 ...

  9. Java 基础 —— 进制转换

    文章目录 Java 基础 -- 进制转换 简介 转换说明 10进制转换Demo 算法转换 R进制转进制 扩展:统计输入整数二进制有多少个"1" 需求 扩展:进制转换(输入一个十六进 ...

最新文章

  1. js循环动态绑定带参数函数遇到的问题及解决方案[转]
  2. 身份证校验程序(上)- 零基础入门学习Delphi48
  3. php和python性能-python、node、php、go、java性能对比测试
  4. PCB相关的基础知识
  5. Android在Service中显示Dialog
  6. 数据结构学习一:概述
  7. Git——创建版本库【git init】
  8. Linux 运维必备的13款实用工具,拿好了~
  9. jxls遍历list时使用模板的批注语法
  10. ad18常用快捷键可以修改吗_AD18快捷键
  11. 用大数据文本挖掘来看“共享单车”的行业现状及走势
  12. 通过excel生成不同dimens文件来实现安卓屏幕适配
  13. WINDOWS系统“资源管理器”进程选项关闭之后的解决方法
  14. 华为笔记本在linux下越狱苹果设备(2022.2.27更新)
  15. 国内优秀的IC设计公司主要分布在哪些城市?
  16. 无人驾驶(三)---teleop_twist_keyboard控制底盘运动
  17. 浅谈语音测试方案(一)
  18. java根据指定的日期获取前七天
  19. 传统安防实体店如何成功转型
  20. VBScript的好处

热门文章

  1. java计算机毕业设计美容中心在线后台管理系统源码+系统+mysql数据库+lw文档
  2. 行人重识别0-00:DG-Net(ReID)-目录-史上最新无死角讲解
  3. 用正交法设计测试用例
  4. C#上位机开发常遇问题
  5. Autosar模块介绍:AutosarOS_2(操作系统基本概念)
  6. 按键的长按与短按让蜂鸣器响一下
  7. pytorch训练GAN时的detach()
  8. 接口测试 总结(什么是接口测试)
  9. Arduino 重启
  10. FPR.TPR-敏感度 特异性