[swustoj 679] Secret Code
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 an, an-1, ..., a1, a0 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, Br, Bi (|Xr|,|Xi| <= 1000000, |Br|,|Bi| <= 16). These numbers indicate the real and complex components of numbers X and B, i.e. X = Xr + i.Xi, B = Br + i.Bi. B 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'' an, an-1, ..., a1, a0, 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的更多相关文章
- Android Secret Code
我们很多人应该都做过这样的操作,打开拨号键盘输入*#*#4636#*#*等字符就会弹出一个界面显示手机相关的一些信息,这个功能在Android中被称为android secret code,除了这些系 ...
- hdu.1111.Secret Code(dfs + 秦九韶算法)
Secret Code Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Tota ...
- Android 编程下的 Secret Code
我们很多人应该都做过这样的操作,打开拨号键盘输入 *#*#4636#*#* 等字符就会弹出一个界面显示手机相关的一些信息,这个功能在 Android 中被称为 Android Secret Code, ...
- The secret code
The secret code Input file: stdinOutput file: stTime limit: 1 sec Memory limit: 256 MbAfter returnin ...
- 洛谷 P3102 [USACO14FEB]秘密代码Secret Code 解题报告
P3102 [USACO14FEB]秘密代码Secret Code 题目描述 Farmer John has secret message that he wants to hide from his ...
- HDU 1111 Secret Code(数论的dfs)
Secret Code Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u Submit ...
- Secret Code
Secret Code 一.题目 [NOIP模拟赛A10]Secret Code 时间限制: 1 Sec 内存限制: 128 MB 提交: 10 解决: 6 [提交][状态][讨论版] 题目描述 ...
- 【微信】根据appid, secret, code获取用户基本信息
function getUserInfo(){ $appid = "yourappid"; $secret = "yoursecret"; $code = $_ ...
- 洛谷P3102 [USACO14FEB]秘密代码Secret Code
P3102 [USACO14FEB]秘密代码Secret Code 题目描述 Farmer John has secret message that he wants to hide from his ...
随机推荐
- The Black Hole of Numbers (strtoint+inttostr+sort)
For any 4-digit integer except the ones with all the digits being the same, if we sort the digits in ...
- div中加入iframe,可以实现Ajax的功能
div中加入iframe,可以实现Ajax的功能,如果查询的时候,比如说城市的选择,用Ajax去实现, 在.net 可以考虑用UpdatePanel,但是点击了查询刷新表格(表格需要重新刷新加载,非纯 ...
- 云主机上搭建squid3代理服务器
目录 目录 具体流程 修改配置文件 问题 维基整理 代理服务器 Squid (软件) SOCKS SOCKS代理 参考:http://raysmond.com/node/79 具体流程 在服务器上安装 ...
- EXTJS 4.2 资料 将store 传到后台
var lstAddRecord = new Array(); store.each(function (record) { lstAddRecord.push(record.data); }); E ...
- eclipse中切换jre后报错:Java compiler level does not match the version of the installed Java project facet.
项目移除原来的jre环境lib后,添加本地的jre,报错如下: Java compiler level does not match the version of the installed Java ...
- Partition an array around an interger
Partition an array of integers around a value such taht all elements less than x come before element ...
- [转载]html5直接在网页上播放视频音频兼容所有浏览器
文章给大家分享一个html5直接在网页上播放视频兼容所有浏览器,有需要的同学可参考. HTML5可以用video标签来播放视频 当前,video 元素支持三种视频格式: 格式 IE Firefox O ...
- DX 的.x 文件
template Header { <3D82AB43-62DA-11cf-AB39-0020AF71E433> WORD major; WORD minor; DWORD flags;} ...
- [BEC][hujiang] Lesson02 Unit1:Working life ---Reading
2 1.1Working Life p7 reading attitudes to work Question6: 对于Attitude问题 1 I be willing/ unwilling to ...
- jmeter HTTP信息头管理器使用一例
最近在测试过程中遇到一个问题,被测系统会检测http header:如果不包含制定内容会引发302跳转操作,从而是测试达不到效果.解决办法,增加http 信息头管理器,直接上图 此处注意: 1.此处“ ...