这道题看了半天没看出什么规律, 然后看到别人的博客, 结论是当n为奇数且逆序数为奇数的时候
无解, 否则有解。但是没有给出证明, 在网上也找到详细的证明……我也不知道是为什么……

求逆序对有两种方法, 树状数组和归并排序, 当然这道题数据很小可以直接暴力, 我三种都写了。

暴力

#include<cstdio>
#define REP(i, a, b) for(int i = (a); i < (b); i++)
using namespace std; const int MAXN = 512;
int a[MAXN]; int main()
{
int T, n;
scanf("%d", &T); while(T--)
{
int cnt = 0;
scanf("%d", &n);
REP(i, 0, n)
{
scanf("%d", &a[i]);
REP(j, 0, i)
if(a[j] > a[i])
cnt++;
} printf("%s\n", (n & 1 && cnt & 1) ? "impossible" : "possible");
} return 0;
}

归并排序

#include<cstdio>
#define REP(i, a, b) for(int i = (a); i < (b); i++)
using namespace std; const int MAXN = 512;
int a[MAXN], t[MAXN], cnt; void merge_sort(int l, int r)
{
if(l + 1 >= r) return;
int m = (l + r) >> 1;
merge_sort(l, m); merge_sort(m, r); int p = l, q = m, i = l;
while(p < m || q < r)
{
if(q >= r || p < m && a[p] < a[q]) t[i++] = a[p++];
else t[i++] = a[q++], cnt += m - p;
}
REP(i, l, r) a[i] = t[i];
} int main()
{
int T, n;
scanf("%d", &T); while(T--)
{
cnt = 0;
scanf("%d", &n);
REP(i, 0, n) scanf("%d", &a[i]);
merge_sort(0, n);
printf("%s\n", (n & 1 && cnt & 1) ? "impossible" : "possible");
} return 0;
}
树状数组

#include<cstdio>
#include<cstring>
#define REP(i, a, b) for(int i = (a); i < (b); i++)
using namespace std; const int MAXN = 512;
int a[MAXN], f[MAXN], n; int lowbit(int x)
{
return x & (-x);
} void add(int x)
{
while(x <= n)
{
f[x]++;
x += lowbit(x);
}
} int sum(int x)
{
int ret = 0;
while(x)
{
ret += f[x];
x -= lowbit(x);
}
return ret;
} int main()
{
int T;
scanf("%d", &T); while(T--)
{
int cnt = 0;
memset(f, 0, sizeof(f));
scanf("%d", &n);
REP(i, 0, n)
{
scanf("%d", &a[i]);
cnt += sum(n) - sum(a[i]-1);
add(a[i]);
}
printf("%s\n", (n & 1 && cnt & 1) ? "impossible" : "possible");
} return 0;
}

