4104: [Thu Summer Camp 2015]解密运算

Time Limit: 10 Sec  Memory Limit: 512 MB

Description

对于一个长度为N的字符串,我们在字符串的末尾添加一个特殊的字符"."。之后将字符串视为一个环,从位置1,2,3,...,N+1为起点读出N+1个字符,就能得到N+1个字符串。

 
比如对于字符串“ABCAAA”,我们可以得到这N+1个串:
 
ABCAAA.
 
BCAAA.A
 
CAAA.AB
 
AAA.ABC
 
AA.ABCA
 
A.ABCAA
 
.ABCAAA
 
接着我们对得到的这N+1个串按字典序从小到大进行排序(注意特殊字符“.”的字典序小于任何其他的字符)结果如下:
 
.ABCAAA
 
A.ABCAA
 
AA.ABCA
 
AAA.ABC
 
ABCAAA.
 
BCAAA.A
 
CAAA.AB
 
最后,将排序好的N+1个串的最后一个字符取出,按照顺序排成一个新的字符串,也就是上面这个表的最后一列,就是加密后的密文“AAAC.AB”。
 
请通过加密后的密文求出加密前的字符串。
 

Input

第一行有两个整数N,M,分别表示加密前的字符串长度和字符集大小,其中字符用整数1,2,3,...,M编号,添加的特殊字符“."用0编号。
 
第二行为N+1个整数,表示加密后的字符串。
 

Output

输出仅一行,包含N个整数,用空格隔开,依次表示加密前字符串中每个字符的编号。

 

Sample Input

6 3
1 1 1 3 0 1 2

Sample Output

1 2 3 1 1 1

HINT

#i (i=1~4)    N=5*(i+1) M<=3

#5~6    N,M<=50 字符串中字符互不相同
#7~8    N,M<=1000 字符串中字符互不相同
#9~12    N,M<=1000
#13~#20    N,M<=200000
对密文以字母为第一关键字,位置为第二关键字,排序
  1. #include<cstdio>
  2. #include<algorithm>
  3. #define N 200011
  4. using namespace std;
  5. struct node
  6. {
  7. int ch;
  8. int id;
  9. }e[N];
  10. int n,m;
  11. bool cmp(node p,node q)
  12. {
  13. if(p.ch!=q.ch) return p.ch<q.ch;
  14. return p.id<q.id;
  15. }
  16. int main()
  17. {
  18. scanf("%d%d",&n,&m);
  19. for(int i=;i<=n+;i++) scanf("%d",&e[i].ch),e[i].id=i;
  20. sort(e+,e+n+,cmp);
  21. int now=e[].id;
  22. while(now!=)
  23. {
  24. printf("%d ",e[now].ch);
  25. now=e[now].id;
  26. }
  27. }
 

