期末小评http://class.51nod.com

 

A 逆序对个数1000

有一串数字,如果前面的数字比后面的数字大,那么就称这两个数为一对逆序对。

输入一个长度为n的数组,输出逆序对的个数。

也就是说问有多少对(i, j)满足1 <= i < j <= n,且a[i] > a[j]。

1 <= n <= 1000,1 <= a[i] <= 10^9

 

输入

第一行一个整数n,表示数组长度
接下来n行,每行一个整数a[i],表示数组的内容。

输出

输出一行一个数字,表示逆序对的个数。

输入样例

4
4
3
1
2

输出样例

5

B ProjectEuler 6

前10个正整数的平方和是
 12+22++102=38512+22+⋯+102=385 

前10个正整数和的平方是
 (1+2++10)2=3025(1+2+⋯+10)2=3025 

和的平方减去平方和是3025 - 385 = 2640。

输入n,求前n个正整数和的平方 减去 平方和。

输入

输入第一行组数T,
接下来T行,每行一个整数n。
(1 <= T <= 100)
(1 <= n <= 300)

输出

对于每组数据,输出一个数,表示和的平方减去平方和。

数据范围

对于20%的数据,1≤T≤5,1≤n≤10;
对于60%的数据,1≤T≤20,1≤n≤100;
对于100%的数据,1≤T≤100,1≤n≤300。

输入样例

3
3
10
100

输出样例

22
2640
25164150

 

C 分成两组

给出n个数,把这n个数分成2组,让2组之和的差值尽量小,求这个最小的差。

例如:3个数2 2 3,我们将两个2分为一组,1个3单独一组,两组和的差值为1。

输入

第一行:1个数n,表示数字的数量(n <= 20)
后面n行:每行1个数a[i](0 <= a[i] <= 1000000000)。

输出

输出一个数,对应最小的差值

输入样例

3
2
2
3

输出样例

1
posted @ 2021-06-23 17:56  tianluman  阅读(255)  评论(0编辑  收藏  举报