HDU 3292 【佩尔方程求解 && 矩阵快速幂】

TOPCon vs PERC:2024年光伏电站投资,哪种技术更划算? 本文深入分析了2024年光伏电站投资中TOPCon与PERC技术的财务表现。通过对比初始系统成本、全生命周期发电量及环境适应性,指出当前TOPCon组件与PERC价差已显著缩小,其更高的转换效率和更低的衰减率能有效降低度电成本并提升项目内部收益率,为投资者提供更具长期价值的方案。 阅读详情

任意门:http://acm.hdu.edu.cn/showproblem.php?pid=3292

No more tricks, Mr Nanguo

Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others)
Total Submission(s): 587    Accepted Submission(s): 400


Problem Description
Now Sailormoon girls want to tell you a ancient idiom story named “be there just to make up the number”. The story can be described by the following words.
In the period of the Warring States (475-221 BC), there was a state called Qi. The king of Qi was so fond of the yu, a wind instrument, that he had a band of many musicians play for him every afternoon. The number of musicians is just a square number.Beacuse a square formation is very good-looking.Each row and each column have X musicians.
The king was most satisfied with the band and the harmonies they performed. Little did the king know that a member of the band, Nan Guo, was not even a musician. In fact, Nan Guo knew nothing about the yu. But he somehow managed to pass himself off as a yu player by sitting right at the back, pretending to play the instrument. The king was none the wiser. But Nan Guo's charade came to an end when the king's son succeeded him. The new king, unlike his father, he decided to divide the musicians of band into some equal small parts. He also wants the number of each part is square number. Of course, Nan Guo soon realized his foolish would expose, and he found himself without a band to hide in anymore.So he run away soon.
After he leave,the number of band is Satisfactory. Because the number of band now would be divided into some equal parts,and the number of each part is also a square number.Each row and each column all have Y musicians.
 

 

Input
There are multiple test cases. Each case contains a positive integer N ( 2 <= N < 29). It means the band was divided into N equal parts. The folloing number is also a positive integer K ( K < 10^9).
 

 

Output
There may have many positive integers X,Y can meet such conditions.But you should calculate the Kth smaller answer of X. The Kth smaller answer means there are K – 1 answers are smaller than them. Beacuse the answer may be very large.So print the value of X % 8191.If there is no answers can meet such conditions,print “No answers can meet such conditions”.
 

 

Sample Input
2 999888
3 1000001
4 8373
 

 

Sample Output
7181
600
No answers can meet such conditions
 

 

Author
B.A.C
 

 

Source

 

题意概括:

滥竽充数的故事,一开始所有人可以排成一个 X*X 的方阵, 去掉一个人后 所有人可以排成 N 个 Y*Y 的方阵,

求满足上述条件的第K大的总人数。

 

解题思路:

佩尔方程模板题

可根据关系列出方程: x*x - D*( y*y) = 1;

暴力求出特解;

 

解的递推式为:

Xn  = Xn-1  × X1 + d × Yn-1 ×Y1

Yn  = Xn-1  × Y1 + Yn-1  × X1

 

矩阵快速幂递推:

 

AC code:

 1 #include <bits/stdc++.h>
 2 #define INF 0x3f3f3f3f
 3 #define LL long long
 4 using namespace std;
 5 const int MAXN = 2;
 6 const int mod = 8191;
 7 typedef struct
 8 {
 9     int m[MAXN][MAXN];
10 }Matrix;
11 Matrix per, d;
12 int x, y, D;
13 
14 void Find_ans()
15 {
16     y = 1;
17     while(1){
18         x = (int)sqrt(D*y*y+1.0);
19         if(x*x - D*y*y == 1) break;
20         y++;
21     }
22 }
23 
24 void init()
25 {
26     d.m[0][0] = x%mod;
27     d.m[0][1] = D*y%mod;
28     d.m[1][0] = y%mod;
29     d.m[1][1] = x%mod;
30     for(int i = 0; i < MAXN; i++)
31         for(int j = 0; j < MAXN; j++)
32         per.m[i][j] = (i==j);
33 }
34 
35 Matrix multi(Matrix a, Matrix b)
36 {
37     Matrix c;
38     for(int i = 0; i < MAXN; i++)
39     for(int j = 0; j < MAXN; j++){
40         c.m[i][j] = 0;
41         for(int k = 0; k < MAXN; k++)
42             c.m[i][j] += a.m[i][k] * b.m[k][j];
43         c.m[i][j]%=mod;
44     }
45     return c;
46 }
47 
48 Matrix qpow(int k)
49 {
50     Matrix p = d, ans = per;
51     while(k){
52         if(k&1){
53             ans = multi(ans, p);
54             k--;
55         }
56         k>>=1;
57         p = multi(p, p);
58     }
59     return ans;
60 }
61 
62 int main()
63 {
64     int K;
65     while(~scanf("%d %d", &D, &K)){
66         int ad = (int)sqrt(D+0.0);
67         if(ad*ad == D){
68             puts("No answers can meet such conditions");
69             continue;
70         }
71         Find_ans();
72         init();
73         d = qpow(K-1);
74         printf("%d\n", (d.m[0][0]*x%mod+ d.m[0][1]*y%mod)%mod);
75     }
76     return 0;
77 }
View Code

 

