首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
AI 模拟面试
简历
求职
学习
课程
专栏·文章
竞赛
搜索
我要招人
发布职位
发布职位、邀约牛人
更多企业解决方案
在线笔面试、雇主品牌宣传
登录
/
注册
LuoGu_BIOS
获赞
4
粉丝
0
关注
0
看过 TA
0
哈尔滨理工大学
2026
深度学习
IP属地:黑龙江
.
私信
关注
拉黑
举报
举报
确定要拉黑LuoGu_BIOS吗?
发布(2)
刷题
LuoGu_BIOS
2023-03-19 19:27
已编辑
哈尔滨理工大学 计算机类
题解 | #数字权限#
#include<iostream> int main() { int n; std::cin>>n; std::cout<<(1<<n)-1; } 这道题看可以从状态转换的角度考虑,用位运算思想去想象一个二进制数,对于某一位而言,1代表拥有这个权限,0代表不拥有这个权限。易知,所有的拥有情况都是不重复的,恰好满足题意。所以,我们只需要让每一个数的二进制表示都拥有唯一一个1就可以了。这样既可以满足拥有最大权限的时候权限值最小(因为都是不可去除的1,没有任何0,这代表这个二进制数的位数是最小的),又可以满足任何状态都不互斥...
0
点赞
评论
收藏
转发
LuoGu_BIOS
2023-03-18 23:05
已编辑
哈尔滨理工大学 计算机类
题解 | #数字#
E题解: 首先发现n范围不超过45,也就是987654321,最多9位 然后看题,输出拆分出来的最大的数并且数字不重复 所以,为了保证最大,我们首先要确定位数 我是怎么考虑位数的呢,从前缀和的角度考虑,已知,最大化利用数字的情况一定是越低位越小,那么越高位才能越大。 从后往前看,假设输入一个x,我一定想让它被拆分成....321的形式 那么我就直接前缀和,1+2+3+...+9,获得s1~s9 然后对输入的x判断,如果x正好等于某个s,直接输出就行,否则,纪录“x最后大于的si是哪个i”,这其实代表了我们理论上的最高位数 怎么证明? 假如输入x,大于s5小于s6,那么我们得到的基础数列是543...
0
点赞
评论
收藏
转发
1
工具箱
TA的圈子
暂未加入圈子
TA的圈子
TA的笔记
暂无笔记
TA的笔记
登录
0
天
已登录
0
天
连续登录
0
人
今日访客
牛客网
牛客企业服务