C1. Good Numbers (easy version)
Good Numbers (hard version)
题意:给出一个x要求找到一个y>=x符合y是一个好数(可以分解为3的不同次数之和,例如 4=3的一次+3的0次)
easy version --暴力枚举

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
ll  bz[30];
int main()
{int tt;cin>>tt;bz[0]=1,bz[1]=3;for(int i=2;i<=9;i++){bz[i]=bz[i-1]*3;}//cout<<bz[8]<<" "<<bz[7]<<endl;vector<int>v; int f[20]={0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1};do{int s=0;for(int i=0;i<=9;i++){if(f[i]==1){s+=bz[i];}}v.push_back(s);}while(next_permutation(f,f+20));
//  cout<<bz[8];sort(v.begin(),v.end());while(tt--){int n;cin>>n;int pos=lower_bound(v.begin(),v.end(),n)-v.begin();cout<<v[pos]<<endl;}
}

hard --考虑转变为三进制

从高位到低位
1.如果存在某一位大小为2 也就不符合规定了,于是就上去找高位中为0 的位数 ,并把大小改为1, 累加从最高位到这一位就是答案了。。
2.如果不存在这个为2 的位数,就是说这个数本身就是一个好数
码风过于choulou

#include<bits/stdc++.h>
using namespace std;
typedef unsigned long long ll;
ll qpow(ll n,ll  a)
{ll ans=1ll;while(a){if(a&1) ans=ans*n;a>>=1;n=n*n;}return ans;
}
int main()
{int tt;cin>>tt;while(tt--){ll n;cin>>n;int p[40]={0};int tot=0;ll r=n;while(n){p[tot++]=n%3;n/=3;}int now=-1;for(int i=tot-1;i>=0;i--){if(p[i]>1){now=i;break;}}ll ans=0;if(now==-1){cout<<r<<endl;continue; } int ok=0;if(now!=-1){for(int i=now+1;;i++){if(p[i]==0){p[i]=1;ok=i;if(i==tot){ans=qpow(3,tot);}break;}}}if(!ans)for(int i=tot-1;i>=ok;i--){if(p[i]==1){ans+=qpow(3,i);}}cout<<ans<<endl;}
}

Good Numbers 暴力/进制相关推荐

  1. HDU1172 猜数字【暴力+进制】

    猜数字 Time Limit: 20000/10000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Subm ...

  2. UVALive 3958 Weird Numbers (负进制数)

    Weird Numbers 题目链接: http://acm.hust.edu.cn/vjudge/contest/129733#problem/F Description Binary number ...

  3. Special Numbers 进制(1100)

    题意 : 写出从小到大第k个满足以下性质的数 :对于给定的n,可以分为若干个不同的n的幂次的和 思路 : 根据题意,这些数是在n进制下,每一位只能取0或者1(出现1次和不出现)的数,考虑将这些数排列, ...

  4. SPOJ - BALNUM Balanced Numbers(数位dp+进制转换)

    题目链接:点击查看 题目大意:给出平衡数的定义:每一个偶数出现的次数必须是奇数次,每一个奇数出现的次数必须是偶数次,求给定区间中有多少个平衡数 题目分析:数位dp,这个题目就难在怎么确定状态转移,本来 ...

  5. Bailian2972 确定进制(POJ NOI0113-34,POJ NOI0201-1973)【暴力+进制】

    问题链接:POJ NOI0113-34 确定进制. 问题链接:POJ NOI0201-1973 确定进制. 确定进制 描述 6*9 = 42 对于十进制来说是错误的,但是对于13进制来说是正确的.即, ...

  6. hdu 4937 Lucky Number(数学题 进制转换)2014多校训练第7场

    Lucky Number                                                                          Time Limit: 20 ...

  7. 十六进制190的2进制数_十六进制数系统解释

    十六进制190的2进制数 Hexadecimal numbers, often shortened to "hex numbers" or "hex", are ...

  8. 快速沃尔什变换(FWT)及K进制异或卷积快速子集变换(FST)讲解

    前言: $FWT$是用来处理位运算(异或.与.或)卷积的一种变换.位运算卷积是什么?形如$f[i]=\sum\limits_{j\oplus k==i}^{ }g[j]*h[k]$的卷积形式(其中$\ ...

  9. 枚举 + 进制转换 --- hdu 4937 Lucky Number

    Lucky Number Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others) T ...

  10. 牛客 - Hash(思维+进制转换)

    题目链接:点击查看 题目大意:给出一个长度为 6 的字符串 s ,再给出模数 mod,现在规定哈希值为如下运算: const int LEN = 6; int mod; int Hash(char s ...

最新文章

  1. Yii中POS和GET并用范例
  2. 带有权重的服务器SLB的实现
  3. 农产品谋定创意种植-农业大健康·焦裕良:新概念新创意
  4. 《梦断代码》阅读笔记Ⅱ
  5. 基础-栈队列简单测试
  6. delphi的几个特别关键字 object absolute
  7. 回顾JAVA---1.概述及基本语法
  8. Centos7的iso everything与DVD以及Live的区别
  9. ARTS-26(leetcode-119. 杨辉三角 II,AVOD最详细过程,Git用法,DMA原理,海天味业的企业估值(1))
  10. swfupload 无法加载_SwfUpload在IE10上不出现上传按钮的解决方法
  11. java scanner close_Java Scanner close()方法
  12. Nginx配置Https 443 端口
  13. 游戏挂机运行脚本方法
  14. [IOS]swift如何换行
  15. Stack frame omission (FPO) optimization part1
  16. vuex两个问题:vuex__WEBPACK_IMPORTED_MODULE_1__.default.store is not a constructor,“$store“ is not defin
  17. STM32开发利器:STM32CubeMX
  18. html学习阶段总结2
  19. Escape Codec Library: ecl.js Shift_JISエンコードやEUC-JPエンコードなども可能な escape エンコード・デコード関数のライブラリ
  20. excel查找功能_如何使用VBA代码实现Excel的查找和替换功能?

热门文章

  1. 够哦了下攻击力开房间的发的goole
  2. 高中信息技术python练习题_Python基础练习题5
  3. 云备份-保障你的数据安全
  4. MQTT:Massage Queue Telemetry Transport消息队列遥测传输
  5. Unity学习笔记:观察者模式
  6. 基于.NET平台的分层架构实战(九)——数据访问层的第三种实现:基于NBear框架的ORM实现
  7. JavaScript - 动画介绍与学习
  8. 尺寸公差分析尺寸链计算软件:DTAS3D电机气隙案例
  9. 英文词性标注PTB标准
  10. SCI、EI、ISTP国际三大检索分别指的是什么?