POJ 2115 C Looooops 【扩展欧几里得】

【代码超详解】POJ 2115 C Looooops(扩展欧几里得算法,0 ms) 一、题目描述 二、算法分析说明与代码编写指导 设要经过 x 次循环才可以跳出循环体,则有 a + cx ≡ b (% 2^k) 设 m = 2^k,则上式可转化为:cx - 2^k · y = b - a。 套用扩展欧几里得算法并将 x 调整为最小正整数解即为答案。如果 gcd(c, -2^k) 不能整除 (b - a) 则无解。 三、AC 代码(0 ms) 尝试提交时发现,无论是 cmath... 阅读详情

题目链接:http://poj.org/problem?id=2115

需要注意的有几点:

第一: exgcd (a, b, x, y) ; 起初以为 y 的最小正整数解是  y = (y % a + a) % a;但事实上最小正整数解是  int tmp = a / gcd (a, b);

y = (y % tmp + tmp) % tmp;

第二: 如果题目要求的是x,表达式最好这样设   ax - by = c ; 如果要求的是 y ,表达式最好这样设  by - ax = c;这样可以避免一些正负号的麻烦;

#include <iostream>
#include <cstdio>
#include <cmath>

using namespace std;

typedef long long ll;

void exgcd (ll a, ll b, ll &x, ll &y) {
	if (!b) {
		x = 1; y = 0; return;
	} else {
		exgcd (b, a % b, y, x); y -= x*(a/b);
	}
} 

ll gcd (ll a, ll b) {
	return !b ? a : gcd (b, a % b);
}

// (A + a*C) % 2^k == B
// A + a*C - B = b*2^k
//  y*C - x*2^k = (B-A)

int main (void)
{
	ll A, B, C, k;
	while (scanf ("%lld%lld%lld%lld", &A, &B, &C, &k) != EOF) {
		if (!A && !B && !C && !k) break;
		ll c = B-A, g = gcd (1ll<<k, C);
		if (c % g) printf ("FOREVER\n");
		else {
			ll x, y;
			exgcd (1ll<<k, C, x, y);
			y *= (c/g);
			y = (y%((1ll<<k)/g) + (1ll<<k)/g) % ((1ll<<k)/g);
			printf ("%lld\n", y);
		}
	}
	return 0;
 } 

 

顶会新宠!Gate+Attention创新思路发A会 性能提升:在Places2自然场景和CelebA-HQ人脸数据集上,与以往方法相比,该系统在自由形式掩码修复任务中取得了更高的质量和更低的误差(例如,平均ℓ1误差和ℓ2误差显著降低)。硬件效率提升:Griffin和Hawk在TPU-v3上的训练效率与Transformer相当,且在推理时具有更低的延迟和显著更高的吞吐量。门控卷积:提出了一种新的门控卷积机制,通过学习每个通道在每个空间位置的动态特征选择机制,解决了传统卷积将所有输入像素视为有效像素的问题。 阅读详情

相关推荐

生物信息学投稿避坑指南:如何根据影响因子和审稿速度选择最适合的期刊

本文为生物信息学研究者提供全面的期刊投稿策略,重点解析影响因子、审稿速度等关键指标,帮助选择最适合的期刊。涵盖算法开发类和应用型研究的投稿路径,分析不同出版社特点及开放获取的利弊,并提供投稿全流程优化建议,助力高效发表研究成果。

weixin_42652674的博客 378

poj 2115 C Looooops 【扩展欧几里得】

C Looooops Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 20702   Accepted: 5596 Description A Compiler Mystery: We are given a C-language style for loop

世界很大 1633

Mongodb操作与Java(四)MongoTemplate的使用

MongoTemplate的使用

A乐神的博客 3437

【POJ】2115 - C Looooops(扩展欧几里得)

点击打开题目 C Looooops Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 23259   Accepted: 6391 Description A Compiler Mystery: We are given a C-language s

wyg1997 823

YOLOv8的二次创新 | 结合iRMB与EMA打造全新的iEMA机制,提升动态检测性能【附保姆级代码】

YOLOv8继承了YOLO系列的轻量化和高效检测特性,同时通过改进的架构设计使得其在实时场景下具有更高的检测精度。然而,随着检测需求的增加,尤其是在动态目标检测和长时间序列检测中,YOLOv8的鲁棒性依然可以提升。通过iEMA机制的引入,我们将在这些方面进行进一步优化。iRMB模块是我们对传统Residual Block的进一步改进。通过多层特征提取,iRMB能够捕捉更多层次的特征信息,并通过引入轻量化的残差结构,提升计算效率。

一键难忘的博客 3085

NL2SQL实践系列(1):深入解析Prompt工程在text2sql中的应用技巧

NL2SQL实践系列(1):深入解析Prompt工程在text2sql中的应用技巧

丨汀、的博客 4327

poj 2115 C Looooops (扩展欧几里得)

http://poj.org/problem?id=2115 for (variable = A; variable != B; variable += C) statement; 题意:在k位的系统内执行这个for循环,问这个循环多少次结束,k为的系统能表示的最大的数为2^k,超出2^k就从0开始 思路:由题意可得出公式(A + C*x) % 2^k = B,由同余模公式得(

大太阳 698

OpenClaw实战:拒绝复制粘贴,用 xlsx 技能打通“带公式模板”的月报自动化

本文详解了如何利用 OpenClaw 框架搭载的 xlsx skill,解决 AI 自动化处理“带复杂公式与格式”Excel 月报时极易翻车的业务痛点。针对传统大模型粗暴写入导致模板报废的问题,OpenClaw 创新采用“双核微创”工作流:首先利用 pandas 高效清洗并聚合海量原始明细数据,随后切换至 openpyxl 将计算结果精准注入目标模板,完美保留原有的底色、边框与跨表动态公式。