SQLite学习——Dapper初识 dapper下载:https://www.nuget.org/packages/Dapper/1.40.0 阅读详情

相关推荐

基于 parallels ubuntu 20.04 LTS (focal) 的ros+px4+gazebo 安装

基于 parallels ubuntu 20.04 LTS (focal) 的ros+px4+gazebo 安装。

weixin_40132006的博客 2241

hdu3293(pell方程+快速幂)

裸的pell方程。 然后加个快速幂. No more tricks, Mr Nanguo Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others)Total Submission(s): 320    Accepted Submission(s): 207 Problem Descr...

weixin_34343308的博客 203

Mac用户必看:Parallels Desktop 18.1.1最新破解版安装与优化全攻略(附资源)

本文为Mac用户提供Parallels Desktop 18.1.1的详细安装与优化指南,涵盖虚拟化技术选型、专业级配置流程及性能调优技巧。重点解析Parallels Desktop在图形加速、系统资源调度方面的核心优势,并分享生产力增强技巧与典型应用场景实战方案,帮助用户最大化利用这一高效虚拟化工具。

weixin_29240343的博客 828

矩阵快速幂算法及相关应用(含python源码)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录一、快速幂算法(概述)二、整数快速幂(源码)三、矩阵快速幂(源码)四、矩阵快速幂的应用1.矩阵构造举例:2.例题: 一、快速幂算法(概述) ①快速幂就是快速算底数的n次幂。其时间复杂度为 O(log₂N), 与朴素的O(N)相比效率有了极大的提高。 ②快速幂算法的核心思想就是每一步都把指数分成两半,而相应的底数做平方运算。这样不仅能把非常大的指数给不断变小,所需要执行的循环次数也变小,而最后表示的结果却一直不会变。 ③快速幂可以.

weixin_46447549的博客 6483

实战教程:用YOLOv11+PyQt5打造工地安全帽检测系统(附完整数据集)

本文提供了一份完整的实战指南,详细介绍了如何利用YOLOv11目标检测模型与PyQt5界面库,从零开始构建一个智能工地安全帽检测桌面应用。内容涵盖高质量数据集的准备与标注、YOLOv11模型训练与调优,以及如何使用PyQt5开发流畅、专业的图形用户界面,最终实现一个可实际部署的AI安全监控系统。

plum99的博客 738

SAP数据导入工具(LSMW) 超级详细教程(批量导入内部订单)

用户提了个需求,让我批量导入内部订单几百个内部订单。我本打算用写段ABAP 代码来调用 BAPI (BAPI_INTERNALORDER_CREATE)就可以了。但想到我很久没有用过LSMW 了,都快要忘记了。于是我采用LSMW的方式,完成了任务。并把过程记录下来,形成教程方便我以后回头查看,分享出来也希望对大家有帮助。

IT小职员 2万+

【python数据结构】快速幂&矩阵快速幂&应用

import numpy as np class Solution: def mat_pow(self, A, n): m = A.shape[0] B = np.eye(m, dtype=np.int64) while n > 0: if (n & 1): B = np.mod(np.matmul(B,A), self.p).asty...

original_recipe的博客 1056

跟着Synopsys报告,一步步拆解车规芯片FMEDA计算(含公式与避坑点)

本文详细解析了车规芯片FMEDA计算的全流程,基于Synopsys报告拆解实战指南,涵盖基础失效率建模、安全机制效能评估及安全指标合成等关键步骤。通过公式解析、数据准备清单和避坑点分享,帮助工程师掌握ISO26262标准下的硬件量化分析技术,提升车载系统设计可靠性。

