HDOJ-1287 破译密码(数学)
2015-07-27 16:43
417 查看
异或性质:
C=A XOR B--> C XOR B=A
枚举异或的字母,如果是合法的,那么所有解密出来的字母都在[A,Z]之间。
自己被优先级坑了一回
if((text[i]^key) <'A' || (text[i]^key)>'Z')
(text[i]^key)一开始没加括号......
基础啊,既然没有背过优先级,为了保险,不把握的地方就加上括号吧。
C=A XOR B--> C XOR B=A
枚举异或的字母,如果是合法的,那么所有解密出来的字母都在[A,Z]之间。
自己被优先级坑了一回
if((text[i]^key) <'A' || (text[i]^key)>'Z')
(text[i]^key)一开始没加括号......
基础啊,既然没有背过优先级,为了保险,不把握的地方就加上括号吧。
#include <cstdio> #include <cstdlib> #include <cstring> using namespace std; const int MAXN=1000; int text[MAXN+5]; void work(int n) { int i,key,flag; for(i = 0; i < n; i++) scanf("%d",&text[i]); for(key = 'A'; key <= 'Z'; key++) { flag = 1; for(i = 0; i < n; i++) if((text[i]^key) <'A' || (text[i]^key)>'Z') { flag = 0; } if(flag) break; } for(i = 0; i < n; i++) printf("%c",text[i]^key); printf("\n"); } int main() { int n; while(~scanf("%d",&n)) work(n); return 0; }
相关文章推荐
- HDU 1247 Hat’s Words (Trie·指针实现)
- ios 判断小数点. 后几位 && 小数点后有数据显示数据,没有则不显示数据
- 注册JDBC驱动的三种方式
- JPA 注解 OneToMany和ManyToOne
- JS禁止选中文本方法
- suse11下创建分区,并设置开机自动挂载
- hive安装
- Python获取CPU使用率、内存使用率、网络使用状态
- allowInvalidCertificates
- nyoj 括号配对问题(栈)
- 自考
- 【试水CAS-4.0.3】第08节_CAS客户端配置单点登出
- Windows下pip安装包报错:Microsoft Visual C++ 9.0 is required Unable to find vcvarsall.bat
- Virtualbox网络设置和无UI启动
- 怎么通过 Microsof Office Project 2010 来写功能开发计划
- Android 用户界面【level 1】
- Android SDK Android NDK Android Studio 官方下载地址
- 不重复随机数列生成算法
- 玩转Nodejs的集群
- nyoj269VF