我有一个梦想 151

C Looooops poj 2115 扩展欧几里得

C LooooopsTime Limit:1000MS    Memory Limit:65536KB    64bit IO Format:%I64d & %I64u SubmitStatus Description A Compiler Mystery: We are given a C-language style for loop of type for (

colorfulshark 873

极验点选click3.1.0所对应fullpage.js的逆向分析

极验3代点选验证,本文适用于使用click.3.1.0.js和fullpage919-eyz9lh.js版本的web验证码,没有细节内容,适合有基础的开发者阅读。

shanf7921的博客 648

PCL 加权局部最优投影(WLOP)简化算法

WLOP算法是一种点云重采样方法,通过迭代优化实现点云均匀化和特征保留。算法包含数据项(加权平均位置保持几何特征)和正则化项(排斥邻近点实现均匀分布)两部分。代码实现基于PCL库,通过KD树加速邻域搜索,使用高斯权重函数计算点位置更新。参数包括输出点比例、邻域半径、正则化权重和迭代次数。该算法不依赖网格信息,适合处理大规模扫描数据的预处理优化。

点云侠的博客 631

POJ 2115 C Looooops [扩展欧几里得]【数论】[水]

题目链接:http://poj.org/problem?id=2115 ———————————-. C Looooops Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 24028 Accepted: 6658 DescriptionA Compiler Mystery: We are given

Tabris的博客 577

【DRAM存储器三十五】LPDDR4介绍--主要技术特性之VREF training,为什么要做VREF training?

详述DDR4、LPDDR4需要做vref training的原因和训练过程

highman110的博客 2916

poj2115 C Looooops——扩展欧几里得

题目:http://poj.org/problem?id=2115 就是扩展欧几里得呗; 然而忘记除公约数... 代码如下: #include<iostream> #include<cstdio> #include<cstring> using namespace std; typedef long long ll; ll A,B...

aodan5477的博客 154

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

[poj 2115] C Looooops 扩展欧几里得

C Looooops Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 21706 Accepted: 5927Description A Compiler Mystery: We are given a C-language style for loop of typefor (variable =

ATOD 890

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

POJ - 2115 C Looooops 【扩展欧几里得】

Description A Compiler Mystery: We are given a C-language style for loop of type for (variable = A; variable != B; variable += C) statement; I.e., a loop which starts by setting variable to va...

一定要站在自己热爱的生活里闪闪发光 3万+

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

POJ2115-C Looooops【扩展欧几里得】

A Compiler Mystery: We are given a C-language style for loop of type  for (variable = A; variable != B; variable += C) statement; I.e., a loop which starts by setting variable to value A and wh...

独钓门前月 427

poj2115 C Looooops(扩展欧几里得)

C Looooops Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 23143   Accepted: 6357 Description A Compiler Mystery: We are given a C-language style for loop(

樱花满地集于我心,楪舞纷飞祈愿相随 512

poj2115C Looooops【扩展欧几里得】

Language: Default C Looooops Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 21152   Accepted: 5740 Description A Compiler Mystery: We are given a C-lang

走一步再走一步 497

POJ 2115 C Looooops(扩展欧几里得应用)

题目地址:POJ 2115 水题。。公式很好推。最直接的公式就是a+n*c==b+m*2^k.然后可以变形为模线性方程的样子,就是 n*c+m*2^k==b-a.即求n*c==(b-a)mod(2^k)的最小解。(真搞不懂为什么训练的时候好多人把青蛙的约会都给做出来了,这题却一直做不出来。。。。。这两道不都是推公式然后变形吗。。。。。) 代码如下: #include #include

scf0920 1189

POJ2115 C Looooops(扩展欧几里得)

C Looooops

ZYL的博客 318

POJ2115 C Looooops(扩展欧几里得算法)

C Looooops Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 25936   Accepted: 7346 Description A Compiler Mystery: We are given a C-language style for loop of

Smile 373

POJ 2115 C Looooops (扩展欧几里得)

题意:找一个最小的x,使得 (A+C∗x)%2k = B 题解:扩展欧几里得 原式可以化为 (C∗x)%2k=B−A,即C*x+2k *y = B-A。(x、y未知) 另gcd(C, 2k) = d,可以得C*x*d/(B-A) + 2^k*y*d/(B-A) = d,用扩展欧几里得解即可。 orz,服了,re半天,结果是mod没有开long long… #define _CRT_SECURE_NO_WARNINGS #include<iostream> #include<cstdio&g

gongyuandaye的博客 204

poj 2115 C Looooops 扩展欧几里得算法

题意: 对于C的for(i=A ; i!=B ;i +=C)循环语句,问循环几次才会结束,其中所有的数(mod2^k)。 若在有限次内结束,则输出循环次数。否则输出死循环。 分析: 模线性方程的题目:题目可转化为Cx=(B-A)mod(2^k)求x的最小解? 然后就是用扩展欧几里得算法求解了。 详细的解题报告参考:http://blog.youkuaiyun.com/...

160

poj 2115 C Looooops (扩展欧几里得)

扩展欧几里得

巴达鸟巴达鸟 572

C Looooops POJ - 2115(扩展欧几里得)

题目地址:http://poj.org/problem?id=2115 题意:for (variable = A; variable != B; variable += C) variable= variable%2k. 问循环是否能够终止,以及循环的次数。 思路:扩展欧几里得的基础题。 假设循环x次,则a+cx=b(mod 2^k) cx=(b-a)(mod 2^k) cx+2ky=(b-a)...

呼吸 139
上一篇: 数位dp模板
下一篇: POJ 2686 Traveling by Stagecoach 【状压dp】
Y390d
博客等级 码龄9年 11粉丝 165原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值