weixin_30460489的博客 195

HDU 3292 佩尔方程入门+矩阵快速幂--你想解二元二次方程吗?

题意:求x^2-n*y^2=1 按x排序第k大的解。 一.原理 佩尔方程:X^2-d Y^2=1,d不为完全平方数的整数,有无穷多个解 为什么d不能为完全平方数: (x+y)(x-y)=1 x只能取正负1,y取0,就不会有无穷多组解 递推式如下: 于是构造矩阵: 二.具体实现: ①search(): x1,y1可以暴力解得,因为以x排序,x与...

zjyang12345的博客 777

YOLOv11 改进 - 特征融合 | 替换 C3k2 涨点:GELAN 融合 CSP+ELAN 提精度

本文介绍了可编程梯度信息(PGI)和广义高效层聚合网络(GELAN)与 YOLOv11 的结合,以解决深度网络数据传输时的信息丢失问题。PGI 能为目标任务提供完整输入信息,计算目标函数以更新网络权重。GELAN 作为轻量级网络架构,由 SPPELAN、ELAN1、RepNCSPELAN4 等模块组成。我们将 GELAN 代码集成进 YOLOv11, 实验脚本显示,结合 GELAN 的 YOLOv11 在 MS COCO 数据集目标检测任务中或有良好表现。

魔改工程师的博客 1243

RK3588,V4l2 读取Gmsl相机, Rga yuv422转换rgb (dma), 实现零拷贝

RK3588, 使用V4l2 读取 gmsl 相机,获得yuv422格式图像, 使用 rga 转换 rgb 图像。减少cpu占用率. 内存管理方式采用 dma,实现零拷贝.

J。 1263

HDU3293:sort

Problem Description As is known to all, long long ago sailormoon once was an association of fighters. Till now, sailormoon is also an association of girls. Owe to some unknown reasons, girls are nece

ACM!荣耀之路! 1977

【嵌入式Linux驱动开发】二十四、Linux I2C 驱动上手尝试

  人的前程关于眼界、关乎格局。   志之所趋,无远弗届,穷山复海不能限也;   志之所向,无坚不入,锐兵精甲不能御也。 一、I2C驱动框架简介   Linux内核将 I2C 驱动分为两部分: ①、 I2C 总线驱动, I2C 总线驱动就是 SOC 的 I2C 控制器驱动,也叫做 I2C 适配器驱动。 ②、 I2C 设备驱动, I2C 设备驱动就是针对具体的 I2C 设备而编写的驱动。 1....

悟已往之不谏 知来者之可追 1071

佩尔方程求解问题

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3292 题目大意:讲述的是滥竽充数的故事。有一个乐队,可以站成一个边长为x的正方形,也可以减去一个人,然后站成若干个边长为y的正方形,很明显乐队人数不是唯一的,现在让你找出第k大的乐队人数。 分析:根据题意可以提炼出二元不定方程x^2-D*y^2=1,典型的佩尔方程。首先我们知道,若

AC_Gibson的专栏 4499

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

hdu——3292(数论之佩尔方程)

题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=3292 解析:当N为平方数的时候显然没解,然后先枚举找到一个特解(最小的),然后利用佩尔方程的通用矩阵形式加上快速幂求解。 #include #include #include #include #include #include #include #include using na

luoshenzhisi 907

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

HDU 3292 佩尔方程+矩阵快速幂

No more tricks, Mr Nanguo Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others) Problem Description Now Sailormoon girls want to tell you a ancient idiom sto

black_miracle的博客 484

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

【HDU3292】数学_佩尔方程

1.题目链接。说的是滥竽充数的故事,但是抽象出来之后就是这样一个问题:原来有x*x个人,走了一个,把这x*x-1划分成N个y*y,求满足的(x,y),但是因为数量很多,所以求第k大的x,并且输出x%8191. 2.分析:根据题意我们就知道这个方程是怎么列的:x^2-Ny^2=1。就是求第k大的x。这是典型的佩尔方程,是数论种最经典的内容之一。它和线性代数里面的很多东西有着千丝万缕的关系。对于这个...

YG爱木木 604

HDU 3292 No more tricks, Mr Nanguo(佩尔方程,矩阵快速幂)

题目: LINK

