poj2773 Happy 2006

POJ2773_采药_背包_动态规划 经典的0-1背包问题. 适合新手学习. 原题网址:http://poj.grids.cn/problem?id=2773 立即下载

Happy 2006
Time Limit: 3000MS Memory Limit: 65536K
Total Submissions: 9987 Accepted: 3434

Description

Two positive integers are said to be relatively prime to each other if the Great Common Divisor (GCD) is 1. For instance, 1, 3, 5, 7, 9...are all relatively prime to 2006. 

Now your job is easy: for the given integer m, find the K-th element which is relatively prime to m when these elements are sorted in ascending order. 

Input

The input contains multiple test cases. For each test case, it contains two integers m (1 <= m <= 1000000), K (1 <= K <= 100000000).

Output

Output the K-th element in a single line.

Sample Input

2006 1
2006 2
2006 3

Sample Output

1
3
5

解题思路:二分枚举1-2^64之间的数x,找到1-x与m互质的个数s,这里利用容斥原理,如果s与k相等,那么该x即为结果;

参考代码:

#include <iostream>
#include <vector>
#include <math.h>
using namespace std;
typedef long long ll;
const int MAX = 1000010;
int p[MAX],count;
void fun(ll n){
	ll i;
	count=0;
	for (i=2;i*i<=n;i++){
		if (n%i==0){
			p[count++]=i;
			while (n%i==0)
				n/=i;
		}
	}
	if (n>1)
		p[count++]=n;
}
ll solve(ll n,ll r){
	ll sum=0;
	for (int i=1;i<(1<<count);i++){
		ll mult=1,bits=0;
		for (int j=0;j<count;j++){
			if (i&(1<<j)){
				bits++;
				mult*=p[j];
			}
		}
		ll cur=r/mult;
		if (bits%2==1)
			sum+=cur;
		else
			sum-=cur;
	}
	return r - sum;
}
int main(){
	ll n,m,mid,num;
	while (cin>>n>>m){
		fun(n);
		ll r=0xffffffff,l=1;
		while (r-l>0){
			mid=(r+l)/2;
			num=solve(n,mid);
			if (num>=m)
				r=mid;
			else
				l=mid+1;
		}
		cout<<l<<endl;
	}
	return 0;
}



RL调参侠之BipedalWalker BipedalWalkerHardcore SAC 前几天用PPO训练了个很一般的agent: RL调参侠之BipedalWalker PPO 我看SpinningUp上面说PPO和SAC是两个领域里各自的State_of_the_art的方法,所以就打算跑SAC试试看,之前因为Open AI Five的原因,一直感觉PPO很牛掰,实际上现在很多自动驾驶的算法也是用PPO在跑,毕竟有一个“必定能够提升期望”的理论保证在这里,我理解这对做项目很大的诱惑。 不过我跑出来的结果明显是SAC更好。 调参侠时间 策略熵的权重alpha用的0.2,我一开始没有看SAC的 阅读详情

相关推荐

从硬件异常到代码救赎:RH850内存访问错误(MAE)的深层诊断与艺术

本文深入探讨瑞萨RH850微控制器的内存访问错误(MAE)诊断与解决方法。针对程序跑飞和Flash Driver交互中的潜在陷阱,提供系统性硬件异常分析框架和防御性编程实践,帮助嵌入式开发者从底层机制到代码层面有效预防和修复MAE问题,提升系统稳定性。

pytorch8learner的博客 195

poj2773 —— 二分 + 容斥原理 + 唯一分解定理

题目链接:http://poj.org/problem?id=2773 Happy 2006 Time Limit:3000MS Memory Limit:65536K Total Submissions:12942 Accepted:4557 Description ...

alince20008的博客 256

M1安装homebrew报错LibreSSL SSL_read: SSL_ERROR_SYSCALL, errno 54解决方法

在mac系统中,使用homebrew可以很方便的管理包。但按照官网的说明执行命令时总是报错原因是这个资源访问有问题,那么我们可以直接使用国内的镜像。给大家推荐一个中国科学技术大学的镜像站点,里面有各种资源https言归正传,开始踩坑。......

qq_42427085的博客 1455

poj2773(欧基里德算法 或 二分+容斥)

题目链接:https://vjudge.net/problem/POJ-2773 题意:给定m,k,求与m互质的第k个数。 思路一:利用gcd(a,b)=gcd(b*t+a,b)知道,与m互质的数是以m为周期分布的,这样可以先枚举小于m的所有与m互质的数,利用周期就可以得到第k小的数了,这样复杂度为O(T*m),比较大,但也能过,2439ms,代码实现相对简单。 AC代码: #incl...