紫书 习题 8-20 UVa 1620 (找规律+求逆序对)的更多相关文章

  1. 【poj 3090】Visible Lattice Points(数论--欧拉函数 找规律求前缀和)

    题意:问从(0,0)到(x,y)(0≤x, y≤N)的线段没有与其他整数点相交的点数. 解法:只有 gcd(x,y)=1 时才满足条件,问 N 以前所有的合法点的和,就发现和上一题-- [poj 24 ...

  2. hdu 2865 Polya计数+(矩阵 or 找规律 求C)

    Birthday Toy Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Tota ...

  3. 紫书 习题8-12 UVa 1153(贪心)

    本来以为这道题是考不相交区间, 结果还专门复习了一遍前面写的, 然后发现这道题的区间是不是 固定的, 是在一个范围内"滑动的", 只要右端点不超过截止时间就ok. 然后我就先考虑有 ...

  4. 紫书 习题 11-9 UVa 12549 (二分图最小点覆盖)

    用到了二分图的一些性质, 最大匹配数=最小点覆盖 貌似在白书上有讲 还不是很懂, 自己看着别人的博客用网络流写了一遍 反正以后学白书应该会系统学二分图的,紫书上没讲深. 目前就这样吧. #includ ...

  5. 紫书 习题 11-8 UVa 1663 (最大流求二分图最大基数匹配)

    很奇怪, 看到网上用的都是匈牙利算法求最大基数匹配 紫书上压根没讲这个算法, 而是用最大流求的. 难道是因为第一个人用匈牙利算法然后其他所有的博客都是看这个博客的吗? 很有可能-- 回归正题. 题目中 ...

  6. 紫书 习题8-7 UVa 11925(构造法, 不需逆向)

    这道题的意思紫书上是错误的-- 难怪一开始我非常奇怪为什么第二个样例输出的是2, 按照紫书上的意思应该是22 然后就不管了,先写, 然后就WA了. 然后看了https://blog.csdn.net/ ...

  7. 紫书 习题 8-2 UVa 1610 (暴力出奇迹)

    这道题我真的想的非常的复杂, 拿草稿纸一直在找规律,推公式, 然后总有一些特殊的情况. 然后就WA了N次.无奈之下看了别人的博客, 然后就惊了.直接暴力枚举两个相邻字符串 里面的所有可能就可以了--真 ...

  8. 紫书 习题 10-11 UVa 1646(斐波那契+高精度)

    自己用手算一下可以发现是斐波那契数列,然后因为数字很大,用高精度 以后做题的时候记得算几个数据找规律 #include<cstdio> #include<cmath> #inc ...

  9. GCD XOR UVA 12716 找规律 给定一个n,找多少对(a,b)满足1<=b<=a<=n,gcd(a,b)=a^b;

    /** 题目:GCD XOR UVA 12716 链接:https://vjudge.net/problem/UVA-12716 题意:给定一个n,找多少对(a,b)满足1<=b<=a&l ...

随机推荐

  1. Web API Filter

    在Web Api中,有三种Filter Filter类型 实现的接口 描述 Authorization IAuthorizationFilter 最先运行的Filter,被用作请求权限校验 Actio ...

  2. Kz.layedit-layui.layedit富文本编辑器拓展

    项目介绍 首先欢迎使用 Kz.layedit!本项目基于layui.layedit富文本编辑器,在其之上拓展而来. 新增功能 html源码模式.插入hr水平线.段落格式.字体颜色.字体背景色.批量上传 ...

  3. [LUOGU]P3701 主席树(假的)

    有人恶意刷难度...就一个最大流模板... 但是题面吼啊2333 #include <iostream> #include <cstdio> #include <queu ...

  4. Spark机器学习之MLlib整理分析

    友情提示: 本文档根据林大贵的<Python+Spark 2.0 + Hadoop机器学习与大数据实战>整理得到,代码均为书中提供的源码(python 2.X版本). 本文的可以利用pan ...

  5. vue如何每次打开子组件弹窗都进行初始化

    :visible.sync 与 v-if同时使用即可.

  6. js实现导航固定定位

                                                                                   js实现导航固定定位 <!DOCTY ...

  7. 如何在 Linux 上安装 Nginx (源码安装)

    如何在 Linux( CentOS ) 上安装 Nginx 1.下载 nginx 链接 : https://pan.baidu.com/s/1sll0Hrf 密码 : xnem 2.安装 gcc ( ...

  8. 什么是PL/SQL,有什么用

    1.什么是PL/SQL,有什么用  Procedure Language+SQL  PL/SQL是Oracle数据库特有的编程语言.  PL/SQL程序是以SQL为基础,引入了  编程语言特点,例如变 ...

  9. cogs 2056. 无平方因子数

    2056. 无平方因子数 ★☆   输入文件:non.in   输出文件:non.out   简单对比时间限制:1 s   内存限制:256 MB [题目描述] 给出正整数n,m,区间[n,m]内的无 ...

  10. 设计模式实例(Lua)笔记之七(Decorator模式)

    1.描写叙述 就说说"我"上小学的的糗事吧. 我上小学的时候学习成绩非常的差,班级上 40 多个同学,我基本上都是在排名 45 名以后,依照老师给我的定义就是"不是读书的 ...