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... 阅读详情
C Looooops
Time Limit: 1000MS Memory Limit: 65536K
Total Submissions: 14193 Accepted: 3547

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 value A and while variable is not equal to B, repeats statement followed by increasing the variable by C. We want to know how many times does the statement get executed for particular values of A, B and C, assuming that all arithmetics is calculated in a k-bit unsigned integer type (with values 0 <= x < 2 k) modulo 2 k. 

Input

The input consists of several instances. Each instance is described by a single line with four integers A, B, C, k separated by a single space. The integer k (1 <= k <= 32) is the number of bits of the control variable of the loop and A, B, C (0 <= A, B, C < 2 k) are the parameters of the loop. 

The input is finished by a line containing four zeros. 

Output

The output consists of several lines corresponding to the instances on the input. The i-th line contains either the number of executions of the statement in the i-th instance (a single integer number) or the word FOREVER if the loop does not terminate. 

Sample Input

3 3 2 16
3 7 2 16
7 3 2 16
3 4 2 16
0 0 0 0

Sample Output

0
2
32766
FOREVER

 

题目链接

 

知识点:同余方程 + 扩展欧几里得算法

 

#include<cstdio>

using namespace std;

long long num[33];

#define LL long long
#define lld	lld

LL ext_gcd(LL a,LL b,LL &x,LL &y)
{
	LL tmp,ret;
	if(!b)
	{
		x=1;	y=0;	return a;
	}
	ret=ext_gcd(b,a%b,x,y);

	tmp=x;	x=y;	y=tmp-a/b*y;
	return ret;
}

int main()
{
	LL A,B,C,k,tmp;
	LL i,j,x,y,g;

	num[1]=2;
	for(i=2;i<=32;i++)
		num[i]=num[i-1]*2;

	while(scanf("%lld%lld%lld%lld",&A,&B,&C,&k)==4 && A||B||C||k)
	{
		g=ext_gcd(C,num[k],x,y);
		if((A-B)%g==0)
		{
			tmp=x*(B-A)/g;
			tmp=(tmp%(num[k]/g)+num[k]/g)%(num[k]/g);
			printf("%lld\n",tmp);
		}
		else
			printf("FOREVER\n");
	}

	return 0;
}


 

POJ2115-C Looooops 测试数据 ACM-POJ2115-C Looooops 测试数据。 数据来源:CTU Open 2004 问题C 立即下载

相关推荐

LangChain学习及应用(超详细)

Model I/O 部分是与语言模型进行交互的核心组件,包括输入提示(Prompt Template)、调用模型(Model)、输出解析(Output Parser)。简单来说,就是输入、处理、输出这三个步骤。LLM 因其具有海量参数,需要花费相当的物力与时间成本进行预训练和微调,同时商用 LLM 还需要进行各种安全测试与风险评估等。因此 LLM 会存在知识滞后的问题。在专有领域,LLM 无法学习到所有的专业知识细节,因此在面向专业领域知识的提问时,无法给出可靠准确的回答。

weixin_39764056的博客 4245

poj2115(扩展欧基里德定理)

题目链接:https://vjudge.net/problem/POJ-2115 题意:模拟for循环for(int i=A;i!=B;i+=C),且数据范围为k位无符号数以内,即0~1<<k-1,如果能循环为有限次则输出循环次数,否则输出FOREVER。 思路:典型的扩展欧基里德题。题意即求Cx=B-A (mod 1<<k),可化为Cx+(1<<k)y=B...

weixin_34061555的博客 266

深度学习之常用算子介绍

打开 onnx 模型图,可以看到它是一个有向无环图。除了 Input、Output ,其他都是算子(是操作,而不是节点)在ONNX(Open Neural Network Exchange)模型中,除了输入和输出,其他都是算子(Operations)。算子是表示神经网络模型中的不同操作或层的元素。一个ONNX模型由一系列算子组成,通过连接这些算子来定义模型的计算流程。