weixin_34185512的博客 213

学术报告系列(二) - 智能自主作业机器人感知与控制技术及发展趋势

收集整理于2022年模式识别高峰论坛湖南大学王耀南院士报告(报名题目:智能自主作业机器人感知与控制技术及发展趋势)

Make something people want. 4696

使用LogisticRegression和LightGBM模型对信贷违约进行预测----基于kaggle比赛数据

3.分离数值型变量与类别型变量,发现有些数值型变量因为输入不规范,比如数值中含有字符(28_,_10000_等)被划分为类别型变量 ,比如 'Age','Annual_Income','Num_of_Loan', 'Num_of_Delayed_Payment', 'Changed_Credit_Limit','Credit_Mix','Monthly_Balance', 'Outstanding_Debt' ,'Amount_invested_monthly'等。三、分箱,woe编码,计算IV值。

I_am_a_big_tiger的博客 1682

POJ 2773 容斥原理

链接: http://poj.org/problem?id=2773 题意: 给出两个数m,k,要求求出从1开始与m互质的第k个数。 题解: 二分一个答案mid,容斥统计出在区间[1,mid]中是m的质因子的倍数的数的个数ans,然后我们可以用mid-ans得到区间中有多少个与m互质的数,不断二分下去,直到得出答案。  代码: 31 ll n, k; 32 ll fa...

花海 197

不藏了!Wireshark 命令、捕获、过滤器大全分享给你

Wireshark,这款广受欢迎的开源网络协议分析工具,堪称网络管理员、网络安全专家和网络爱好者的“显微镜”!它可以帮助我们捕获网络中的数据包,并提供详细的解码和分析能力。本文将为您全面剖析 Wireshark 的强大功能,从基础到高级,让你快速掌握这个神器!💡Wireshark 是一款功能强大的网络协议分析器,最早由 Gerald Combs 于 1998 年开发,经过多年发展,已成为网络诊断和分析的首选工具。

网络技术联盟站 725

POJ_2773_Happy 2006_ 欧几里得算法

Happy 2006 Time Limit: 3000MS Memory Limit: 65536K Total Submissions: 10818 Accepted: 3760 Description Two positive integers are said to be relatively prime to each o

持之以恒_fighting 2076

如何使用VNC对openEuler系统进行远程图形化操作

本文详细介绍了在openEuler系统中配置VNC远程图形化操作的方法。主要内容包括:1)服务端配置:安装GNOME图形界面和TigerVNC服务,创建VNC用户并设置密码,配置VNC服务启动脚本;2)客户端连接:使用VNC Viewer等工具连接服务器;3)常见问题解决方法。通过5901端口建立连接后,用户可远程操作openEuler图形界面,适用于需要图形化管理的场景。

2501_93651177的博客 313

079、LVGL基础控件:消息框(Msgbox)

《LVGL消息框控件深度解析与避坑指南》 文章深入剖析了LVGL消息框控件的核心特性和使用技巧。消息框本质是带按钮的模态容器,而非独立窗口。作者分享了创建消息框的正确姿势、标题/内容设置方法、安全的按钮事件处理方式(避免直接调用close函数导致栈溢出),并详细介绍了模态/非模态实现、样式自定义、动态更新等实用技巧。针对常见问题如内存管理、按钮数量限制、动画效果等给出了专业建议,特别强调了消息框作为用户交互关键环节的优化重要性,建议通过异步删除、合理父对象选择等方式提升稳定性。文章包含大量实际项目经验总结,

m0_50546716的博客 152

poj 2773 Happy 2006

  简单的欧几里得函数应用。   f(x,y) = f(y,x%y);   f(x,y) = f(y*t+x,y) t为非负整数;   其时这道题还有好多优化,Discuss里面好多大神都弄到了0ms。。。Orz   我只水过去了。。。。   G++ 2400++,用C++ TLE....   特别的注意 1 的情况 RE了好多次    1 #inclu...

180

Vue+Echarts监控大屏实例四:智慧农业监控模板实例

本实例通过Vue-Echarts实现了智慧农业监控模板实例界面,学习并使用了vue-echarts的使用,接入高德地图并展示,添加了全屏切换、加载动画小鼓、站点切换及退出等相关功能,提供源码下载。

Java、前端、小程序学习笔记、问题汇总、项目实例分享,有需要请联系。 7667

嵌入式偶发bug排查实战:串口、蓝牙与烧录三大取证技巧

