setw的使用和判断两数互质

从NOI分治题实战解析快速幂算法:模运算与竞赛优化技巧 在算法设计与数论问题中,模运算是处理大整数计算和防止溢出的核心工具,它通过取余操作将无限范围的数值映射到有限集合。其基本原理基于同余理论,确保在加、减、乘运算下保持等价关系。这一技术的工程价值在于显著提升计算效率与可控性,广泛应用于密码学、随机数生成和竞赛编程中的大数处理。具体到计算超大幂次取模的场景,直接暴力计算会因指数过大而导致时间复杂度过高。此时,快速幂算法作为分治思想的典型应用,通过将指数二进制分解,将复杂度从O(N)降至O(log N),完美解决了这一问题。本文以一道经典NOI分治题目为例,深入剖 阅读详情

问题很简单,一要看懂题目,二要知道考什么也就是两数是不是互质,三就是输出格式的控制
Problem Description
Computer simulations often require random numbers. One way to generate pseudo-random numbers is via a function of the form

seed(x+1) = [seed(x) + STEP] % MOD

where ‘%’ is the modulus operator.

Such a function will generate pseudo-random numbers (seed) between 0 and MOD-1. One problem with functions of this form is that they will always generate the same pattern over and over. In order to minimize this effect, selecting the STEP and MOD values carefully can result in a uniform distribution of all values between (and including) 0 and MOD-1.

For example, if STEP = 3 and MOD = 5, the function will generate the series of pseudo-random numbers 0, 3, 1, 4, 2 in a repeating cycle. In this example, all of the numbers between and including 0 and MOD-1 will be generated every MOD iterations of the function. Note that by the nature of the function to generate the same seed(x+1) every time seed(x) occurs means that if a function will generate all the numbers between 0 and MOD-1, it will generate pseudo-random numbers uniformly with every MOD iterations.

If STEP = 15 and MOD = 20, the function generates the series 0, 15, 10, 5 (or any other repeating series if the initial seed is other than 0). This is a poor selection of STEP and MOD because no initial seed will generate all of the numbers from 0 and MOD-1.

Your program will determine if choices of STEP and MOD will generate a uniform distribution of pseudo-random numbers.
** //大意就是判断给的这两个数能不能输出全部的0-MOD-1之间的数,也就是判断两个
//数是不是互质也就是最大公因数是不是1 **

Input
Each line of input will contain a pair of integers for STEP and MOD in that order (1 <= STEP, MOD <= 100000).

Output
For each line of input, your program should print the STEP value right- justified in columns 1 through 10, the MOD value right-justified in columns 11 through 20 and either “Good Choice” or “Bad Choice” left-justified starting in column 25. The “Good Choice” message should be printed when the selection of STEP and MOD will generate all the numbers between and including 0 and MOD-1 when MOD numbers are generated. Otherwise, your program should print the message “Bad Choice”. After each output test set, your program should print exactly one blank line.

Sample Input
3 5
15 20
63923 99999

Sample Output
3 5 Good Choice

    15        20    Bad Choice

 63923     99999    Good Choice

代码可以是这样的:

#include<iostream>
#include<cstdio>
#include<algorithm>
#include<iomanip>
using namespace std;
int main()
{
    int n,m;
    while(scanf("%d%d",&n,&m)!=EOF)
    {
        int N = n, M= m,s;
        if(N<M) swap(N,M);//总是让这个大的去模小的
        while(M>0)//辗转相除法
        {
            s = N%M;
            N = M;
            M = s;
        }
        //是不用算输入的数多长的,setw就可以保证输入的总共占10为前面用空格补
        cout<<setw(10)<<n<<setw(10)<<m;
        if(N==1)printf("    Good Choice\n\n");
        else printf("    Bad Choice\n\n");
    }
}
智能车图像处理5-入门级分析4 ---环岛的状态机与补线 PS :入门级文章适合新手,如果已经有基础可以去看进阶篇文章。 阅读详情

相关推荐

Aveva Marine C# 二次开发入门001

1# 引用 C:\AVEVA\Marine\OH12.1.SP4\Aveva.ApplicationFramework.dll C:\AVEVA\Marine\OH12.1.SP4\Aveva.ApplicationFramework.Presentation.dll 2# 引用命名空间, using Aveva.ApplicationFramework.Presentation;usi...