ueke1的博客 8459

POJ-2115(求解同余方程模板题)/约数和及其个数定理

poj—2115: 题意大概是给你a,b,c,k,求解方程cx-2的k次*m=b-a;典型的扩展欧几里得求解最小x题 下面是代码: #include<cstdio> #include<cstring> #include<algorithm> #include<iostream> #include<set> #include<string.h> #include<vector> using namespace std;

qq_50812688的博客 382

PaddleOCR SVTRv2中文识别模型训练全流程:从数据准备到推理部署

本文详细介绍了基于PaddleOCR的SVTRv2中文识别模型从数据准备、模型训练到推理部署的全流程实战。SVTRv2凭借其单视觉Transformer架构和分层混合机制,在中文文字识别任务上实现了高精度与效率的平衡。文章重点解析了数据工程、训练调优技巧及部署优化方案,帮助开发者构建定制化的OCR解决方案。

weixin_29194817的博客 287

【LE Audio】CAP精讲[1]: 从理论到实操,CAP 协同流程入门全攻略

LEAudio生态中的CommonAudioProfile(CAP)是一个关键协同框架,它通过整合基础音频协议(BAP/VCP/MICP等)构建多设备协同能力。CAP定义了三大核心功能:音频流管理、设备组控制和统一交互服务,解决了传统蓝牙音频在多设备场景下的协同痛点。其规范历经v1.0到v1.0.1的优化,修正了角色定义、连接流程等关键模块,提升设备兼容性。CAP采用严格的语言约定(shall/must/should)和术语体系(ContextType/CCID/协同集),确保不同厂商设备能相互理解。

byte轻骑兵的技术小窝 2万+

POJ 2115 (模线性方程 -> 扩展欧几里得)

题意: for(i=A ; i!=B ;i +=C)循环语句,问在k位操作系统中循环结束次数。 若在有则输出循环次数。 否则输出死循环。 存在这样的情况;i= 65533 ;i 由模线性方程->扩展欧几里得 #include #include #include #include #include using namespace std; #define

NotPerfect-EOF 1181

让 ABAP 开发更聪明的搭档:SAP Joule for Developers 与 ABAP AI Capabilities 全面实战

摘要:SAP已将生成式AI集成到ABAP开发工具中,推出Joule for Developers功能。该功能直接嵌入Eclipse开发环境,提供代码解释、生成、测试构造和遗留代码迁移等辅助功能。Joule支持ABAP Cloud项目开发,能围绕当前开发对象提供上下文相关的建议,帮助开发者高效完成应用开发与迁移任务。启用该功能需升级ADT并获取相应许可,典型应用场景包括RAP应用构建和S/4HANA迁移中的代码重构。官方资源提供了多个实践案例,帮助开发者快速上手这一AI辅助开发功能。(149字)

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 492

POJ2115 C Looooops

POJ2115 C Looooops Time Limit:1000MS Memory Limit:65536K Total Submissions:11146 Accepted:2622 Description A Compiler Mystery: We are given a C-language style for l...

weixin_30838873的博客 247

ABAP CDS 实体权限控制,从 DCL 到 PFCG 的完整运行逻辑

本文探讨了SAP S/4HANA开发中CDS View的权限控制机制。核心观点如下: CDS access control通过DCL语言实现数据实例级权限控制,而非替代传统PFCG权限体系,二者形成互补关系:PFCG控制功能入口权限,DCL控制数据可见性。 DDL定义数据结构,DCL定义访问规则。DCL通过角色映射将数据字段与PFCG授权对象关联,运行时自动将权限条件注入SQL查询,实现数据过滤。 访问控制行为特点: 无DCL role不会默认拒绝访问 权限检查通过减少结果集而非抛出错误实现 需配合@Acc

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 101

【YOLOv8/v9/v10 实战 01】YOLOv8/v9/v10全系列实战对决:性能矩阵、架构拆解与2026部署指南