Napoleon 922

hdu 3292 No more tricks, Mr Nanguo(矩阵快速幂解佩尔方程)

题意: 给N和K,求方程: X^ 2 - N * Y ^ 2 = 1。的第K大的X值,若没有这样的X值存在,则输出balbalbalabalabla... 解析: 佩尔方程的求解。 若N为完全平方数则无解。 若有解,先暴力出佩尔方程的最小特解x1,y1,然后根据迭代公式递推可得矩阵:             | Xk |    -    | X1    D * y1 |  ^

渐近自由 638

HDU - 3292(佩尔方程)

题意的意思就是给你个N,K; 求第K小的X,满足X2−N∗Y2=1X^2-N*Y^2=1X2−N∗Y2=1(X,Y要为正整数); 显然这是一个佩尔方程。 定义:若一个不定方程具有这样的形式:x2−ny2=1x^2-ny^2=1x2−ny2=1 则称此二元二次不定方程为佩尔方程. 在整数域解中 (1)nnn为完全平方数时 则原式化为x2−(ny)2=1x^2-(\sqrt{n}y)^2=1x2−(n...

weixin_43965698的博客 337

【算法竞赛学习笔记】佩尔方程-数学提升计划

title : 佩尔方程 date : 2021-10-31 tags : ACM,数学 author : Linno 佩尔方程 形如x2−dy2=1(d>1且d不为完全平方数)x^2-dy^2=1(d>1且d不为完全平方数)x2−dy2=1(d>1且d不为完全平方数)的不定方程称为佩尔方程 设两个解为(x1,y1)和(x2,y2),那么有{x12−dy12=1x22−dy22=1得到(x12−dy12)(x22−dy22)=1展开得到x12x22−dx12y22−dy12x22+d2.

SC_Linno的博客 812

HDU 3292 pell方程

题意:求x^2+n*y^2=1 按x排序第k大的解。 题目就是求佩尔方程,用矩阵连乘的方法,当n为完全平方数的时候无解。 如果我们求出Pell方程的最小正整数解后,就可以根据递推式求出所有的解。 则根据上式我们可以构造矩阵,然后就可以快速幂了。 这样就可以求出第k大的解。 HDU329

韩小侠的专栏 已迁移至lssea.com 1131

HDU 3292 No more tricks, Mr Nanguo [佩尔方程+矩阵]【数论】

题目链接:http://acm.split.hdu.edu.cn/showproblem.php?pid=3292———————————————————–. No more tricks, Mr NanguoTime Limit: 3000/1000 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others) Total Submi

Tabris的博客 613

No more tricks, Mr Nanguo HDU - 3292 【佩尔方程矩阵快速幂求第K大解】

No more tricks, Mr Nanguo HDU - 3292 题意:输入D,K  ,求 的第K大X解 用佩尔方程的矩阵表示,马上会总结到(佩尔方程专题总结) 用JAVA写失败了。不知道问题出在哪里 #include&lt;cstdio&gt; #include&lt;vector&gt; #include&lt;cmath&gt; #include&lt;math.h&gt...

Haipai1998的博客 455

hdu3292

佩尔方程,详见《数论概论》(原书第三版) 网上其他解题方法大都是用矩阵,其实快速幂也可以。 参考:http://blog.youkuaiyun.com/z690933166/article/details/9746843 (今天中午作为“娘家人”去见了队友的男朋友,尴尬,不知道该怎么办,希望没有给队友丢人) (我们都是小怪兽,有一天会被正义的奥特曼杀死。——江南 《龙族》 ...

177

HDU 3292 (佩尔方程 矩阵快速幂)

题目链接:点击这里题意:求解佩尔方程x2−ny2=1x^2-ny^2=1的第k大解。首先暴力求出佩尔方程的最小特解,然后根据迭代式子 [xkyk]=[x1y1d×y1x1]k−1[x1y1]\begin{bmatrix} x_k \\ y_k\\ \end{bmatrix} =\begin{bmatrix} x_1 & d\times y_1\\ y_1 & x_1 \\ \end{bmatri

morejarphone~ 463
上一篇: HDU 6467 简单数学题 【递推公式 && O(1)优化乘法】(广东工业大学第十四届程序设计竞赛)...
下一篇: POJ 1320 Street Numbers 【佩尔方程】
莜莫oO
博客等级 码龄9年 7粉丝 226原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值