【BZOJ 4253】密码箱加强版

(超详细)Scala环境搭建(scala-2.12.15、IDEA2021.1.3) Scala环境搭建(scala-2.12.15、IDEA2021.1.3) JunLeon——go big or go home 目录 Scala环境搭建(scala-2.12.15、IDEA2021.1.3) 一、Scala概述 1、什么是Scala? 2、Scala发展史 3、Scala与Java的关系 二、Scala环境搭建 1、环境准备 2、Scala安装与配置环境变量 3、验证Scala 三、编写第一个Scala程序 1、使用IDEA创建maven工程 2、. 阅读详情

首先无视掉这题题面,您就全当机房的神犇在D蒟蒻我好了。
进入正题,首先这题的弱化版还是蛮好想的。设:

n=pk11∗pk22∗...∗pknn

对于x2=1(modn),一定有
x2=1(modpk11)
x2=1(modpk22)
…
xn=1(modpknn)
而对于x2=1(modpkkk):
当pk!=2时,x有以下取值
x=pkkk−1(modpkkk) 或 x=1(modpkkk)
当pk=2时,x有另外两个取值(注意特判下 kk=1 的情况)
x=pkk−1k−1(modpkkk) 或 x=pkk−1k+1(modpkkk)
于是我们穷举x对于每个因子的取值,中国剩余定理合并即可。
但是。。。。
这题的n显然比较大,普通的n√筛质因子已经满足不了需求,于是我学习了可以n√−−−√筛质因子的pollard rho和配合使用的rabin miller算法。想要学习的可以百度一下或者看一下算导,讲的都听明白的,代码的话不嫌丑的话可以看一看我的。code:
#include<cmath>
#include<iostream>
#include<cstdio>
#include<cstring>
#include<cstdlib>
#include<ctime>
#include<algorithm>
#define s 20
using namespace std;
long long n,x,y;
long long prime[51],tot,b[51],ret[51];
long long ansi[320001],totans;
long long mult(long long a,long long b,long long p)
{
    long long t;
    if (b==0) return 0;
    if (b==1) return a;
    t=mult(a,b/2,p);
    if (b%2==0) return (t+t)%p;
    else return ((t+t)%p+a)%p;
}
long long power(long long a,long long b,long long p)
{
    long long temp;
    if (b==0) return 1;
    if (b==1) return a;
    temp=power(a,b/2,p);
    if (b%2==0) return mult(temp,temp,p);
    else return mult(a,mult(temp,temp,p),p);
}
bool check(long long a,long long n,long long x,long long t)
{
     long long i,ret=power(a,x,n);
     long long last=ret;
     for (i=1;i<=t;++i)
       {
         ret=mult(ret,ret,n);
         if (ret==1&&last!=1&&last!=n-1) return false;
         last=ret;
       }
    if (ret!=1) return false;
    else return true;
}
bool is_prime(long long n)
{
    long long a,i,x,t=0;
    if (n<2) return false;
    if (n==2) return true;
    if (!(n&1)) return false;
    x=n-1;
    if (!(x&1)) {x>>=1; t++;}
    for (i=1;i<=s;++i)
      {
        a=rand()%(n-2)+2;
        if (!check(a,n,x,t)) return false;
      }
    return true;
}
long long _abs(long long x)
{
    if (x>0) return x;
    else return -x; 
}
long long gcd(long long a,long long b)
{
    if (a%b==0) return b;
    else return gcd(b,a%b);
}
long long pollard_rho(long long p)
{
    long long y,d,k,i,x,x0,c;
    c=(long long)(long long)(rand()*(long long)rand())%p;
    y=x=(long long)((long long)rand()*(long long)rand())%p;
    k=2; i=1;
    while (true)
      {
        i++;
        x=(mult(x,x,p)+c)%p;
        d=gcd(_abs(y-x),p);
        if (d!=1) return d;
        if (i==k)
          {y=x; k<<=1;}
      }
}
void make_list(long long n)
{
    long long i;
    long long x,minn;
    bool f,d;
    f=is_prime(n);
    if (f) 
      {
        d=false;
        for (i=1;i<=tot;++i)
          if (prime[i]%n==0)
            {prime[i]*=n; d=true;}
        if (!d) prime[++tot]=n;   
      }
    else
      {
        minn=pollard_rho(n);
        while (minn==n) minn=pollard_rho(n);
        make_list(minn);
        make_list(n/minn);
      }
}
void exgcd(long long a,long long b,long long p)
{
    long long t;
    if (a%b==0)
      {
        x=0;
        y=1;
      }
    else
      {
        exgcd(b,a%b,p);
        t=x%p;
        x=y%p;
        y=(t-mult((a/b),y,p)+p)%p;
      }
}
void make_ret()
{
    long long i,now,t;
    for (i=1;i<=tot;++i)
      {
        now=n/prime[i];
        now=now%prime[i];
        exgcd(now,prime[i],prime[i]); 
        x=(x%prime[i]+prime[i])%prime[i];
        t=n/prime[i];
        ret[i]=mult(x,t,n);  
      }
}
void solve()
{
    long long i,now,ans=0,t;
    for (i=1;i<=tot;++i)
      {
        x=mult(ret[i],b[i],n); 
        ans=(ans+x)%n;  
      }
    ansi[++totans]=ans;
}
void work(long long i)
{
    if (i==tot+1)
      {
        solve();
        return;
      }
    if (prime[i]==2)
      {b[i]=1; work(i+1);}
    else
      {
        b[i]=prime[i]-1; work(i+1);
        b[i]=1; work(i+1);
        if (prime[i]%2==0&&prime[i]>4)
          {
            b[i]=prime[i]/2+1;
            work(i+1);
            b[i]=prime[i]/2-1;
            work(i+1);
          }
      }
}
int main()
{
    long long i,size;
    scanf("%lld",&n);
    if (n==1) printf("None\n");
    else
      {
        make_list(n);
        make_ret();
        work(1);
        sort(ansi+1,ansi+totans+1);
        size=unique(ansi+1,ansi+totans+1)-ansi-1;
        for (i=1;i<=size-1;++i)
          printf("%lld ",ansi[i]);
        printf("%lld\n",ansi[size]);
      }
}
2023年全国职业院校技能大赛“信息安全管理与评估”-真题——赛题题目+答案解析 阅读详情