weixin_30245867的博客 1911

HDU 1014 Uniform Generator

数论

乱齐八糟 407

告别VBA!用Python+PyWin32自动化你的SolidWorks建模流程(附完整代码)

本文详细介绍了如何利用Python和PyWin32实现SolidWorks建模流程的自动化,替代传统的VBA宏开发。通过环境配置、宏代码转换、高级开发模式及工程化实践等实战内容,帮助机械设计师构建高效、可维护的自动化工作流,显著提升设计效率。

weixin_30485379的博客 365

HDU 1014(互质数 **)

题意是说从 0 开始每次增加 STEP,然后模 MOD 得到一些数,问是否能得到从 0 到 MOD - 1 的所有数。 只要 STEP 与 MOD 互质就可以满足条件,也就是二者的最大公因数为 1 即可。 但是这道题对于输出的格式要求很高,少见的右对齐(自从发现 cin / cout 比 scanf / printf 慢很多就没再使用过 setw() )个人对 scanf 和 pri...

b338865802883204的博客 295

TikTok Shop API密钥获取与PHP实战对接指南

本文详细介绍了TikTok Shop API密钥的获取流程与PHP实战对接方法。从开发者后台创建应用、获取核心的API密钥开始,逐步解析OAuth 2.0授权机制,并提供了完整的PHP封装类示例,涵盖签名生成、API调用、令牌刷新及错误处理,帮助开发者快速实现与TikTok Shop的数据对接与自动化操作。

weixin_29300241的博客 400

超详细Tokenizer——文本训练数据预处理

Tokenizer是Keras库中的一个文本处理工具,它用于将文本分词并构建词汇表,同时将文本映射到整数序列。这对于自然语言处理任务非常有用,例如文本分类、情感分析、机器翻译等。

halo的博客 3700

HDU 1014 Uniform Generator 题解

找到规律之后本题就是水题了,不过找规律也不太容易的,证明这个规律成立更加不容易。 本题就是求step和mod如果GCD(最大公约数位1)那么就是Good Choice,否则为Bad Choice 为什么这个结论成立呢? 因为当GCD(step, mod) == 1的时候,那么第一次得到序列:x0, x0 + step, x0 + step…… 那么mod之后,必然下一次重复出现比x0大的数必

靖空间 2648

Surface Go 2 变身 Linux 开发本:保姆级 Ubuntu 20.04 双系统安装与驱动配置全攻略

本文详细介绍了如何将 Surface Go 2 变身为高效的 Linux 开发本,涵盖 Ubuntu 20.04 双系统安装、专用内核配置、驱动优化等全流程。通过 linux-surface 内核安装和硬件驱动优化,确保 Surface Go 2 的触控、笔输入、摄像头等功能完美运行,适合开发者打造便携生产力工具。

weixin_30596165的博客 616

HDOJ-1014 Uniform Generator

