题目链接:点击查看

题目大意:给出两个复数X和B,问满足公式且字典序最小的解是什么:

题目分析:因为涉及到了复数,所以我们有必要提前说一下复数的加减乘除:

加法:(a+b*i)+(c+d*i)=(a+c)+(b+d)*i

减法:(a+b*i)-(c+d*i)=(a-c)+(b-d)*i

乘法:(a+b*i)*(c+d*i)=(ac-bd)+(ad+bc)*i

除法:

这样一来,我们可以模拟一下复数的除法,并配合dfs搜索一下每个即可,每次都判断一下是否可以进行,可以整除的话话就可以转化为,然后变为,依次类推即可

对了,因为题目中说了一定是大于等于零并且小于B的范式,所以这就是我们的枚举范围

代码:

#include<iostream>
#include<cstdio>
#include<cmath>
#include<string>
#include<ctime>
#include<cstring>
#include<algorithm>
#include<stack>
#include<queue>
#include<map>
#include<sstream>
using namespace std;typedef long long LL;const int inf=0x3f3f3f3f;const int N=110;int a,b,A,B;int n,sum;//n:记录到达an sum:记录B的范式的值(即枚举范围) int ans[N];bool dfs(int cnt,int a,int b)
{if(cnt>100)return false;if(a==0&&b==0){n=cnt-1;return true;}for(int i=0;i<sum;i++){if(((a-i)*A+b*B)%(A*A+B*B)==0&&(b*A-(a-i)*B)%(A*A+B*B)==0){ans[cnt]=i;if(dfs(cnt+1,(((a-i)*A+b*B)/(A*A+B*B)),((b*A-(a-i)*B)/(A*A+B*B))))return true;}}return false;
}int main()
{
//  freopen("input.txt","r",stdin);int w;cin>>w;while(w--){scanf("%d%d%d%d",&a,&b,&A,&B);sum=ceil(sqrt(A*A+B*B));if(dfs(0,a,b)){printf("%d",ans[n]);for(int i=n-1;i>=0;i--)printf(",%d",ans[i]);printf("\n");}elseprintf("The code cannot be decrypted.\n");}return 0;
}

POJ - 1381 Secret Code(dfs+高斯整数)相关推荐

  1. 洛谷 P3102 [USACO14FEB]秘密代码Secret Code

    P3102 [USACO14FEB]秘密代码Secret Code 题目描述 Farmer John has secret message that he wants to hide from his ...

  2. 数论+dfs+复数除法剪枝 Secret Code hdu1111

    X = a0 + a1B + a2B2 + ...+ anBn. (其实是B^2....这个坑人) 满足复数除法的剪枝真的是强大啊 枚举每一个ai, 然后 除复数B, 这里剪枝,判断是否可以整除,复数 ...

  3. POJ 1190 生日蛋糕 【DFS + 极限剪枝】

    题目传送门:http://poj.org/problem?id=1190 参考剪枝:https://blog.csdn.net/nvfumayx/article/details/6653111 生日蛋 ...

  4. poj 2034 Anti-prime Sequences(dfs)

    http://poj.org/problem?id=2034 大致题意:给出区间[n,m],对这个区间的数进行排列使得相邻的2个.3个......d个数之和都不是素数.输出字典序最小的. 思路:裸的d ...

  5. poj 3321 Apple Tree(dfs序+树状数组求和模型)

    题目链接:http://poj.org/problem?id=3321 解题思路: 先dfs求出序列,将子树转化到dfs序列的区间内,接下来就是简单的树状数组求和模型了.水题. #include< ...

  6. POJ 1753 Flip Game DFS枚举

    看题传送门:http://poj.org/problem?id=1753 DFS枚举的应用. 基本上是参考大神的.... 学习学习.. #include<cstdio> #include& ...

  7. POJ 2386 Lake Counting DFS水水

    http://poj.org/problem?id=2386 题目大意: 有一个大小为N*M的园子,雨后积起了水.八连通的积水被认为是连接在一起的.请求出院子里共有多少水洼? 思路: 水题~直接DFS ...

  8. HNUSTOJ-1675 Morse Code(DFS+字典序搜索)

    1675: Morse Code 时间限制: 2 Sec  内存限制: 128 MB 提交: 73  解决: 33 [提交][状态][讨论版] 题目描述 摩尔斯电码(英语:Morse Code)是一种 ...

  9. POJ 2455 Secret Milking Machine 二分枚举 + 最大流

    题目:http://poj.org/problem?id=2455 题意:给定一张无向图,有n个节点p条边,要求在图中从1到n找到t条路径,并且使这t条路径中的最长边最小,输出这个最小的最长边 思路: ...

最新文章

  1. 特征选择、特征选择方法
  2. Mac OS X 10.10, Eclipse+ADT真机调试代码时,Device Chooser中不显示真机的解决方式
  3. Throwable.异常
  4. 几种软负载均衡策略分析
  5. 什么浏览器好用_还在用手机自带浏览器么?这个不足1M的浏览器却功能更加强大...
  6. Flink的处理背压​原理及问题-面试必备
  7. 如何在 SAP BTP Java 应用里使用 SQLite 数据库
  8. mysql 5.7 io 性能 aio_深入理解MySQL的InnoDB引擎
  9. python常用标准库的基本用法_[每天一个python小技巧]Python中标准库OS的常用方法总结...
  10. 解决Android 11 获取不到Serial number方法
  11. 计算机毕业设计Java文档资料管理系统(源码+系统+mysql数据库+Lw文档)
  12. win7不用破解工具,最简单的去黑屏办法
  13. 关于网站项目计划书的写法
  14. mac装机必备的电池管理工具:App Tamer Mac版
  15. TYVJ p1035 棋盘覆盖
  16. Java后端利用腾讯云短信服务发短信
  17. i春秋第二届春秋欢乐赛登山者writeup
  18. Ubuntu系统安装搜狗(sougou for linux)输入法
  19. Codeforces Round #451 (Div. 2)
  20. 矩阵运算库 C语言 (Matrix_hub)

热门文章

  1. SpringSecurity认证流程分析
  2. SpringSecurity 权限控制之开启动态权限注解支持
  3. 在项目中缓存是如何使用的?为什么要用缓存?缓存使用不当会造成什么后果?
  4. J .U.C 简介-Lock
  5. 请解释各种自动装配模式的区别?
  6. 从源码深处体验Spring核心技术--基于注解的IOC初始化
  7. request获得请求参数
  8. Zookeeper_实际应用讲解
  9. Dubbo支持的协议
  10. basequickadapter详解_BaseRecyclerViewAdapter(持续更新!)