相关推荐

四旋翼无人机数学模型推导

本周开始进行四旋翼无人机的学习工作,首先来进行四旋翼无人机的数学模型推导工作。。 四旋翼动力学数学模型 坐标变换 介绍四旋翼数学模型之前,首先引入坐标变换的概念,定义两个坐标系惯性坐标系{E},以及机体坐标系{B},惯性坐标系就相当于在地面建立的、静止不动的坐标系,也是我们操纵无人机所在的空间,而机体坐标系是建立于四旋翼机体之上,随着四旋翼姿态变换而变化,所以建立一种地面上的惯性坐标系与四旋翼机体坐标系之间的转换关系,就有这个必要。 对于惯性坐标系{E},以及机体坐标系{B},它们之间的转换关系

BiuBiuSun的博客 1万+

【AHOI2007】【BZOJ4253】密码箱 加强版

Description 由于BZOJ的水题已经被Lcomyn大爷刷完了,所以机房的蒟蒻们决定再出一道水题给lcomyn刷。 正巧蒟蒻们最近做了AHOI2007密码箱,觉得这题实在太水了。稍微加强一下下依然还是很水的,所以决定把数据范围开大一点送给Lcomyn切。 求方程x^2=1(mod n)的解,x为小于n的非负整数。Input 一行一个数n。Output 如果方程无解输出None,否则

CreationAugust is 14 years old forever 1716

深度学习:STGCN学习笔记

目录标题基于图神经网络的图分类问题GCN在行为识别领域的应用主要任务研究思路ST-GCN(SpatialTemporal Graph Convolutional Networks for Skeleton-Based Action Recognition)解读原论文解决问题主要贡献核心思想简介OpenPose 预处理基于人体关键点构造graph构造单帧graph(空间域)构造帧间graph(时间域)ST-GCN模型采样函数权重函数空域图卷积空间-时间模型分区策略可学习的边重要性权重TCNST-GCN模型的实

zhe470719的博客 3万+

BZOJ 1512 [POI2006]Pro-Professor Szu Tarjan强连通分量 DP

题目大意:给定一张n个点,m条边的图(可能有(自)环),给出一个终点,求出到终点方案数最大的所有点。求到终点的方案的问题,可以想到转化成将边反向以后求终点到所有点的方案。题中说到可能有环,那就用Tarjan算一下强连通分量缩点。对于每一个size>1的点都存在INF条路径。将图转化为DAG后就可以用DP来解决计算方案数的问题。详见代码。#include <cstdio> #include <algo

YihAN_Z 785

无感FOC之高频注入法——永磁同步电机控制

