hdu 5224 Tom and paper
题意:
给出一个1~n的排列,求所有字典序比它小的排列的逆序对之和,答案对1e9+7取模。
限制:
1
思路:
分类讨论
1. 全排列的逆序对之和:n!*n*(n-1)/4
2. 然后遍历每一位,相等的话继续看后面一位,不等的话,看后面小于它的有多少个数,然后乱搞一下。
/*hdu 5224 Tom and paper
...
分类:
其他好文 时间:
2015-05-14 18:47:16
阅读次数:
117
给定一个带重复元素的整数集合,求出这个集合中所有元素的全排列。...
分类:
编程语言 时间:
2015-05-13 10:29:20
阅读次数:
253
Sample Input3aAbabcacbaSample OutputAabAbaaAbabAbAabaAabcacbbacbcacabcbaaabcaacbabacabcaacabacbabaacbacabcaacaabcabacbaa对字符串进行全排列,字符的大小规则: 'A' 2 # i.....
分类:
其他好文 时间:
2015-05-12 18:44:33
阅读次数:
157
Sample Input6 4 //输出第4个全排列11 8 Sample Output1 2 3 5 6 41 2 3 4 5 6 7 9 8 11 10 1 # include 2 # include 3 # include 4 using namespace std ; 5 6 i...
分类:
其他好文 时间:
2015-05-12 18:39:47
阅读次数:
119
题意:给出四张扑克牌 问能否算出24思路:http://blog.csdn.net/xingyeyongheng/article/details/11137631 其实这题只有两种运算顺序 1(a@b)@c@d 2 (a@b)@(c@d) 所以只需要把数字和运算符全排列遍历一...
分类:
其他好文 时间:
2015-05-11 21:22:58
阅读次数:
121
Time Limit: 1000MS
Memory Limit: 65536K
Total Submissions: 4946
Accepted: 2850
Description
FJ and his cows enjoy playing a mental game. They write down the numbers from 1 to N (1 ...
分类:
其他好文 时间:
2015-05-11 13:05:17
阅读次数:
107
A,水题,直接枚举到sqrt
B,每次对于每一位枚举,如果小于当前位,那么答案可以计算出来,增加得答案为:设3个部分,前完全一样的部分a,中间新选的一个b,后面的全排列c,这样就把每部分和每两部分能够组成的逆序对个数计算出来,由于n只有100,里面在去枚举也是没问题的,主要是后面全排列c的逆序对数,这个可以利用dp处理出来,dp[i] = dp[i - 1] * i + i! * sum(i -...
分类:
其他好文 时间:
2015-05-10 15:44:46
阅读次数:
162
中心思想:
设R={r1,r2,…,rn}是要进行排列的n个元素,Ri=R-{ri}.
Perm(X)表示在全排列Perm(X)的每一个排列前加上前缀ri得到的排列。
(1)当n=1时,Perm(R)=(r),其中r是集合R中唯一的元素;
(2)当n>1时,Perm(R)可由(r1)+Perm(R1),(r2)+Perm(R2),…,(rn)+Perm(Rn)构成。
那么具体...
分类:
编程语言 时间:
2015-05-07 00:58:47
阅读次数:
171
输入
2
1 2
输出
1 2
2 1
代码如下:
#include
#include
#include
#include
using namespace std;
int mp[1000],vis[1000],path[1000],n;
void dfs(int cnt,int n)
{
if(cnt==n)
{
for(int i=...
分类:
其他好文 时间:
2015-05-05 19:36:06
阅读次数:
86
题目链接:http://acdream.info/problem?pid=1076
这题DP的状态很好设计,dp[i][j]表示指令i的时候,全排列状态是j,全排列一共就120个,预处理出来就可以了
那么问题就在于对于一个指令怎么快速获得这个整个区间的置换乘积,这步其实利用一个线段树维护就可以了,但是要注意置换是不满足交换律的,所以正序逆序都要保存一遍
代码:
#include
#inc...
分类:
其他好文 时间:
2015-05-04 01:15:16
阅读次数:
208