Secret Code

问题描述

The Sarcophagus itself is locked by a secret numerical code. When somebody wants to open it, he must know the code and set it exactly on the top of the Sarcophagus. A very intricate mechanism then opens the cover. If an incorrect code is entered, the tickets inside would catch fire immediately and they would have been lost forever. The code (consisting of up to 100 integers) was hidden in the Alexandrian Library but unfortunately, as you probably know, the library burned down completely.

But an almost unknown archaeologist has obtained a copy of the code something during the 18th century. He was afraid that the code could get to the ``wrong people'' so he has encoded the numbers in a very special way. He took a random complex number B that was greater (in absolute value) than any of the encoded numbers. Then he counted the numbers as the digits of the system with basis B. That means the sequence of numbers anan-1, ..., a1a0 was encoded as the number

X = a0 + a1B + a2B2 + ...+ anBn.

Your goal is to decrypt the secret code, i.e. to express a given number X in the number system to the base B. In other words, given the numbers X and Byou are to determine the ''digit'' a0 throughan.

输入

The input consists of T test cases. The number of them (T) is given on the first line of the input file. Each test case consists of one single line containing four integer numbers Xr, Xi, BrBi (|Xr|,|Xi| <= 1000000|Br|,|Bi| <= 16). These numbers indicate the real and complex components of numbers X and B, i.e. X = Xr + i.XiB = Br + i.BiB is the basis of the system (|B| > 1), X is the number you have to express.

输出

Your program must output a single line for each test case. The line should contain the ''digits'' anan-1, ..., a1a0, separated by commas. The following conditions must be satisfied:

    • for all i in {0, 1, 2, ...n}0 <= ai < |B|
    • X = a0 + a1B + a2B2 + ...+ anBn
    • if n > 0 then an <> 0
    • n <= 100

If there are no numbers meeting these criteria, output the sentence "The code cannot be decrypted.". If there are more possibilities, print any of them.

样例输入

4
-935 2475 -11 -15
1 0 -3 -2
93 16 3 2
191 -192 11 -12

样例输出

8,11,18
1
The code cannot be decrypted.
16,15

同HDU 1111

题意:给定复数s和复数k,求整数序列ai使得\(s = a_{0}*k^0 + a_{1}*k^1 + a_{2}*k^2 + ...+ a_{n}*k^n\),其中\(n<=100\),\(0<=a_{i}<|k|\),\(|k|>1\)
分析:整式变型得:\(s=a_{0}+(a_{1}+(a_{2}+...)*k)*k\)

复习一下复数运算:
A、若\(z=a+b*i\)
     则\(|z|=\sqrt{a^{2}+b^{2}}\)
B、若\(z1=a+b*i\),\(z2=c+d*i\)
     则:\(z1/z2\)
          \(=(a+b*i)/(c+d*i)\)
          \(=(a+b*i)*(c-d*i)/[(c+d*i)*(c-d*i)]\) 同时乘分母的共轭复数
          \(=(ac+bd)/(c^2+d^2)+[(bc-ad)/(c^2+d^2)]*i\)

#include <iostream>
#include <cstdio>
#include <cstring>
#include <cmath>
using namespace std;
#define ll long long
#define INF 0x3f3f3f3f
#define N 10010 struct Complex
{
ll x,y;
Complex(){}
Complex(ll x,ll y):x(x),y(y){}
ll mode2(){return x*x+y*y;}
Complex operator - (ll t){
return Complex(x-t,y);
}
bool operator % (Complex t){
ll t1=(x*t.x+y*t.y)%t.mode2();
ll t2=(y*t.x-x*t.y)%t.mode2();
return t1||t2;
}
Complex operator / (Complex t){
return Complex((x*t.x+y*t.y)/t.mode2(),(y*t.x-x*t.y)/t.mode2());
}
}s,k;
ll UP;
ll flag;
ll ans[N],ansd; void dfs(Complex now,ll step)
{
if(flag) return;
if(step>) return;
if(!now.mode2())
{
flag=;
ansd=step;
return;
}
for(ll i=;i*i<UP && !flag;i++)
{
Complex tmp=now-i;
if(tmp%k==)
{
ans[step]=i;
dfs(tmp/k,step+);
}
}
}
int main()
{
ll T;
scanf("%lld",&T);
while(T--)
{
flag=;
scanf("%lld%lld%lld%lld",&s.x,&s.y,&k.x,&k.y);
UP=k.mode2();
dfs(s,);
if(!flag)
printf("The code cannot be decrypted.\n");
else
{
if(!ansd) printf(""); //一开始就为0
for(ll i=ansd-;i>=;i--)
{
if(i!=ansd-) printf(",");
printf("%lld",ans[i]);
}
printf("\n");
}
}
return ;
}