1.摘要电机运行在低速或零速时,磁链产生的反电动势很微弱,可用信号的信噪比太低,因而难以从反电动势中提取转子的位置和速度信息。因而在电机处于低速或零速时,需要借助电机的凸极特性来获取转子的位置信息。内置式永磁同步电机或磁密较大的表贴式永磁同步电机具有这种凸极特性,可借助高频电压注入法获取转子位置。2.凸极特性凸极电机内部的气隙是不均匀的,d轴和q轴的有效气隙是不同的,通俗来说在凸极电机里,q轴电感往往大于d轴电感,而在大部分表贴式永磁同步电机,气隙分布相对均匀,q轴电感近似于d轴电感。凸极率常用q轴电感和d

qq_2545470942的博客 2万+

交货单冲销发货过账的正确姿势:用 VL09 与 ABAP 批量反冲 Goods Issue

摘要 本文详细解析了SAP系统中VL09事务码的技术实现与业务应用。VL09用于反冲发货的货物移动,通过标准冲销路径(移动类型602冲销601)确保单据链路一致、状态机正确回退和业务规则生效。文章对比了经典VL09与Fiori应用在不同SAP产品形态中的位置,并针对STO场景提供了ME23N验证方法。核心内容包括WS_REVERSE_GOODS_ISSUE函数模块的调用要点、必须COMMIT的原因(SAP LUW机制),以及处理Handling Unit等限制条件的注意事项。最后给出了将VL09工程化的项目

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

bzoj 2387: [Ceoi2011]Traffic 强连通分量+dp

题意格丁尼亚的中心位于Kacza河中的一座岛屿。每天清晨,成千上万辆汽车通过岛屿从西岸的住宅区(由桥连接岛的西部)到东岸的工业区(由桥连接岛的东部)。 该岛类似于矩形,它的边平行于主方向。故可将它看作是笛卡尔坐标系中的一个A*B的矩形,它的对角分别为(0, 0)和(A, B)。 岛上有n个交通节点,编号为1…n(junction, 此处可理解为广义的路口),第i个节点坐标为(xi, yi)。如果

beginend 775

C# WPF上位机实战:从零开发空压机监控系统(含实时监控+故障预警+数据追溯)

在工业生产场景中,空压机作为核心动力设备,常面临这些痛点:压力/温度异常导致停机、油耗超标未及时发现、设备故障追溯无数据支撑、人工巡检效率低且易遗漏。而基于C# WPF开发的空压机监控系统,能通过实时采集设备运行参数、智能分析运行状态、联动故障预警,实现“状态监控-异常告警-数据追溯-远程管控”全流程自动化,完美解决传统管理模式的弊端。今天就带大家落地这套空压机监控系统,基于C# + .NET 8 + WPF + Modbus TCP/RTU协议,整合压力、温度、油耗、运行时长等核心参数监控,搭配WPF的数

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 1103

密码箱 BZOJ - 1406

题目传送门思路:x^2 mod n = 1 (x^2 - 1) mod n = 0 (x + 1)(x - 1) mod n = 0 我们假设n = k * n x - 1 = k1 * n1, x + 1 = k2 * n2 k1 * k2 = k, n1 * n2 =

且听风吟 363

【论文复现】水下单光子激光雷达设计 Sequential Multimodal Underwater Single

针对对慢速小水下目标进行远距离、高分辨率重建的需求,单光子激光雷达(LiDAR)目标重建技术的研究正在进行。本文报告了一种基于时空序列融合的顺序多模态水下单光子 LiDAR 自适应目标重建算法,该算法具有强大的信息提取和噪声过滤能力,能够从复杂的回波光子计数和空间像素关系中重建目标的深度和反射强度信息。该方法包括三个步骤:数据预处理、序列优化极值推断滤波以及图像优化协同变分策略,以实现复杂水下环境下的高质量目标重建。

u012133341的博客 292

MetaERP 的管理单元在设计哲学和实现逻辑上,确实与 Oracle EBS 的业务实体(OU)一脉相承,你可以放心地在已知的 Oracle 多组织架构框架下进行理解。它并没有推翻这套经典的核算模型

MetaERP的管理单元设计继承了Oracle EBS业务实体(OU)的核心思想,并进行了现代技术重构。管理单元(MU)作为OU的超集,延续了业务数据隔离与流程执行边界的定位,但通过元数据驱动的多租户架构实现更灵活的数据隔离。MetaERP采用三层解耦设计(核算单元、自然科目、核算维度),解决了EBS科目组合爆炸问题,并实现事件驱动的实时核算。相较于EBS的批处理模式,MetaERP通过云原生架构和元数据驱动配置,显著提升了灵活性、实时性和扩展性,支持跨法人的业务统一管理视图。

