Good Numbers 暴力/进制
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 暴力/进制相关推荐
- HDU1172 猜数字【暴力+进制】
猜数字 Time Limit: 20000/10000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Subm ...
- UVALive 3958 Weird Numbers (负进制数)
Weird Numbers 题目链接: http://acm.hust.edu.cn/vjudge/contest/129733#problem/F Description Binary number ...
- Special Numbers 进制(1100)
题意 : 写出从小到大第k个满足以下性质的数 :对于给定的n,可以分为若干个不同的n的幂次的和 思路 : 根据题意,这些数是在n进制下,每一位只能取0或者1(出现1次和不出现)的数,考虑将这些数排列, ...
- SPOJ - BALNUM Balanced Numbers(数位dp+进制转换)
题目链接:点击查看 题目大意:给出平衡数的定义:每一个偶数出现的次数必须是奇数次,每一个奇数出现的次数必须是偶数次,求给定区间中有多少个平衡数 题目分析:数位dp,这个题目就难在怎么确定状态转移,本来 ...
- Bailian2972 确定进制(POJ NOI0113-34,POJ NOI0201-1973)【暴力+进制】
问题链接:POJ NOI0113-34 确定进制. 问题链接:POJ NOI0201-1973 确定进制. 确定进制 描述 6*9 = 42 对于十进制来说是错误的,但是对于13进制来说是正确的.即, ...
- hdu 4937 Lucky Number(数学题 进制转换)2014多校训练第7场
Lucky Number Time Limit: 20 ...
- 十六进制190的2进制数_十六进制数系统解释
十六进制190的2进制数 Hexadecimal numbers, often shortened to "hex numbers" or "hex", are ...
- 快速沃尔什变换(FWT)及K进制异或卷积快速子集变换(FST)讲解
前言: $FWT$是用来处理位运算(异或.与.或)卷积的一种变换.位运算卷积是什么?形如$f[i]=\sum\limits_{j\oplus k==i}^{ }g[j]*h[k]$的卷积形式(其中$\ ...
- 枚举 + 进制转换 --- hdu 4937 Lucky Number
Lucky Number Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others) T ...
- 牛客 - Hash(思维+进制转换)
题目链接:点击查看 题目大意:给出一个长度为 6 的字符串 s ,再给出模数 mod,现在规定哈希值为如下运算: const int LEN = 6; int mod; int Hash(char s ...
最新文章
- Yii中POS和GET并用范例
- 带有权重的服务器SLB的实现
- 农产品谋定创意种植-农业大健康·焦裕良:新概念新创意
- 《梦断代码》阅读笔记Ⅱ
- 基础-栈队列简单测试
- delphi的几个特别关键字 object absolute
- 回顾JAVA---1.概述及基本语法
- Centos7的iso everything与DVD以及Live的区别
- ARTS-26(leetcode-119. 杨辉三角 II,AVOD最详细过程,Git用法,DMA原理,海天味业的企业估值(1))
- swfupload 无法加载_SwfUpload在IE10上不出现上传按钮的解决方法
- java scanner close_Java Scanner close()方法
- Nginx配置Https 443 端口
- 游戏挂机运行脚本方法
- [IOS]swift如何换行
- Stack frame omission (FPO) optimization part1
- vuex两个问题:vuex__WEBPACK_IMPORTED_MODULE_1__.default.store is not a constructor,“$store“ is not defin
- STM32开发利器:STM32CubeMX
- html学习阶段总结2
- Escape Codec Library: ecl.js Shift_JISエンコードやEUC-JPエンコードなども可能な escape エンコード・デコード関数のライブラリ
- excel查找功能_如何使用VBA代码实现Excel的查找和替换功能?