[swustoj 679] Secret Code的更多相关文章

  1. Android Secret Code

    我们很多人应该都做过这样的操作,打开拨号键盘输入*#*#4636#*#*等字符就会弹出一个界面显示手机相关的一些信息,这个功能在Android中被称为android secret code,除了这些系 ...

  2. hdu.1111.Secret Code(dfs + 秦九韶算法)

    Secret Code Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Tota ...

  3. Android 编程下的 Secret Code

    我们很多人应该都做过这样的操作,打开拨号键盘输入 *#*#4636#*#* 等字符就会弹出一个界面显示手机相关的一些信息,这个功能在 Android 中被称为 Android Secret Code, ...

  4. The secret code

    The secret code Input file: stdinOutput file: stTime limit: 1 sec Memory limit: 256 MbAfter returnin ...

  5. 洛谷 P3102 [USACO14FEB]秘密代码Secret Code 解题报告

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

  6. HDU 1111 Secret Code(数论的dfs)

    Secret Code Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u Submit ...

  7. Secret Code

    Secret Code 一.题目 [NOIP模拟赛A10]Secret Code 时间限制: 1 Sec  内存限制: 128 MB 提交: 10  解决: 6 [提交][状态][讨论版] 题目描述 ...

  8. 【微信】根据appid, secret, code获取用户基本信息

    function getUserInfo(){ $appid = "yourappid"; $secret = "yoursecret"; $code = $_ ...

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

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

随机推荐

  1. ASP.NET生命周期事件顺序

    普通页面运行规律 Page_PreInitPage_InitPage_InitCompletePage_PreLoadPage_LoadButton1事件触发!Page_LoadCompletePag ...

  2. python中文件的复制

    python中文件的复制 python的os模块有很多文件目录相关的函数,但没有提供直接复制文件的函数,当然可以通过边都边写的方式复制文件.想要直接复制文件可以通过shutil模块 shutil模块是 ...

  3. WPF 多线程处理(2)

    WPF 多线程处理(1) WPF 多线程处理(2) WPF 多线程处理(3) WPF 多线程处理(4) WPF 多线程处理(5) WPF 多线程处理(6) WPF UI 设计需要自动适应窗体大小,那么 ...

  4. [Learn Android Studio 汉化教程]第二章:Android Studio概述(一)

    [Learn Android Studio ]第二章:Android Studio概述(一) Android Studio是一个视窗化的开发环境.为了充分利用有限的屏幕空间,不让你束手束脚,Andro ...

  5. android 注销

    1.在个人中心退出系统MainActivity 2.清空保存的登录数据 3.打开登录LoginActivity 方法: SharedPreferencesManager.getInstance(mCo ...

  6. EasyUI Layout Full - Not Correct in IE8

    EasyUI Full布局在IE10,IE9下正常,IE8无效果,标记一下有知道的可以留个言! 如图 IE 10 IE 8

  7. 2336: [HNOI2011]任务调度 - BZOJ

    一道随机算法的题目 随便用什么随机算法 首先我们可以想到枚举类型3的最终类型,然后再做 先贪心出一个较优的序列,首先我们知道肯定是在A机器上先做完类型1的事件再做类型2的事件,机器B也类似,因为这些没 ...

  8. spring4+hibernate3

    环境说明:spring4.0+hibernate3 数据库:oracle 连接池:c3p0 项目结构: lib中的jar: 一.配置spring.xml 说明:这里采用的配置模式将hibernateT ...

  9. [转载]Sublime Text 2 - 性感无比的代码编辑器!程序员必备神器!跨平台支持Win/Mac/Linux

    代码编辑器或者文本编辑器,对于程序员来说,就像剑与战士一样,谁都想拥有一把可以随心驾驭且锋利无比的宝剑,而每一位程序员,同样会去追求最适合自己的强大.灵活的编辑器,相信你和我一样,都不会例外. 我用过 ...

  10. 分享SCI写作经验和一些工具