金牌架构师 576

BZOJ 2982 combination

lucas定理裸题,表达式:C(n,m)%p=C(n/p,m/p)*C(n%p,m%p)%p 由于p为素数 根据费马小定理: 已知(a, p) = 1,则 a^p-1 ≡ 1 (mod p),  所以 a*a^p-2 ≡ 1 (mod p)。 也就是 (m!(n-m)!)的逆元为 (m!(n-m)!)^p-2#include<cstdio> #include<iostream> #defi

Magic_Sheep的博客 464

【原创教程】西门子1500与施耐德伺服的通讯以及调试

该函数块主要描述伺服的手动,左边的引脚Forward是指伺服手动正转,Backward是指伺服手动反转,Fast是指手动的某个方向为快速运行,TipPos手册上描述为固定值,WaitTIme是指伺服手动的相应时间,VeloSlow指伺服手动正常慢速运动的速度,VeloFast指伺服手动快速运动的速度,Acceleration是指伺服手动的加速度,Decelertion是指伺服手动的减速度。该函数块用于伺服停止,左边的引脚Execute为伺服停止执行,Deceleration含义为减速,Axis为轴。

Qinmingyue13的博客 1374

[BZOJ1512][VijosP1006]晴天小猪历险记

题目描述 在很久很久以前,有一个动物村庄,那里是猪的乐园(^_^),村民们勤劳、勇敢、善良、团结…… 不过有一天,最小的小小猪生病了,而这种病是极其罕见的,因此大家都没有储存这种药物。所以晴天小猪自告奋勇,要去采取这种药草。于是,晴天小猪的传奇故事便由此展开…… 这一天,他来到了一座深山的山脚下,因为只有这座深山中的一位隐者才知道这种药草的所在。但是上山的路错综复杂,由于小小猪的病情,晴天小猪想

UISG103的博客 695

测试体系详细介绍-xmind文件

测试体系详细介绍,经过两个月时间的研讨,重新阅读了“软件测试实战”、“测试架构师修炼之道”、“软件测试介绍”等测试类书籍,并结合自己的项目实践,汇总成测试体系。希望对大家有帮助。

828D_手册_828D简明调试手册_2019.pdf

SIEMENS西门子SINUMERIK 828D简明调试手册中文版,一共402页,调试准备,系统的连接,系统初始设定,PLC调试,驱动器调试,NC调试,刀具管理,师傅有话,机床日志,批量调试,网络功能,测量功能,扩展驱动调试,PLC功能,双通道调试,扩展应用功能,用户自定义界面,部件安装尺寸,机床参数列表,PLC接口地址

bzoj1512: [POI2006]Pro-Professor Szu

传送门 首先将便反向,这样就变成了从主楼到其他楼的路径数 然后我们大力tarjan求强连通分量。 发现一个强连通分量内又多于2个点显然是GG的。 其他随便拓扑排序就可以了。#include<cmath> #include<cstdio> #include<vector> #include<cstring> #include<cstdlib> #include<iostream> #inclu

zyy大蒟蒻的博客 725

pocketsphinx-0.1.15-cp39-cp39-win_amd64.whl.7z

语音识别库64位pocketsphinx-0.1.15-cp39-cp39-win_amd64.whl.7z

[BZOJ4173]数学(数论)

题目描述传送门题解实际上答案就是φ(n)∗φ(m)∗n∗m\varphi(n)*\varphi(m)*n*m 因为规律真心好找… 不过据说∑k∈S(n,m)φ(k)=n∗m\sum_{k\in S(n,m)}\varphi(k)=n*m是可以证明的,但是我目前还不会。。可能需要想很久(也不一定能想出来),以后再补吧。代码#include<algorithm> #include<iostream>

zyf2000 1084

【动力电池热管理】基于电-热耦合模型的脉冲电流预热策略优化:锂离子电池低温高效加热方法研究(含详细代码及解释)

