【洛谷p1066】2^k进制数
(不会敲键盘惹qwq)
算法标签:
(又是一个提高+省选-的题)
如果我说我没听懂你信吗
代码qwq:
- #include<iostream>
- #include<cstring>
- #include<cstdio>
- using namespace std;
- int a[][][],tot[],mmax;
- int pow(int a,int b)
- {
- int ans=,with=a;
- while(b)
- {
- if(b&) ans*=with;
- with*=with;
- b>>=;
- }
- return ans;
- }
- void jiafa(int j[],int a[])
- {
- int lb=;
- while(lb<=j[]||lb<=a[])
- {
- j[lb]+=a[lb];
- if(j[lb]>=)
- {
- j[lb]%=;
- j[lb+]++;
- }
- lb++;
- }
- while(j[lb]>=)
- {
- j[lb]%=;
- lb++;
- j[lb]++;
- }
- while(!j[lb]&&lb>) lb--;
- if(lb>j[]) j[]=lb;
- }
- void jiafa1(int a[],int b)
- {
- int lb=;
- while(b)
- {
- a[++lb]=b%;
- b/=;
- }
- a[]=lb;
- jiafa(tot,a);
- }
- int main()
- {
- int k,w;
- cin>>k>>w;
- int g=w/k;
- bool youyu=;
- int mmax2;
- if(w%k)
- {
- g++;
- youyu=;
- mmax2=pow(,w%k)-;
- }
- mmax=pow(,k)-;
- for(int i=;i<mmax;i++) jiafa1(a[][i],mmax-i);
- int l=,n=;
- for(int i=;i<=g;i++)
- {
- if(i==g&&youyu&&mmax2<mmax)
- {
- for(int i=mmax-;i>mmax2;i--)
- jiafa(a[n][mmax2],a[l][i]);
- jiafa(tot,a[n][mmax2]);
- for(int j=mmax2-;j>=;j--)
- {
- memcpy(a[n][j],a[n][j+],sizeof(a[n][j+]));
- jiafa(a[n][j],a[l][j+]);
- jiafa(tot,a[n][j]);
- }
- break;
- }
- jiafa(a[n][mmax-],a[l][mmax]);
- jiafa(tot,a[n][mmax-]);
- for(int j=mmax-;j>=;j--)
- {
- memcpy(a[n][j],a[n][j+],sizeof(a[n][j+]));
- jiafa(a[n][j],a[l][j+]);
- jiafa(tot,a[n][j]);
- }
- for(int j=;j<=mmax;j++)
- memset(a[l][j],,sizeof(a[l][j]));
- n++;l++;
- if(n==) n=;
- if(l==) l=;
- }
- int lt=tot[];
- while(!tot[lt]&<>) lt--;
- for(;lt>;lt--) cout<<tot[lt];
- return ;
- }//装作是自己写的样子
end-
【洛谷p1066】2^k进制数的更多相关文章
- 洛谷 P1066 2^k进制数
P1066 2^k进制数 题目描述 设r是个2^k 进制数,并满足以下条件: (1)r至少是个2位的2^k 进制数. (2)作为2^k 进制数,除最后一位外,r的每一位严格小于它右边相邻的那一位. ( ...
- 洛谷P1066 2^k进制数
P1066 2^k进制数 题目描述 设r是个2^k 进制数,并满足以下条件: (1)r至少是个2位的2^k 进制数. (2)作为2^k 进制数,除最后一位外,r的每一位严格小于它右边相邻的那一位. ( ...
- 洛谷P1066 2^k进制数(题解)(递推版)
https://www.luogu.org/problemnew/show/P1066(题目传送) (题解)https://www.luogu.org/problemnew/solution/P106 ...
- [NOIP2006] 提高组 洛谷P1066 2^k进制数
题目描述 设r是个2^k 进制数,并满足以下条件: (1)r至少是个2位的2^k 进制数. (2)作为2^k 进制数,除最后一位外,r的每一位严格小于它右边相邻的那一位. (3)将r转换为2进制数q后 ...
- 洛谷1066 2^k进制数
原题链接 大力猜结论竟然猜对了.. 对于一对\(k,w\),我们可以把\(w\)位划分成\(k\)位一段的形式,每一段就是转换成十进制后的一位,这个从题面的解释中应该可以理解. 先不考虑可能多出(即剩 ...
- [luogu]P1066 2^k进制数[数学][递推][高精度]
[luogu]P1066 2^k进制数 题目描述 设r是个2^k 进制数,并满足以下条件: (1)r至少是个2位的2^k 进制数. (2)作为2^k 进制数,除最后一位外,r的每一位严格小于它右边相邻 ...
- P1066 2^k进制数
传送门 题目描述 设r是个2^k 进制数,并满足以下条件: (1)r至少是个2位的2^k 进制数. (2)作为2^k 进制数,除最后一位外,r的每一位严格小于它右边相邻的那一位. (3)将r转换为2进 ...
- [Luogu P1066] 2^k进制数 (组合数或DP)
题面 传送门:https://www.luogu.org/problemnew/show/P1066 Solution 这是一道神奇的题目,我们有两种方法来处理这个问题,一种是DP,一种是组合数. 这 ...
- 洛谷P1582——倒水(进制,数学)
https://www.luogu.org/problem/show?pid=1582 题目描述 一天,CC买了N个容量可以认为是无限大的瓶子,开始时每个瓶子里有1升水.接着~~CC发现瓶子实在太多了 ...
- Luogu P1066 2^k进制数 组合数学
分两种情况:$k|n$和$k$不整除$n$ 如果$k|n$,那么长度为$n$的二进制数就能被恰好分成$n/k$个块:所以若某个数长度是$x$个块,由于每个块内能填不同的$2^k-1$个数,那么就有$C ...
随机推荐
- 16.0-uC/OS-III同步
同步 uC/OS-III中用于同步的两种机制:信号量和事件标志组 . 1.信号量 信号量最初用于控制共享资源的访问.信号量可用于ISR与任务间.任务与任务间的同步. “ N”表示信号量可以被累计.初始 ...
- 【Java】NO.80.Note.1.Java.1.001-【Java 各种特性概念】
1.0.0 Summary Tittle:[Java]NO.80.Note.1.Java.1.001-[Java 各种特性概念] Style:Java Series:Java Since:2018-0 ...
- 这10个Python项目超有趣!
前言: Python可谓是现在很多人正在学或者想学的一个脚本语言了,提到学习自然就少不了拿项目练手,可是一般的项目根本提不起兴趣嘛,这10个项目可是非常有趣的,不信你看看. [Python 图片转字符 ...
- pat 1051Pop Sequence
模拟栈的过程,一开始我是用的cin来判断每行的每一个数字,然后判断回车结束.有一个点会超时,答案用数组先记录序列的方法非常好.有一个注意点就是访问s.top()的时候先要保证s.size()>0 ...
- 家庭记账本之微信小程序(四)
json的学习 JSON:JavaScript 对象表示法(JavaScript Object Notation). JSON 是存储和交换文本信息的语法.类似 XML. JSON 比 XML 更小. ...
- 将指定世界中的指定位置的Block转化为箱子
在bukkit中,block可以操作所有的三位像素方块,如果是向对block进一步操作,我们就需要得到BlockState, BlockState表示一个方块的状态,才能够对方块进行位置等状态的操作, ...
- COM中参数标识
- meterpreter 渗透用法
获取凭证 hashdump模块(post)可以从SAM数据库中导出本地用户账号,credential_collector脚本(post/windows/gather/credentials)也可以从目 ...
- Vue系列之 => Watch监视路由地址改变
第一种方式实现监听 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> < ...
- xml 和 json 序列化忽略字段
xml 和 json 序列化忽略字段: @JsonIgnore @XmlTransient