1831: [AHOI2008]逆序对Time Limit:10 SecMemory Limit:64 MBSubmit:341Solved:226[Submit][Status]Description小可可和小卡卡想到Y岛上旅游,但是他们不知道Y岛有多远。好在,他们找到一本古老的书,上面是这样说的...
分类:
其他好文 时间:
2014-08-07 21:53:10
阅读次数:
264
解题报告算导上给了提示 用归并排序的代码进行修改来实现 思考后不难看出 归并排序的合并(merge)过程中 对数据进行了比较1)如果数组L 的当前某元素大于数组R的当前元素,那么 由于L数组是有序的(升序) 因此 L数组当前元素以及他后面的所有元素都与R数组构成逆序对2)我们的排序并不影响逆序对的数...
分类:
其他好文 时间:
2014-08-06 22:31:22
阅读次数:
451
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4911解题报告: 给出一个长度为n的序列,然后给出一个k,要你求最多做k次相邻的数字交换后,逆序数最少是多少?因为每次相邻的交换操作最多只能减少一个逆序对,所以最多可以减少k个逆序对,所以我们只要求出原来...
分类:
Web程序 时间:
2014-08-06 18:22:11
阅读次数:
375
对于n个数,可以做k次移动,每次移动可以互换相邻位置的两个数,问最少 number of pair (i,j) where 1≤ii>aj.
如果不移动的话,ans=’n个数的逆序对数‘,移动k次会减少k个
归并排序求逆序对数:
#include "stdio.h"
#include "string.h"
#include "math.h"
int b[100010],a[1...
分类:
其他好文 时间:
2014-08-06 14:53:51
阅读次数:
211
http://poj.org/problem?id=2299
给出n个数,每次只能交换两个相邻的数,问使得n个数有序最少需要交换多少次。
归并排序的模板,重在理解,小白书p144.
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include...
分类:
其他好文 时间:
2014-08-06 10:38:41
阅读次数:
234
Inversion
Time Limit: 2000/1000 MS (Java/Others) Memory Limit:
131072/131072 K (Java/Others)
Problem Description
...
分类:
其他好文 时间:
2014-08-06 10:38:01
阅读次数:
211
HDU 4911 Inversion
题意:n个数字 通过k次相邻交换 使得逆序对数最少
思路:如果序列为 XXXABYYY 假设A和B位置互换 易知X和AB、Y和AB的逆序对数不变 换句话说一次交换最多使逆序对减少1 那么只需要求原逆序对数和k进行比较即可
HDU 4915 Parenthese sequence
题意:?可以代表(或) 那么输入的字符串能构造出几种合法的括号序列呢 输出无解、唯一解、多解
思路:这题是我YY的… 首先我们可以计算出(和)应该填几个 如果计算出?不满足我...
分类:
其他好文 时间:
2014-08-05 22:48:20
阅读次数:
289
题意:根据题目要求交换相邻的两个元素k次,使得最后剩下的逆序对数最少
思路:如果逆序数大于0,存在0
利用归并排序计算逆序对数。
#include
#include
#include
using namespace std;
const int MAXN = 1000005;
int arr[MAXN], b[MAXN];
int n, k;
long long...
分类:
其他好文 时间:
2014-08-05 22:48:10
阅读次数:
264
HDU 4911 Inversion
题目链接
题意:给定一个数组,可以相邻交换最多k次,问交换后,逆序对为多少
思路:先利用归并排序求出逆序对,然后再减去k就是答案
代码:
#include
#include
#include
using namespace std;
const int N = 100005;
int n, num[N], save[N],...
分类:
其他好文 时间:
2014-08-05 22:36:10
阅读次数:
193
题目链接:hdu 4911 Inversion
题目大意:给定一个序列,有k次机会交换相邻两个位置的数,问说最后序列的逆序对数最少为多少。
解题思路:每交换一次一定可以减少一个逆序对,所以问题转换成如何求逆序对数。
#include
#include
#include
using namespace std;
typedef long long ll;
const int m...
分类:
其他好文 时间:
2014-08-05 22:32:00
阅读次数:
291