1014-Uniform Generator 题目描述 Computer simulations often require random numbers. One way to generate pseudo-random numbers is via a function of the form (计算机模拟通常需要随机数。产生伪随机数的一种方法是通过形式seed(x+1) = [seed(x...

Erya Programming learning 377

STM32F407 步进电机S形曲线加减速

步进电机

smallerlang的博客 1591

哈工大OS实验四——进程运行轨迹的跟踪与统计

进程运行轨迹的跟踪与统计 进程从创建(Linux 下调用 fork())到结束的整个过程就是进程的生命期,进程在其生命期中的运行轨迹实际上就表现为进程状态的多次切换,如进程创建以后会成为就绪态;当该进程被调度以后会切换到运行态;在运行的过程中如果启动了一个文件读写操作,操作系统会将该进程切换到阻塞态(等待态)从而让出 CPU;当文件读写完毕以后,操作系统会在将其切换成就绪态,等待进程调度算法来调度该进程执行…… process.c解读 void cpuio_bound(int last, int cpu_

优快云-ych 1001

1uva408(数论)

http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=349 408 - Uniform Generator Time limit: 3.000 seconds  Uniform Generator  Computer simulations ofte

ZhouRush 570

131、高通骁龙影像平台总览:Spectra ISP 各代架构演进与特性对比

摘要:本文深入分析了高通骁龙Spectra ISP从250到780代的架构演进与技术痛点,揭示了各代关键改进与隐藏问题。重点剖析了双ISP带宽分配、AI ISP黑盒决策、温度控制等实战问题,并给出具体解决方案(如寄存器配置、QoS调整等)。文章强调工程师需平衡带宽、功耗与画质的三角关系,建议调试时先关闭AI模块建立基线,关注统计引擎配置,并建立温度监控机制。最后指出理解架构局限比追求完美设计更重要,需要针对不同场景找到合适的妥协方案。(148字)

sundong_81的博客 207

setw的使用(控制输出)

导言: setw的功能是对要输出的进行区域操作,如对两个数输出的时候, ,图中的是右对齐的,有十个空间。相当于printf("%2.lf\n")一样对浮点数输出的样子。 定义和用法:头文件:#include set可以设置控制的宽度,输出的是靠左还是靠右,默认的是靠右,宽度之内除了要输出的东西以外输出的; 具体介绍一下: setw(int n)只是对直接跟在field wi

Everything can be done! 5091

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

Camera2Demo

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

Uniform Generator

Problem Description Computer simulations often require random numbers. One way to generate pseudo-random numbers is via a function of the form seed(x+1) = [seed(x) + STEP] % MOD where ‘%’ is the modul...

coffee__a的博客 287

老版QQ原生表情gif动态

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

HDU1014

求最大公约数: 欧几里得(Euclid)算法 又称辗转相除法,依据定理gcd(a,b)=gcd(b,a%b) 实现过程演示: sample:gcd(15,10)=gcd(10,5)=gcd(5,0)=5 C语言实现: 1 int Euclid_GCD(int a, int b) 2 { 3 return b?Euclid_GCD(b, a%b):a; 4 }自己最...

285

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

hdu 1014

Uniform Generator Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 10856    Accepted Submission(s): 4291 Problem Description Computer si

ysc504的专栏 834

hdoj1014

Uniform Generator Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Problem Description Computer simulations often require random numbers. One way to gener

◆◇丶生如夏花。谁来订阅我的悲伤 539

HDU - 1014ACM

这题其实是判断两个数是否互质。 当然也可以暴力破解。 // // main.cpp // UniformGenerator_hdu1014 // // Created by Alps on 14/12/27. // Copyright (c) 2014年 chen. All rights reserved. // #include using namespace s

累了就歇一会 1420

HDU 1014(最大公约数)

题意:如果两个数不互质,则输出“Bad Choice”,否则“Good Choice”.     #include int gcd(int a,int b) { if(a%b==0) return b; else return gcd(b,a%b); } int main() { int i,j,k,m,n,s; while(scanf("%d%d",&

ACM Dream 752

hdu1014

seed(x+1) = [seed(x) + STEP] % MOD STEP=3 MOD=5   出现的循环串是 0, 3, 1, 4, 2. 假设gcd(step,mod)=g  ,令step=k*g,mod=m*g; 那么x=f*k*g-(f*k*g)/(m*g)*(m*g)=g*( f*k % m)*m )  {0 序列是  {0,step ,2step,3step,4step,..

lliinnhhhan的博客 523

hdu1014(随机数)

#include int main() {     int s,step,mod,i;     while(scanf("%d%d",&step,&mod)==2)     {         s=0;i=0;         while(1)         {             i++;             s=(s+step)%mod;

青山绿水之辈 专栏 1030

hdu1014 Uniform Generator

/* Author:snowflake Time:2012/5/13 Desc:Water... */ /* 题目的大意:就是给定两个数step, mod然后利用给定的公式求随机数,保证从0到mod减1范围内 每一个数都出现一次。这样就均等分布了。就打印Good否则就Bad 就是枚举产生随机数,然后排序在比对,注意下输出的格式就OK了。 */ #include #include

2049
上一篇: 最长公共子序列(LCS)和最优二叉搜索树
下一篇: 贪心算法与活动选择问题和背包问题
BeforeEasy
博客等级 码龄10年 92粉丝 207原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值