2026年YOLO生态已进入“战国时代”,Ultralytics YOLOv8/11/26、阿里YOLO12、清华YOLOv10、微软YOLOv9四大路线并行发展。本文基于官方文档、学术论文及实测数据,系统剖析三大核心版本(YOLOv8/v9/v10)的架构演进逻辑,构建覆盖参数量、mAP、FPS、FLOPs的完整性能矩阵。通过8组工业场景实测、全流程代码实现(训练-导出-部署)、6类硬件适配方案,解决新手选型难、进阶者优化无门、工业开发者部署低效的痛点。

专注于人工智能、软件开发、工控自动化、工厂数字化及智能化等领域,希望和大家共同进步! 533

POJ-2115(扩展欧几里得--模板题)

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 while variable is not equal to B, repeats statement followed

weixin_53729021的博客 349

知识图谱构建中的数据清洗:AI原生应用高质量图谱的前提

数据清洗是知识图谱构建的核心前置环节,直接决定AI原生应用(如智能问答、个性化推荐、决策支持系统)的图谱质量与应用效能。本文以第一性原理为起点,系统解析数据清洗的理论框架、技术架构与工程实践,覆盖从多源异构数据的噪声检测到高质量知识三元组(实体-关系-实体)生成的全流程。通过层次化概念映射(专家→中级→入门)、数学形式化建模及工业级案例分析,揭示数据清洗在解决实体歧义、关系冲突、结构不一致等关键问题中的技术逻辑,并展望基于大模型的智能清洗范式演化。Completeness(完整性)

移动开发前沿的博客 404

【poj 2115】 C Looooops 【CTU Open 2004】

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

TLECODE的博客 742

Camera2Demo

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

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

[POJ2115] C Looooops

题目描述对于循环语句: for(variable=A;variable!=B;variable+=C)statement; 已知所有的数均要mod 2^k((即0 <= x < 2^k,1 <= k <= 32)),给出A,B,C和k的值,计算并输出statement执行的次数,如果为无限次,那么直接输出“FOREVER”。输入格式输入数据有多组,每组数据占一行,有四个整数A,B,C,k(0<=

Bill_Yang_2016的博客 453

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

POJ-2115 C Looooops

题意:就是求A+Cx=B(mod 1<<k)(式 1),的最小x的值。 思路:虽然脑袋很乱、不过还是水过。式 1可以转化为Cx-2^ky=B-A,然后直接带扩展欧几里得即可。有一个地方需注意,移位的时候1<<k是错的,写成1LL<<k就过了..... 题目链接:http://poj.org/problem?id=2115 View Cod...

bancaidun1539的博客 130

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

【poj2115】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 value...

lhh的博客 183

C Looooops POJ - 2115

http://poj.org/problem?id=2115 拓展欧几里德裸题 以cc为a (1<<k)为b(bb-aa)为c 求(a*x)%b=c得最小非负整数解即可 #include <cstdio> #include <cstring> #include <algorithm> using namespace std; ty...

sunyutian1998的博客 201

POJ 2115C Looooops

http://poj.org/problem?id=2115 题目大意: 对于循环语句: for(int i = A; i != B; i += C) 已知i、A、B、C都是无符号整数类型,给出A、B、C、k的值,所有的数都不大于2^k,计算并输出循环语句的执行次数,如果为无限次,那么直接输出"FOREVER"。 设算法

Hytai的专栏 479

POJ_2115_C Looooops

同余方程

edward_108 276

poj 2115 C Looooops

http://poj.org/problem?id=2115 C Looooops Time Limit:1000MS Memory Limit:65536K Total Submissions:34291 Accepted:9996 Description A Compiler Mystery: We are given ...

weixin_30764883的博客 111
上一篇: Hdu 1299 Diophantus of Alexandria
下一篇: POJ 1061 青蛙的约会
Magic_____
博客等级 码龄14年 11粉丝 160原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值