题意:
n(2*10^5)个元素的排列有n!种 用Perm(x)表示字典序第x的序列(从0开始) 用Ord(排列y)表示排列y的字典序 现在输入排列p和q 求 Perm([Ord(p)+Ord(q)]%n!)
思路:
容易想到 对于第i位p[i] 如果它是第d小的数字 那么说明比它小的d-1个数字所产生的全排列都已经计数过了
例子 35142 第4位是4 它是第2小的...
分类:
其他好文 时间:
2015-01-12 22:36:35
阅读次数:
234
我排第几个
时间限制:1000 ms | 内存限制:65535 KB
难度:3
描述
现在有"abcdefghijkl”12个字符,将其所有的排列中按字典序排列,给出任意一种排列,说出这个排列在所有的排列中是第几小的?
输入第一行有一个整数n(0
随后有n行,每行是一个排列;输出输出一个整数m,占一行,m表示排列是第几位;样例输入
3
abcdefghijkl
hgebkf...
分类:
其他好文 时间:
2015-01-12 22:34:48
阅读次数:
139
B题:
先处理出已有卡牌,然后进行dfs,dfs有个很大的剪枝,就是当前位置如果字典序小于了,那么后面就不用继续放了,直接用组合数学进行计算即可,如果大于就不用考虑了,如果等于才继续往后搜,这样的话,搜等于只要在字典序相等的一条路上搜,时间可以接受
E题:模拟即可,不存在无解情况
G题:先全部数字GCD一遍,如果不为1,就是无解,如果为1,那么构造答案,其实只要拿第一个数字,可以其他每个数字...
分类:
其他好文 时间:
2015-01-12 00:26:22
阅读次数:
314
题目地址传送门:URAL 1547
题目大意:Vova忘记了在Timus OJ上面的密码了,密码是由小写字母(a~z)组成的,他只知道密码长度不大于n位,现在他需要用m台数据处理器对密码进行检索,其中检索顺序需要满足字典序。比如他的密码长度不大于2,那就需要依次检索a,b,..........,y,z,aa,ab,..........,zy,zz.输出每台数据检索器的检索区间,使得总的检索效率可...
分类:
其他好文 时间:
2015-01-10 22:24:00
阅读次数:
287
---恢复内容开始---题目链接:BZOJ - 1692题目分析首先,有个比较简单的贪心思路:如果当前剩余字符串的两端字母不同,就选取小的字母,这样显然是正确的。然而若两端字母相同,我们怎么选取呢?这时我们要从两端分别向内部比较,看那一端向内的字符串字典序小。比如这个字符串 ABCDBA,从左端向内...
分类:
编程语言 时间:
2015-01-10 16:31:36
阅读次数:
188
题目链接:BZOJ - 3238题目分析显然,这道题就是求任意两个后缀之间的LCP的和,这与后缀数组的联系十分明显。求出后缀数组后,求出字典序相邻两个后缀的LCP,即 Height 数组。那么我们可以用这个 Height 数组求出所有后缀之间 LCP 的和。我们用 f[i] 表示字典序第 i 的后缀...
分类:
其他好文 时间:
2015-01-10 11:13:55
阅读次数:
214
解题思路:给出一列数an,再给出一个矩阵d[i][j],在满足d[i][j]=1的情况下,称a[i]和a[j]可以交换,问经过交换最后得到字典序最小的数列a[n]首先是贪心的思想,大的能换就换到后面去,这样尽可能使小的在前面。然后是判断a[i]和a[j]能不能交换, 如果d[i][j]=1,表示a[...
分类:
其他好文 时间:
2015-01-09 07:00:44
阅读次数:
223
点击打开链接
题目意思是求矩阵相乘的运算次数,
设A size为n*s,B size为s*m
那么A*B运算量为n*m*s.
注意括号里面的优先级,并且依次累加即可,并且没有不合法的序列。
思路是先对输入的n个矩阵编号按照字典序排序,因为每次两个矩阵相乘会得到一个新的矩阵,编号可以设置成在n的编号加1,并且重新压入栈中。
#include
#include
#include ...
分类:
其他好文 时间:
2015-01-07 20:54:25
阅读次数:
182
题意:
给一个俄罗斯方块的游戏截图,其中每个输入块都用字母A-Z标志出,求输入块的字典序最小的输入顺序。
分析:
即求字典序最小的拓扑序。
代码:
//poj 2530
//sep9
#include
using namespace std;
char map[54][32];
int g[32][32];
int d[32];
int vis[32];
int main()
{
i...
分类:
编程语言 时间:
2015-01-07 18:48:33
阅读次数:
385
http://acm.hdu.edu.cn/showproblem.php?pid=5131现场赛第一个题,水题。题意:给水浒英雄排序,按照杀人数大到小,相同按照名字字典序小到大。输出。然后对每个查询的名字,计数有多少人杀人数大于他,输出个数加1,计数有多少人杀人数相同,但名字小,如果没有不输出,否...
分类:
其他好文 时间:
2015-01-06 22:58:33
阅读次数:
262