HDU 1111 - Secret Code (DFS + 一点数学 + 模拟)
来源:互联网 发布:mac 窗口超出屏幕 编辑:程序博客网 时间:2024/06/10 17:18
题意
题意看了半小时才懂。
有两个复数,X和B。
现在要求出
思路
假设现在从头开始算。
复数除法:
那么枚举
然后递归下去计算即可。
这题的数据好像有点多。一开始没关缓冲区同步TLE了。
不过用cin比用scanf慢了一倍
代码
LL Xi, Xr, Bi, Br, limit;
int cnt, ans[MAXN];
bool flag;
void DFS(LL r, LL ii, int pos)
{
if (pos > 100 || flag) return;
if (ii == 0 && r == 0)
{
cnt = pos;
flag = true;
return;
}
for (int i = 0; i*i < limit; i++)
{
ans[pos] = i;
LL a = (r-i) * Br + ii*Bi, b = ii*Br - (r-i) * Bi;
if (a % limit == 0 && b % limit == 0)
{
DFS(a / limit, b / limit, pos + 1);
if (flag) return;
}
}
}
int main()
{
//ROP;
ios::sync_with_stdio(0);
int T, i, j;
cin >> T;
while (T--)
{
flag = false;
cin >> Xr >> Xi >> Br >> Bi;
limit = Br*Br + Bi*Bi;
DFS(Xr, Xi, 0);
if (!flag) cout << "The code cannot be decrypted.";
else
{
cout << ans[cnt-1];
for (int i = cnt-2; i >= 0; i--) cout << "," << ans[i];
}
cout << endl;
}
return 0;
}
0 0
- HDU 1111 - Secret Code (DFS + 一点数学 + 模拟)
- hdu 1111 Secret Code dfs
- 【dfs】hdu 1111 Secret Code
- HDU 1111 Secret Code DFS 解题报告
- hdu 1111 Secret Code
- 【HDU】 1111 Secret Code
- HDU 1111 Secret Code 深搜
- hdu1111 Secret Code ----复数+DFS
- HDOJ1111 Secret Code(数论+DFS)
- 秦九韶算法—— HDU 1111 Secret Code
- 数论+dfs+复数除法剪枝 Secret Code hdu1111
- HDU 3699--DFS+模拟
- hdu 1111 Secret Code(复数·展开·深搜·输出)
- poj_1850 Code(组合数学/dfs)
- HDU 6153 A Secret(扩展KMP+数学推导)
- HDU 5438 Ponds dfs模拟
- 数学C - Secret Research
- Top Secret Microsoft Code
- Android开发,用户按返回键的处理
- java根据模板生成word文件
- 第十三章:13.1.2 进程管理-终止进程
- 最新抢救三天仍不幸离世 杭州一40岁男子被鱼刺卡住
- 20150123 【 ARM 】 C语言+函数
- HDU 1111 - Secret Code (DFS + 一点数学 + 模拟)
- 自考《操作系统概论》之宏观理解
- virtualbox 启动时报Kernel driver not installed (rc=-1908) 的错误
- 判断回文字符(包含去空格)
- 将控件与Control类的变量关联时要注意的一个问题
- IPSec VPN和SSL VPN:对比两种VPN的安全风险
- 个人安装系统记录
- malloc和free函数详解
- 不能完成此操作, 因为发生意外错误(错误代码-51)