登录
/
注册
首页
论坛
其它
首页
科技
业界
安全
程序
广播
Follow
关于
博客
发1篇日志+1圆
记录
发1条记录+2圆币
发帖说明
登录
/
注册
账号
自动登录
找回密码
密码
登录
立即注册
搜索
搜索
关闭
CSDN热搜
程序园
精品问答
技术交流
资源下载
本版
帖子
用户
软件
问答
教程
代码
VIP网盘
VIP申请
网盘
联系我们
道具
勋章
任务
设置
我的收藏
退出
腾讯QQ
微信登录
返回列表
首页
›
业界区
›
安全
›
洛谷题解:P12364 [蓝桥杯 2022 省 Python B] 寻找整数 ...
洛谷题解:P12364 [蓝桥杯 2022 省 Python B] 寻找整数
[ 复制链接 ]
哈梨尔
2025-5-31 23:37:47
注:可以在两分钟内跑出。
看到这题,暴力枚举跑不出来。如果你有没有充分的数学知识,那又怎么办呢?
减少枚举量
首先,注意到许多余数都是 \(11\),有图为证:
设这个数为 \(n\),则有:
\[n \bmod 14 = n \bmod 18 =n \bmod 21 = n \bmod 22 = n \bmod 33 = n \bmod 42 = n \bmod 43 = 11\]
直接把以上除数的最小公倍数求出,为 \(59598\)。
枚举时,我们设 \(n\) 为 \(i \times 59598+11\),\(i\) 为循环变量。
它是满足所有以上 \(n \bmod 14 = n \bmod 18 =n \bmod 21 = n \bmod 22 = n \bmod 33 = n \bmod 42 = n \bmod 43 = 11\) 的。
现在 \(i\) 只需枚举到 \(10^{13}\) 即可,因为 \(n\) 不超过 \(10^{17}\)。
暴力枚举
因为这个数肯定存在,所以只要使用一些(不一定要全部)条件,只搜出一个解即为答案。
需要注意的点:
上界为 \(10^{13}\)。
条件多加。
耐心等待
。
code
[code]#includeusing namespace std;long long n;int main(){ for(long long i=0;i
回复
使用道具
举报
提升卡
置顶卡
沉默卡
喧嚣卡
变色卡
千斤顶
照妖镜
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
回复
本版积分规则
回帖并转播
回帖后跳转到最后一页
签约作者
程序园优秀签约作者
发帖
哈梨尔
2025-5-31 23:37:47
关注
0
粉丝关注
13
主题发布
板块介绍填写区域,请于后台编辑
财富榜{圆}
敖可
9986
凶契帽
9990
处匈跑
9990
4
黎瑞芝
9990
5
杭环
9988
6
猷咎
9988
7
鲫疹
9988
8
接快背
9988
9
里豳朝
9988
10
氛疵
9988
查看更多