首页 > 其他分享 >1236. Decoding Task

1236. Decoding Task

时间:2022-12-10 14:56:34浏览次数:43  
标签:10 1236 Task end int Decoding XOR 加密 first

1236. Decoding Task

https://acm.timus.ru/problem.aspx?space=1&num=1236

 

思路

  1. 对于带空格串加密结果,第一个字符61,K1K2 XOR 32 = 61,可以算出K1K2
  2. 对于原始串加密结果,第一个字符05, K1K2 XOR C1C2 = 05, 可以算出C1C2
  3. 对于带空格串加密结果,第二个字符07, K3K4 XOR C1C2 = 07, 可以算出 K3K4
  4. 对于原始串加密结果,第二个字符26, K3K4 XOR C3C4 = 26, 可以算出C3C4
  5. 对于带空格串加密结果,第三个字符28, K5K6 XOR C3C4 = 28, 可以算出 K3K4
  6. ...
  7. ...
  8. ...

 

 

Code

https://blog.csdn.net/qq_38231051/article/details/82392330

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char a[20004];
char b[20004];
char c[20004];
 
int ten(int i,char* x)
{
    int k;
    if(x[2*i]>='A'){
        k = (10+x[2*i]-'A')*16;
    }else
        k = (x[2*i]-'0')*16;
    if(x[2*i+1]>='A'){
        k += (10+x[2*i+1]-'A');
    }else
        k += (x[2*i+1]-'0');
    return k;
}
 
void setnum(int first,int end,int i)
{
    if(first>=10){
        c[2*i] = 'A'+first-10;
    }else
        c[2*i] = '0'+first;
    if(end>=10){
        c[2*i+1] = 'A'+end-10;
    }
    else
        c[2*i+1] = '0'+end;
 
}
 
void getit(int len)
{
    int first,end;
    int i=0,j=0;
    int temp=32;
    int result;
    int A=0;
    A = ten(0,b);
    result = A^temp;
    first = result/16;
    end = result%16;
    setnum(first,end,i);
    ++i;
    int k=0;
    for(k=0;k<len/2;++k)
    {
        temp = result^ten(k,a);
        A = ten(k+1,b);
        result = A^temp;
        first = result/16;
        end = result%16;
        setnum(first,end,k+1);
        ++i;
    }
    c[(k+1)*2]='\0';
 
}
 
int main()
{
    int temp,len;
    while(scanf("%s %s",a,b)!=EOF){
        getit(strlen(a));
        printf("%s\n",c);
    }
}

 

https://blog.csdn.net/worldvagrant/article/details/108608292

 

标签:10,1236,Task,end,int,Decoding,XOR,加密,first
From: https://www.cnblogs.com/lightsong/p/16971577.html

相关文章

  • 【集成学习(下)】Task 12 Blending学习笔记
    1.导言在前几个章节中,我们学习了关于回归和分类的算法,同时也讨论了如何将这些方法集成为强大的算法的集成学习方式,分别是Bagging和Boosting。本章我们继续讨论集成学习方法......
  • 【集成学习(下)】Task13 Stacking
    基于前面对Blending集成学习算法的讨论,我们知道:Blending在集成的过程中只会用到验证集的数据,对数据实际上是一个很大的浪费。为了解决这个问题,我们详细分析下Blending到底哪......
  • My Task09 Boosting的思路与Adaboost算法 笔记
    文章目录1.导论2.Boosting方法的基本思路3.Adaboost算法Zm越小证明分类分得越对总结:数学家太强了,respect1.导论Bagging思想的实质是:通过Bootstrap的方式对全样本数据集......
  • Task04 学习GPT
    文章目录​​前言​​​​1GPT2和语言模型​​​​1.1什么是语言模型​​​​1.2语言模型的Transformer​​​​1.3与BERT的一个不同之处​​​​1.4Transformer模块......
  • 【集成学习(上)】My_Task06_掌握分类问题的评估及超参数调优 笔记
    文章目录​​评估模型的性能并调参:​​​​当类别为两类时,可以绘制混淆矩阵与ROC曲线​​评估模型的性能并调参:更详细的可以查看大佬的知乎:https://zhuanlan.zhihu.com/p......
  • Task5 作者信息关联 笔记
    文章目录​​任务5:作者信息关联​​​​5.1任务说明​​​​5.2数据处理步骤​​​​5.3社交网络分析​​​​5.3.1图类型​​​​5.3.2图统计指标​​​​5.4具体代......
  • 线程池ThreadPoolTaskExecutor的同步及异步使用
    参考信息本人参考的是这一篇,描述方面比本人好得多:springboot线程池的使用和扩展VisiableThreadPoolTaskExecutor背景:简略记一下,笔记:目标是想在springboot服务下,自......
  • Java中的Runnable、Callable、Future、FutureTask的区别与示例
    Java中存在Runnable、Callable、Future、FutureTask这几个与线程相关的类或者接口,在Java中也是比较重要的几个概念,我们通过下面的简单示例来了解一下它们的作用于区别。Ru......
  • 使用AsyncTask异步加载图片
    主要看看AsyncTask如何使用:MainActivity.java1.publicclassMainActivityextendsActivity{2.privatestaticfinalStringTAG="MainActivity";3.privat......
  • Springboot 使用 Async (内置线程池)执行异步任务(对比WebAsyncTask的使用)
    使用Async执行异步任务@SpringBootApplication@EnableAsyncpublicclassApplication{publicstaticvoidmain(String[]args){SpringApplication.run(Applicati......