内容概要:本文针对锂离子电池在低温环境下容量衰减严重的问题,研究了脉冲电流预热策略。通过实验获取电池低温性能数据,建立了电-热耦合模型,并采用动态规划算法优化脉冲电流的频率和幅值,以实现加热时间与电量消耗的最小化。最终提出的最优预热策略可在146秒内将电池从-15℃加热至0℃,加热速率达6.16℃/min,电量消耗为518mAh,相较于传统方法显著提升了加热效率。文中还详细阐述了模型构建、参数辨识、动态规划求解及与其他加热方式的对比分析,验证了该策略的优越性。; 适合人群:具备一定电化学基础知识和编程能力的科研人员、电池热管理系统工程师以及从事新能源汽车技术研发的相关技术人员;尤其适合关注锂电池低温性能改善与高效预热策略开发的专业人士。; 使用场景及目标:①应用于电动汽车冬季启动前的电池快速预热,提高低温下的可用容量与充电效率;②为电池管理系统(BMS)提供高效节能的加热控制算法设计依据;③支持低温环境下储能系统的热管理优化。; 阅读建议:建议结合文中提供的Python代码实现,深入理解电-热耦合建模与动态规划优化过程,重点关注参数辨识方法与代价函数设计,并可通过实际实验数据对模型进行校准与验证,进一步提升策略的实用性和鲁棒性。

bzoj1514: [POI2006]ZAB-Frogs

传送门 显然在求出最短距离之后是可以二分答案的。 我们考虑按照每列来计算每个点的最短距离。 显然可以发现,对于该列来说,每一行都可能有一个到该列最近的点,并且我们发现,如果某一行有两个坏点的话,假设分别为A,B,并且A到该列的距离最近,那么B显然不会对这一列的dis有任何影响。 所以我们显然可以在求之前预处理一下每一行的如果存在坏点的那个最近的坏点的坐标。 接下来,我们讨论坏点k,l

zyy大蒟蒻的博客 451

LA 4253 Archery

这个答案具有二分性,,因为你是知道应该往左还是往右的_ (:зゝ∠) _,给做出来的神犇跪了。

QWsin的博客 803

BZOJ 1515 [POI2006]Lis-The Postman (挖坑)欧拉回路+重构

BZOJ 1515 [POI2006]Lis-The Postman (挖坑)欧拉回路+重构

-Claude 1739

BZOJ 1512 [POI2006]Pro-Professor Szu Tarjan缩点+拓扑DP

BZOJ 1512 [POI2006]Pro-Professor Szu Tarjan缩点+拓扑DP

-Claude 2123

bzoj1524【POI2006】Pal

Trie+哈希

AaronPolaris 2549

bzoj 1512 [POI2006]Pro-Professor Szu tarjan dp

先tarjan缩点,然后拓扑dp。 似乎有一些细节。。。#include <bits/stdc++.h> using namespace std; #define N 1000010 #define inf 36501 int n,m,tot,top,cnt,scc,ans; int head[N],nex[N],to[N]; int deep[N],low[N],st[N],bel[N]; bo

make_it_for_good的博客 570

【BZOJ】1512 [POI2006]Pro-Professor Szu 强联通分量+拓扑

题目传送门以后不管打什么代码,一定要过心,不要因为这份代码打过很多遍就放松警惕:这题我因为读优打错了,WA了5发……心塞.jpg这题的正解是tarjan+拓扑,题目要求nn个点到主建筑的方案数,可以考虑主建筑到nn个点的方案数,显然答案不变。对于一个主建筑能到达的、节点数大于11的强连通分量,显然第一问直接输出zawsze。这题还有一个情况,有的点可能有自环,直接当做上面的那个情况考虑即可。剩下的情

Chester King 515

【BZOJ】【P1406】【AHOI2007】【密码箱】【题解】【数论】

传送门:www.lydsy.com/JudgeOnline/problem.php?id=1406 题意: 解 x^2%n=1

退役狗的专栏 1404

BZOJ 4116 Wf2015 Tours Tarjan

题目大意:给定一张nn个点mm条边的无向图,你需要选择一个颜色种类数kk,然后用这kk种颜色给每条边染色,要求对于图中任意一个简单环,每种颜色的边的数量都相同,求所有可行的kk考虑将边集EE拆成一些子集{E1,E2,E3,..}\{E_1,E_2,E_3,..\},满足任意一个简单环可以被拆成一些子集的和,且不存在两个子集合并后仍满足条件,那么答案就是gcd{|E1|,|E2|,|E3|,..}\g

世界 2447

数论学习笔记

素数:#include<iostream> #include<cstdio> #include<cstring> using namespace std; int p[10000000],a[100000001]; int main() { int i,t=0,j,n; scanf("%d",&n); a[1]=1; for (i=2;i<=n;++i)

Lcomyn的专栏 3221
上一篇: OI本月刷水记录
下一篇: 【BZOJ 3884】上帝与集合的正确用法
Lcomyn
博客等级 码龄12年 14粉丝 74原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值