| 题目名称 | 2729. [郑州集训 2017]NOI模拟题5.1 |
|---|---|
| 输入输出 | order1.in/out |
| 难度等级 | ★★★☆ |
| 时间限制 | 2000 ms (2 s) |
| 内存限制 | 256 MiB |
| 测试数据 | 20 |
| 题目来源 |
|
| 开放分组 | 全部用户 |
| 提交状态 | |
| 分类标签 | |
| 分享题解 |
| 通过:5, 提交:15, 通过率:33.33% | ||||
|
|
100 | 7.619 s | 38.46 MiB | C++ |
|
|
100 | 8.286 s | 38.43 MiB | C++ |
|
|
100 | 9.120 s | 41.30 MiB | C++ |
|
|
100 | 10.722 s | 46.09 MiB | C++ |
|
|
100 | 13.263 s | 53.72 MiB | C++ |
|
|
55 | 19.566 s | 84.26 MiB | C++ |
|
|
55 | 19.687 s | 152.90 MiB | C++ |
|
|
20 | 25.485 s | 64.19 MiB | C++ |
|
|
15 | 19.542 s | 84.26 MiB | C++ |
|
|
15 | 22.615 s | 72.79 MiB | C++ |
| 关于 NOI模拟题5.1 的近10条评论(全部评论) | ||||
|---|---|---|---|---|
|
此题会卡cdq分治……
样例: 5 1 2 3 4 5 6
2017-07-12 15:21
5楼
| ||||
|
这不是APIO2017倒数第二天陈老师课件里面的题吗?
直接容斥套二维偏序即可,二维偏序归并排序即可 UPD:话说wys排序+bit跑的比mergesort快一点吧……况且这题还不用wys | ||||
|
终于过了!!!!!
《论逆序对的妙用》 | ||||
|
回复 @AAAAAAAAAA : 你啥时候有头像了?_(:з)∠)_
2017-07-11 22:12
2楼
| ||||
|
cdq55分
2017-07-11 22:09
1楼
| ||||
以及,由于数据的问题,各位同学在提交的时候需要加上数据生成器,详情请参照以下模板
#include <iostream>
#include <algorithm>
// DATA_GEN --- BEGIN ---// 你可以直接将这个数据生成器嵌入到你的代码中
// 或者,你也可以根据自己程序的需要,自己改写这个数据生成器
// 使用方法:从输入文件读入 N 和随机数种子之后,调用 gen_data 方法,可以将获得的排列 {A}, {B}, {C} 分别存放在对应 3 个数组中
const int MAXN = 2e6 + 10;
int lastInt, seed;
inline int nextInt() {
static const int mod = 1e9 + 7;
lastInt = lastInt ^ (((long long) lastInt * lastInt + seed) % mod);
return lastInt;
}
void getPerm(int P[], int n, int x0, int c) {
for (int i = 1; i <= n; ++i) P[i] = i;
lastInt = x0;
seed = c;
for (int i = n; i >= 1; --i) std::swap(P[i], P[nextInt() % i + 1]);
}
int n, A[MAXN], B[MAXN], C[MAXN]; // 生成的排列将存储在这三个数组中
void gen_data(int n, int a0, int seed_a, int b0, int seed_b, int c0, int seed_c) {
getPerm(A, n, a0, seed_a);
getPerm(B, n, b0, seed_b);
getPerm(C, n, c0, seed_c);
}
// DATA_GEN --- END ---
int main()
{
int n;
int a0, s_a;
int b0, s_b;
int c0, s_c;
std::cin >> n;
std::cin >> a0 >> s_a;
std::cin >> b0 >> s_b;
std::cin >> c0 >> s_c;
gen_data(n, a0, s_a, b0, s_b, c0, s_c);
/*
在这里填写你的程序
*/
return 0;
}