在嵌入式系统开发与硬件联调中,偶发性故障常因证据链断裂而难以定位。工程师面对串口乱码、蓝牙断连或烧录失败时,若直接修改软件逻辑,往往掩盖了物理层、链路层或工具链的真实缺陷。借助换机排除法控制变量,可快速区分串口假故障与协议问题;通过录屏取证与系统日志同步,能捕捉蓝牙断开瞬间的隐性状态;运用新旧批次对照实验,则能将烧录失败从“偶然”转为“必然”。这些方法强调先固定事实、再动手修改,将调试从经验猜测转化为工程化排查流程,适用于嵌入式开发、物联网设备调试及产线异常分析等场景。围绕串口、蓝牙、烧录三大高频问题,结合

weixin_34342207的博客 403

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

[二分+容斥原理] poj 2773 Happy 2006

题目链接: http://poj.org/problem?id=2773 Happy 2006 Time Limit: 3000MS   Memory Limit: 65536K Total Submissions: 9131   Accepted: 3073 Description Two positiv

cc_again的专栏 1123

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

POJ 2773 Happy 2006 容斥定理+二分

题意:现在给你一个m,那么从1开始与m互素的数字呈递增排列,求出第k个数字是多少? 思路:容斥+二分。二分答案找到什么时候是第k个数字即可,在一个区间【1,x】中与m互素的数字有多少个,这个不能用欧拉函数求(欧拉函数只能求【1,x】中与x互素的数字有多少个),用容斥定理就可以求出。先将m分解为素数,然后将这些素数组合的所有情况都表示出来,素数个数是奇数,就加上x/tmp,偶数就减去x/tmp;tmp为其中一些素数的最小公倍数(及乘积)。 简称奇加偶减。因为这些素数的所有组合都是确定不变的,所以直接先打个

Accepted 439

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

Happy 2006 POJ - 2773(欧几里得算法 互素问题)

Happy 2006 POJ - 2773 题目链接:https://vjudge.net/problem/POJ-2773#author=0 题目: 如果大公约数(GCD)为1,则两个正整数被认为是相对素数。例如,1,3,5,7,9 ......都是相对于2006年的素数。现在你的工作很简单:对于给定的整数m,当这些元素按升序排序时,找到相对于m的相对素数的第K个元素。输入输入包含多个测试用例...

_Vampire的博客 68

POJ2773 Happy 2006

欧拉函数+gcd/二分+容斥

a free man 637

【poj2773】 Happy 2006

http://poj.org/problem?id=2773 (题目链接)题意:给出两个数m,k,要求求出从1开始与m互质的第k个数。Solution   数据范围很大,直接模拟显然是不行的,我们需要用到一些奇奇怪怪的方法。   考虑是否可以通过某些途径快速得到解,然而并没有头绪。正难则反,能不能通过计算不与m互质的数的个数来得到互质的数的个数呢?答案是可行的,我们可以运用容斥。   二分一个

MashiroSky的博客 1097

POJ 2773 Happy 2006 题解与分析

Happy 2006 Time Limit: 3000MS Memory Limit: 65536K Total Submissions: 8447 Accepted: 2777 Description 两个正整数如果称为互质,那么应满足这两数的最大公约数(GCD)为1。例如,1,3,5,7,9……都与2006互质。 你现在的工作很

初学者 1108

POJ 2773 Happy 2006 模的性质

POJ 2773 对于给出的整数m,找到按升序排列的第kkk个和m互素的整数。 与mmm互素的数对mmm取模具有周期性:如果小于mmm且与mmm互素的数有nnn个,其中第iii个是aia_iai​,则第⌊kn⌋×n+i\lfloor \dfrac{k}{n}\rfloor \times n +i⌊nk​⌋×n+i个与mmm互素的数是⌊kn⌋×m+ai\lfloor \dfrac{k}{n}\rfl...

侯山窝矿工 196

POJ 2773:Happy 2006

Happy 2006 Time Limit: 3000MS   Memory Limit: 65536K Total Submissions: 10521   Accepted: 3666 Description Two positive integers are said to be relatively prime to each

415

Poj-2773 Happy 2006

[思路]: gcd(b*t+a,b)= gcd(a,b)(t为任意整数) 如果a与b互素,则b*t+a与b也一定互素,如果a与b不互素,则b*t+a与b也一定不互素。故与m互素的数对m取模具有周期性,则根据这个方法我们就可以很快的求出第k个与m互素的数。假设小于m的数且与m互素的数有k个,其中第i个是ai,则第m*k+i与m互素的数是k*m+ai。 #include&lt;iostream&gt;...

ó 309

POJ 2773 Happy 2006

优化优化再优化!

scorpiocj的专栏 1425
上一篇: poj3663 Costume Party
下一篇: poj3904 Sky Code
JinbaoSite0144
博客等级 码龄12年 231粉丝 157原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值