http://acm.hdu.edu.cn/showproblem.php?pid=2281

又是一道Pell方程

化简构造以后的Pell方程为

求出其前15个解,但这些解不一定满足等式,判断后只有5个满足的情况,直接判断即可

求法可以参照上一篇日志: http://www.cnblogs.com/Felix-F/p/3223323.html

struct matrix
{
LL ma[][];
};
int n = ;
LL nn[],xx[];
matrix operator * (matrix a,matrix b)
{
matrix temp;
memset(temp.ma,,sizeof(temp.ma));
for(int i = ; i < n ; i++)
for(int j = ; j < n ; j++)
for(int k = ; k < n ; k++)
temp.ma[i][j] = temp.ma[i][j] + (a.ma[k][i] * b.ma[j][n-k-]);
return temp;
}
matrix operator + (matrix a,matrix b)
{
for(int i = ; i < n ; i++)
for(int j = ; j < n ; j++)
a.ma[i][j] = (a.ma[i][j] + b.ma[i][j]) ;
return a;
}
void init()
{
matrix a;
a.ma[][] = ;
a.ma[][] = ;
a.ma[][] = ;
a.ma[][] = ;
matrix temp = a;
nn[] = ;
xx[] = ;
int cnt = ;
for(int i = ;i <= ; i++)
{
if(i% == )
{
LL s1 = temp.ma[][] * + temp.ma[][] * ;
nn[cnt] = (s1 - ) / ;
LL s2 = temp.ma[][] * + temp.ma[][] * ;
xx[cnt++] = s2;
}
temp = temp*a;
}
}
int main()
{
init();
LL N;
while(cin>>N && N)
{
for(int i = ; i >= ; i--)
{
if(N >= nn[i])
{
cout<<nn[i]<<" "<<xx[i]<<endl;
break;
}
}
}
return ;
}

最新文章

  1. &gt;hibernate-session中的方法
  2. UINavigationItem UINavigationBar 关系分析[转]
  3. iOS网络-01-NSURLRequest与NSURLConnection
  4. SharePoint 2013 Nintex Workflow 工作流帮助(十三)
  5. poj1651 区间dp
  6. Java 理论与实践: 处理 InterruptedException(转)
  7. JAVA printWriter中write()和println()区别
  8. CloseHandle 函数--关闭一个句柄
  9. “无文件”恶意软件的威力:悄无声息一夜之间从ATM机中窃取80万美元
  10. php面试之数据结构和算法
  11. Objective-C 中的 BOOL
  12. NOIP 2019游记
  13. 数据库和SQL面试题基础知识(持续更新)
  14. MySQL 中触发器的应用
  15. stock
  16. IOS 应用官方接口地址
  17. 05-Vim命令合集
  18. windows 下获取当前进程的线程数量
  19. MFC将二进制文件导入资源后释放
  20. 使用嵌入文档Here Documents

热门文章

  1. js 阻断网页选中和右键
  2. Android4.42-Settings源代码分析之蓝牙模块Bluetooth(上)
  3. Tensorflow MNIST 数据集測试代码入门
  4. 微软CEO纳德拉拥抱Linux意欲何为?
  5. Connect the Campus (Uva 10397 Prim || Kruskal + 并查集)
  6. nyoj--38--布线问题(克鲁斯卡尔)
  7. CSS响应式布局到底是什么?
  8. POJ 2436 二进制枚举
  9. Alisha&#39;s Party
  10. js获取当前时间年份,处理年月日