bzoj4104 [Thu Summer Camp 2015]解密运算
传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=4104
【题解】
脑洞+找规律做出来的。。
我用样例作为说明吧
样例给了我们这个
A
A
A
C
.
A
B
看起来没啥用
这是那个矩阵的最后一列对吧。
第一列是什么呢?我们都知道,按字典序排列。
.
A
A
A
A
B
C
由于这是一个环,所以第一个字母和最后一个字母是相邻的。换句话说,我们只要知道第一个字母和最后一个字母的对应关系,我们就能知道环长什么样了。
问题在于。有很多个重复的数,我们怎么知道对应的顺序呢?
如果我要比较A的顺序,我们不妨画个图
_ _ _ _ _ _ A
_ _ _ _ _ _ A
_ _ _ _ _ _ A
_ _ _ _ _ _ C
_ _ _ _ _ _ .
_ _ _ _ _ _ A
_ _ _ _ _ _ B
如果我把第一个A作为首位,和第二个A作为首位,哪个字典序大?
要明确的是,第一个A的前面6个位置组成的字符串一定小于第二个A前面6个位置组成的字符串。
所以把A提前,仍然是第一个A作为首位的字符串<第二个A作为首位的字符串。
我们就可以把A标号,然后进行对应了。
. _____A1
A1_____A2
A2_____A3
A3_____C
A4_____.
B _____A4
C _____B
这样就非常好了,然后我们从"."开始,把"______"看成边,沿着边走一遍就得到了这个环。
稍微看下就知道要从那个方向开始走了。
然后就解决了这道题了。
# include <stdio.h>
# include <string.h>
# include <iostream>
# include <algorithm>
// # include <bits/stdc++.h> using namespace std; typedef long long ll;
typedef long double ld;
typedef unsigned long long ull;
const int M = 5e5 + ;
const int mod = 1e9+; # define RG register
# define ST static int n, m, v[M], nx[M], beg;
struct pa {
int x, pos;
pa() {}
pa(int x, int pos) : x(x), pos(pos) {}
friend bool operator < (pa a, pa b) {
return a.x < b.x || (a.x == b.x && a.pos < b.pos);
}
}p[M]; int main() {
cin >> n >> m;
for (int i=; i<=n+; ++i) {
scanf("%d", &v[i]);
p[i] = pa(v[i], i);
if(v[i] == ) beg = i;
}
sort(p+, p+n+);
for (int i=; i<=n+; ++i)
nx[i] = p[i].pos;
int cur = beg;
while(nx[cur] != beg) {
cur = nx[cur];
printf("%d ", v[cur]);
}
return ;
}
bzoj4104 [Thu Summer Camp 2015]解密运算的更多相关文章
- BZOJ4104 [Thu Summer Camp 2015]解密运算 【乱搞】
题目链接 BZOJ4104 题解 我们将已知字符排序,由循环就可以得到一个对应关系 如样例就是: 0->第5行 1->第1行 1->第2行 1->第3行 1->第5行 2 ...
- [Thu Summer Camp 2015]解密运算
4104: [Thu Summer Camp 2015]解密运算 Time Limit: 10 Sec Memory Limit: 512 MB Description 对于一个长度为N的字符串,我 ...
- 【BZOJ 4104】 4104: [Thu Summer Camp 2015]解密运算 (智商)
4104: [Thu Summer Camp 2015]解密运算 Time Limit: 10 Sec Memory Limit: 512 MBSubmit: 370 Solved: 237 De ...
- BZOJ4104:[Thu Summer Camp 2015]解密运算——题解
https://www.lydsy.com/JudgeOnline/problem.php?id=4104 对于一个长度为N的字符串,我们在字符串的末尾添加一个特殊的字符".".之 ...
- bzoj 4104 [Thu Summer Camp 2015]解密运算——思路
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=4104 想了很久,想出一个 nlogn (也许是 n2logn )的,可惜空间是 n2 . 已 ...
- bzoj:4105: [Thu Summer Camp 2015]平方运算
Description Input 第一行有三个整数N,M,p,分别代表序列的长度.平方操作与询问操作的总次数以及在平方操作中所要模的数. 接下来一行N个数代表一开始的序列{X1,X2,... ...
- 4105: [Thu Summer Camp 2015]平方运算
首先嘛这道题目只要知道一个东西就很容易了:所有循环的最小公约数<=60,成一条链的长度最大为11,那么我们就可以用一个很裸的方法.对于在链上的数,我们修改直接暴力找出并修改.对于在环上的数,我们 ...
- 2018.10.18 bzoj4105: [Thu Summer Camp 2015]平方运算(线段树)
传送门 线段树妙题. 显然平方几次就会循环(打表证明不解释). 然后所有环长度的lcmlcmlcm不大于70. 因此维护一下当前区间中的节点是否全部在环上. 不是直接暴力到叶子节点修改. 否则整体打标 ...
- BZOJ4105 [Thu Summer Camp 2015]平方运算 【线段树】
题目链接 BZOJ4105 题解 平方操作orz,虽说应该是线段树,但是不会维护啊QAQ 小瞧一眼题解... 平方成环?环长\(lcm\)小于\(60\)? 果然还是打表找规律题.... 那就很好做了 ...
随机推荐
- Linux YUM (Yellowdog Updater, Modified) Commands for Package Management
Linux YUM (Yellowdog Updater, Modified) Commands for Package Management In this article, we will lea ...
- 适合pc端的移动拖拽,分享一下。
h5新加的特性拖拽事件,但是只适合PC端哦.不多说了上代码 <!DOCTYPE html> <html> <head> <title></titl ...
- Azure Cloud Service - PaaS
使用Azure Cloud Service有一段时间了,前阵子在公司内部做一个Cloud Service培训的时候就在想,能不能用一幅图把Cloud Service所涉及的概念都罗列出来.于是就有了下 ...
- Git Cheatshell - Pro Git
A git cheatshell based on the book: http://www.git-scm.com/book/en/v2. Repository Configuration git ...
- Python os.walk() 简介
Table of Contents 1. os.walk目录遍历 1.1. os.walk 1.2. 例子 1.2.1. 测试topdown 1.2.2. 运行时修改遍历目录 2. 参考资料 os.w ...
- python re模块实现计算器
def mul_div(exp): #计算乘除 while True: ret = re.search('[\d\.]+[\*\/]-?[\d\.]+', exp) if ret: atom_exp ...
- Java语言基础---两变量间的交换
使用中间变量交换两个变量的值 int a = 10 , b = 11 , m; m = a; a = b; b = m; 不使用中间变量交换两个变量的值 int a = 10; int b = 11; ...
- 3771: Triple
3771: Triple 链接 题意 n个斧头,每个斧头的价值都不同(开始时没注意到),可以取1个,2个,3个斧头组成不同的价值,求每种价值有多少种组成方案(顺序不同算一种) 分析: 生成函数 + 容 ...
- 6.bootstrap 将文本内容关联一个动作(手机端导航适配)&在超小尺寸下显示,屏幕变大后消失
1.情景:这是出现在手机端导航适配的,点击文本MENU可以出现下拉的list 解决方法: 1.首先要想到,MENU只有两个状态,因此可以用checkbox实现 2.将MENU放在label标签里面,l ...
- Hadoop 原理总结
Hadoop 原理总结 一.Hadoop技术原理 Hdfs主要模块:NameNode.DataNode Yarn主要模块:ResourceManager.NodeManager 常用命令: 1)用 ...