X = a0 + a1B + a2B2 + ...+ anBn. (其实是B^2。。。。这个坑人)

满足复数除法的剪枝真的是强大啊

枚举每一个ai, 然后 除复数B, 这里剪枝,判断是否可以整除,复数的除法公式自己推

/*
ID: meixiny1
PROG: test
LANG: C++11
*/
#include <cstdio>
#include <cstdlib>
#include <iostream>
#include <algorithm>
#include <cstring>
#include <climits>
#include <string>
#include <vector>
#include <cmath>
#include <stack>
#include <queue>
#include <set>
#include <map>
#include <sstream>
#include <cctype>
using namespace std;
typedef long long ll;
typedef pair<int ,int> pii;
#define MEM(a,b) memset(a,b,sizeof a)
#define CLR(a) memset(a,0,sizeof a);
const int inf = 0x3f3f3f3f;
const int MOD = 1e9 + 7;
#define PI 3.1415926535898
//#define LOCAL
ll limit,ok;
ll xr,xi,c,d;
ll ans;
int dfs(ll xr,ll xi,int deep){ll a ,b = xi,x,y;int check = 0;if(deep>100)return 0;if(xi==0 && xr<=limit && ((xr>=0 && deep == 0 ) || (xr>0))){ok = 1;printf("%lld",xr);return 1;}for(int i=0;i<=limit;i++){a =xr - i;x = (a*c+d*b)%ans;y = (c*b-a*d)%ans;if(x || y)continue;x=(a*c+d*b)/ans;y=(c*b-a*d)/ans;check |= dfs(x,y,deep+1);if(check){printf(",%d",i);return 1;}}return 0;
}
int main()
{
#ifdef LOCALfreopen("in.txt", "r", stdin);
//    freopen("out.txt","w",stdout);
#endifint t;scanf("%d",&t);while(t--){ok = 0;scanf("%lld%lld%lld%lld",&xr,&xi,&c,&d);ans = c*c+d*d;if(sqrt(ans)==(ll)sqrt(ans))limit = (ll)sqrt(ans)-1;else limit = (ll)sqrt(ans);dfs(xr,xi,0);if(ok)printf("\n");else printf("The code cannot be decrypted.\n");}return 0;
}

数论+dfs+复数除法剪枝 Secret Code hdu1111相关推荐

  1. ALGO-22 数的划分(DFS,经典剪枝)

    ALGO-22 数的划分 时间限制: 1 Sec 内存限制: 128 MB 题目描述 将整数n分成k份,且每份不能为空,任意两份不能相同(不考虑顺序). 例如:n=7,k=3,下面三种分法被认为是相同 ...

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

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

  3. 深度优先搜索(DFS) 总结(算法+剪枝+优化总结)

    深度优先搜索(DFS) 总结(算法+剪枝+优化总结) 本文中会引用部分实例.文献资料来自不同的作者之手,由于资料整理比较困难,转载地址不在文中列举.如有侵权请联系我更换或删除!对于提供题解思路的各位大 ...

  4. matlab的求实部,[合集]请教matlab中复数除法如何求实部虚

    发信人: Casper (A WAVELET OF ZOMBIES IS APPROACHING!), 信区: MathTools 标  题: [合集]请教matlab中复数除法如何求实部虚部 发信站 ...

  5. HLS / Chisel 实现CORDIC算法高性能复数除法

    CORDIC(坐标旋转数字算法)是一种计算三角.双曲和其他数学函数的数字算法,每次运算均产生一次结果输出.这使我们能够根据应用需求调整算法精度:增加运算迭代次数可以得到更精确的结果.CORDIC 是只 ...

  6. POJ - 1381 Secret Code(dfs+高斯整数)

    题目链接:点击查看 题目大意:给出两个复数X和B,问满足公式且字典序最小的解是什么: 题目分析:因为涉及到了复数,所以我们有必要提前说一下复数的加减乘除: 加法:(a+b*i)+(c+d*i)=(a+ ...

  7. poj1381(复数除法+dfs)

    为什么把这题放在搜索栏下呢,因为这题我做不出来的原因不是不会复数运算,而是没理解dfs. 题意:已知复数 X = XR + XIi 和 B = BR + BIi,X = a0 + a1B + a2B^ ...

  8. HDU 1010 Tempter of the Bone DFS(奇偶剪枝优化)

    需要剪枝否则会超时,然后就是基本的深搜了 #include<cstdio> #include<stdio.h> #include<cstdlib> #include ...

  9. AT2362 [AGC012B] Splatter Painting(思维、dfs染色、剪枝)

    AT2362 [AGC012B] Splatter Painting 题意 给一个n个点m条边的无向图,有q次操作 第i次操作,给出v,d,c,把所有到点v的距离不超过d的点都染上颜色c 问最后每个点 ...

最新文章

  1. windows路径操作API函数
  2. JWT 和 JJWT,别再傻傻分不清了!
  3. ionic项目相关的操作命令
  4. leetcode刷题实录:3
  5. 无悔入华夏怎么一直显示服务器,无悔入华夏完整版
  6. springboot+dynamic多数据源配置
  7. C#中Invoke的用法(转)
  8. 开发人员MySQL调优-理论篇
  9. svm解决兵王问题_机器学习: svm
  10. 单片机8×8点阵显示简单汉字的程序_干货 | 浅析单片机制作贪吃蛇游戏
  11. IBM PHP教程链接
  12. 【MySQL】RPM包安装
  13. macOS 如何设置壁纸
  14. 微信小程序公农历转换的实现
  15. 传统的6d位姿估计fangfa1_6D姿态估计算法汇总(上)
  16. XiaoHu日志 6/29~7/30
  17. discuz论坛个人备案自动关闭站点降低SEO风险的方法
  18. 从剧情架构角度分析《妄想破绽》
  19. 也谈如何高效阅读源码
  20. R语言学习笔记——向量

热门文章

  1. 个税专项附加扣除操作指引
  2. Adobe Acrobat 图标异常的解决办法
  3. 资本扎堆?自动驾驶“梦幻开局”
  4. 15个Matplotlib常用Python绘图代码
  5. java短信内容加链接_Java加腾讯云实现短信验证码功能
  6. mac电脑开发环境配置-jdk、maven、git
  7. idea 设置方法显示参数提示
  8. lg g6 android 9,LG G6再无秘密:Android 7.0+18:9圆角屏
  9. get,post请求方式详解
  10. 魔兽争霸错误:此版本之魔兽争霸3需要特定语言版本之windows