首页 > 其他分享 >HDU4259(简单群置换)

HDU4259(简单群置换)

时间:2023-05-31 17:36:30浏览次数:45  
标签:gcd int 置换 HDU4259 num long 简单 include LL


题目:Double Dealing

#include <iostream>
#include <string.h>

#define LL long long
const int N=1005;

int n,k;
int a[N][N];
bool f[N];
int num[N];

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

int main()
{
    int i,j;
    while(std::cin>>n>>k)
    {
        if(n==0&&k==0) break;
        if(n<k)
        {
            std::cout<<"1"<<std::endl;
            continue;
        }
        int m=1;
        for(i=1;i<=k&&i<=n;i++)
        for(j=(n-i)/k*k+i;j>0;j-=k)
        num[m++]=j;
        int x;
        LL res=1;
        memset(f,false,sizeof(f));
        for(i=1;i<=n;i++)
        {
            x=i;
            if(f[i]) continue;
            int count=0;
            while(1)
            {
                f[x]=true;
                x=num[x];
                count++;
                if(x==i) break;
            }
            res=res/gcd(res,count)*count;
        }
        std::cout<<res<<std::endl;

    }
    return 0;
}

 

标签:gcd,int,置换,HDU4259,num,long,简单,include,LL
From: https://blog.51cto.com/u_16146153/6388606

相关文章

  • 使用NPOI组件简单实现导出
    首先我们在NuGet程序包管理中下载NPOI组件目前版本稳定的是:2.4.1这里可以看一下NPOI下载完成后生成的四个引用,其作用然后废话也不多说了,直接上代码然后我们在项目中进行引用usingNPOI.SS.UserModel;usingNPOI.XSSF.UserModel;usingNPOI.HSSF.UserModel;点......
  • 02.简单工厂
    定义提供一个创建对象实例的功能,而无需关心具体实现。创建实例的类型可以是接口、抽象类,也可以是具体的类。代码示例///<summary>///工厂类,用来创建api对象///</summary>publicclassFactory{publicstaticIApiCreateApi(intcondition){IApiapi......
  • 最大熵模型原理——选择符合所有事实,在其他方面尽可能均匀分布(熵最大)的模型,其实思想很
    1.熵与最大熵原理熵是随机变量不确定性的度量,不确定性越大,熵值就越大;若随机变量退化成定值,熵为0。均匀分布是“最不确定”的分布假设离散随机变量X的概率分布为P(x),则其熵为:联合熵和条件熵两个随机变量的X,Y的联合分布,可以形成联合熵,用H(X,Y)表示条件熵H(X|Y)=H(X,Y)-H(Y) 相对......
  • mDNS原理的简单理解——每个进入局域网的主机,如果开启了mDNS服务的话,都会向局域网内的
    MDNS协议介绍mDNSmulticastDNS,使用5353端口,组播地址224.0.0.251。在一个没有常规DNS服务器的小型网络内,可以使用mDNS来实现类似DNS的编程接口、包格式和操作语义。MDNS协议的报文与DNS的报文结构相同,但有些字段对于MDNS来说有新的含义。每个进入局域网的主机,如果开启了mDNS服......
  • java简单实现布隆过滤器
    为了方便理解布隆过滤器,java简单实现了下,特点:仅用做一次运算就可以判断存在不存在,但是只能精确的判断值不存在,不能精确的判断值存在publicclassBlTest{privatefinalintf=1024;//负载因子,值越大判断的越精准,但是所占的空间也越大int[]bArray;BlTest(){......
  • 二分法应用——搜索旋转数组,以前一直在纠结a[0],a[-1],a[mid], target三者关系,其实最
    62·搜索旋转排序数组  描述给定一个有序数组,但是数组以某个元素作为支点进行了旋转(比如,0124567可能成为4567012)。给定一个目标值target进行搜索,如果在数组中找到目标值返回数组中的索引位置,否则返回-1。你可以假设数组中不存在重复的元素。背完这套刷题模板,真......
  • aspnetcore最最简单的接口权限认证
    五月一眨眼就过去,就当凑个数吧。场景:一个小小的项目,需要一个后台,就展示几个列表,连用户表、角色表等都不需要设计。之前有写过identityserver4和jwt4的demo(exercisebook/IdentityServer4&Serilogatmain·liuzhixin405/exercisebook·GitHubexercisebook/授权/授权一/Jw......
  • jquery.qrcode.js 和 jQuery.print.js 简单使用
    最近因为需要在前端生成二维码并打印二维码及相关内容,使用了jquery,jquery.qrcode.js,jQuery.print.js来实现代码<!DOCTYPEhtml><html><scriptsrc="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.4/jquery.min.js"></script><scriptsrc="https://c......
  • RabbitMQ简单介绍
    RabbitMQ是一款开源的消息中间件具备的特点1.高可靠,易扩展,高可用2.支持大多数的编程语言客户端3.遵循AMQP协议,也支持MQTT协议,自身采用Erlang语法开发RabbitMQ整体逻辑结构大体可以由三部分组成:生产者,Broker,消费者 而消息者就是从指定的消息队列中进行消息的消费交换器需......
  • 简单登录界面
    <%@pagecontentType="text/html;charset=UTF-8"language="java"%><htmllang="en"><head><metacharset="utf-8"><metahttp-equiv="X-UA-Compatible"content="IE=edge"......