poj 3761 bubble sort (排列组合)】的更多相关文章

#include<cstdio> #include<cstring> #define ll long long #define mod 20100713 ; ll a[maxn]; ll poww(ll x,int n) { ll ret=; while(n) { ) ret=ret*x%mod; n>>=; x=x*x%mod; } return ret; } int main() { a[]=; ;i<maxn;i++) a[i]=a[i-]*i%mod; i…
题目传送门 /* 题意:求冒泡排序扫描k次能排好序的全排列个数 数学:这里有一个反序列表的概念,bj表示在j左边,但大于j的个数.不多说了,我也是看网上的解题报告. 详细解释:http://blog.csdn.net/cscj2010/article/details/7820906 */ #include <cstdio> #include <algorithm> #include <cstring> #include <cmath> using names…
点我看题目 题意 : 冒泡排序的原理众所周知,需要扫描很多遍.而现在是求1到n的各种排列中,需要扫描k遍就变为有序的数列的个数,结果模20100713,当然了,只要数列有序就扫描结束,不需要像真正的冒泡排序要扫描n-1遍. 思路 : 这个题的结果是K!((K + 1) ^ (N - K) - K ^ (N - K)).需要用到逆序数,此题具体推导. //POJ 3761 #include <iostream> #include <stdio.h> #include <stri…
转载于:http://www.cnblogs.com/767355675hutaishi/p/3873770.html 题目大意:众所周知冒泡排序算法多数情况下不能只扫描一遍就结束排序,而是要扫描好几遍.现在你的任务是求1~N的排列中,需要扫描K遍才能排好序的数列的个数模20100713.注意,不同于真正的冒泡排序算法,只要数列有序就立刻停止,而不用再检验一遍. 估计多数人都是找规律吧,先看出递推,然后求出通项……这个题只有找出通项公式才能通过,所以首先公布答案: K!((K + 1) ^ (N…
题目链接:https://vjudge.net/problem/POJ-3761 转自:https://blog.csdn.net/cscj2010/article/details/7820906 题目大意   含 n 个不同元素的排列恰好经过 k 趟冒泡排序变得有序.问原数组有多少种排列情况? 分析 第一眼看上去觉得是个 DP,最后发现是个数学题,认栽... 首先,定义 f(x) 表示在数组中位于元素 x 左面且大于 x 的个数.那么有$0 \leq f(x) \leq n - x$. 定义…
/** 大意: 给定16进制数的16个字母,,求第k大的数,,要求数的长度最大为8.,并且每个数互不相同. 思路: 从高到低挨个枚举,每一位能组成的排列数 ,拿最高位来说,能做成的排列数为15*A(15,len-i) 第二位 A(14,len-2)..这样就可以找到k大的数的长度 接下来 .找第k大的数.同上理 ,挨个枚举每一位即可..若加上该位的排列数大于k,则该位就是这个数,继续枚举下一位 **/ /** 大神思路 首先确定数字串的长度Len:从大到小枚举Len,每个Len下有15*P(15…
/* * POJ_2249.cpp * * Created on: 2013年10月8日 * Author: Administrator */ #include <iostream> #include <cstdio> using namespace std; typedef long long int64; int64 work(int64 n , int64 k){ if(k > n/2){ k = n-k; } int64 a = 1; int64 b = 1; int…
题意:问你冒泡排序第i次排序,一共排了多少次 套公式K!((K + 1) ^ (N - K) - K ^ (N - K)) #include <iostream> #include<cstdio> #include<cstring> using namespace std; #define LL long long #define N 1000010 #define M 20100713 LL a[N]; int _pow(LL v,int k){ LL res=1;…
题意:一条整数链,要求相邻两数前一个整除后一个.给出链尾的数,求链的最大长度以及满足最大长度的不同链的数量. 类型:因式分解+排列组合 算法:因式分解的素因子个数即为链长,链中后一个数等于前一个数乘以某素因子,所以链的数量即为这些因子不全相异的全排列数:A!/(a1!a2!a3!..) #include <cstdio> #include <cmath> #include <iostream> using namespace std; typedef long long…
Bubble Sort Problem Description   P is a permutation of the integers from 1 to N(index starting from 1).Here is the code of Bubble Sort in C++. for(int i=1;i<=N;++i) for(int j=N,t;j>i;—j) if(P[j-1] > P[j]) t=P[j],P[j]=P[j-1],P[j-1]=t; After the s…