[Thu Summer Camp 2015]解密运算的更多相关文章

  1. 【BZOJ 4104】 4104: [Thu Summer Camp 2015]解密运算 (智商)

    4104: [Thu Summer Camp 2015]解密运算 Time Limit: 10 Sec  Memory Limit: 512 MBSubmit: 370  Solved: 237 De ...

  2. BZOJ4104:[Thu Summer Camp 2015]解密运算——题解

    https://www.lydsy.com/JudgeOnline/problem.php?id=4104 对于一个长度为N的字符串,我们在字符串的末尾添加一个特殊的字符".".之 ...

  3. BZOJ4104 [Thu Summer Camp 2015]解密运算 【乱搞】

    题目链接 BZOJ4104 题解 我们将已知字符排序,由循环就可以得到一个对应关系 如样例就是: 0->第5行 1->第1行 1->第2行 1->第3行 1->第5行 2 ...

  4. bzoj 4104 [Thu Summer Camp 2015]解密运算——思路

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=4104 想了很久,想出一个 nlogn (也许是 n2logn )的,可惜空间是 n2 . 已 ...

  5. bzoj4104 [Thu Summer Camp 2015]解密运算

    传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=4104 [题解] 脑洞+找规律做出来的.. 我用样例作为说明吧 样例给了我们这个 AAAC.A ...

  6. bzoj:4105: [Thu Summer Camp 2015]平方运算

    Description   Input 第一行有三个整数N,M,p,分别代表序列的长度.平方操作与询问操作的总次数以及在平方操作中所要模的数.   接下来一行N个数代表一开始的序列{X1,X2,... ...

  7. 4105: [Thu Summer Camp 2015]平方运算

    首先嘛这道题目只要知道一个东西就很容易了:所有循环的最小公约数<=60,成一条链的长度最大为11,那么我们就可以用一个很裸的方法.对于在链上的数,我们修改直接暴力找出并修改.对于在环上的数,我们 ...

  8. 2018.10.18 bzoj4105: [Thu Summer Camp 2015]平方运算(线段树)

    传送门 线段树妙题. 显然平方几次就会循环(打表证明不解释). 然后所有环长度的lcmlcmlcm不大于70. 因此维护一下当前区间中的节点是否全部在环上. 不是直接暴力到叶子节点修改. 否则整体打标 ...

  9. BZOJ4105 [Thu Summer Camp 2015]平方运算 【线段树】

    题目链接 BZOJ4105 题解 平方操作orz,虽说应该是线段树,但是不会维护啊QAQ 小瞧一眼题解... 平方成环?环长\(lcm\)小于\(60\)? 果然还是打表找规律题.... 那就很好做了 ...

随机推荐

  1. 关于解决MySort

    关于解决MySort 那天老师教给我们关于sort的用法以及String类中的split方法.在一定程度上告诉我们sort用法的原理和一些特别的用法后,老师叫我们用JAVA尝试去设计一个"M ...

  2. OOP 1.4 内联函数和重载函数函数参数缺省值

    1.内联函数 存在的背景:函数调用存在开销(调用时候参数压栈,返回地址压栈:返回时从栈取出返回地址,跳转到返回地址.总共需要几条指令的开销).如果函数指令较少,调用多次,函数调用的开销占比大. 内联函 ...

  3. iptables 工具的使用

    试验建议:关闭CentOS 7 或 CentOS 6的防火墙 (systemctl stop firewalld ; systemctl disable firewalld 或 service ipt ...

  4. 团队项目-BUG排查-ADT工程 To Android Studio 一整天的排查日记

    4-22 10:44至4-23 0:45 ①打开Eclipse从Github上Clone MathsApp到本机,报错'Unable to resolve target'android-19' ②尝试 ...

  5. JS高级 2

    递归:函数自己调用自己 在JavaScript中唯一能产生作用域的东西是 函数!js中只有函数可以创建作用域 词法作用域,也叫做静态作用域 //就是在代码写好的那一刻,变量和函数的作用域就已经确定了, ...

  6. fsocket发送post实现异步请求

    function triggerRequest($url, $post_data = array(), $cookie = array()){ //可以通过POST或者GET传递一些参数给要触发的脚本 ...

  7. 编写shell时,遇到let: not found错误及解决办法

    #!/bin/bashi=1sum=0while [ $i -le 100 ]do  let sum=sum+$i  let i++ done 在写一个简单的循环脚本时,报错 let: not fou ...

  8. IIS部署时failed to execute url 解决方法

    web.config中增加如下节点: <system.webServer>  <validation validateIntegratedModeConfiguration=&quo ...

  9. 第153天:关于HTML标签嵌套的问题详解

    HTML标签 1.块级元素 div.h1~h6.address.blockquote.center.dir.dl.dt.dd.fieldset.form.hr.isindex.menu.noframe ...

  10. 【.Net】从字符串数组中寻找数字的元素

    那是写一个类别来处理数字元素并收集起来. 开发程序,解决方法不是唯一的.相同的功能实现,方法不止一个. 参考下面代码: class Ak { private string[] _stringArray ...