分治法

Problem1一元三次方程的解

题目描述

    有形如:ax3+bx2+cx+d=0这样的一个一元三次方程。给出该方程中各项的系数(a,b,c,d均为实数),并约定该方程存在三个不同实根(根的范围在-100至100之间),且根与根之差的绝对值>=1。要求由小到大依次在同一行输出这三个实根(根与根之间留有空格),并精确到小数点后4位。

输入

    输入仅一行,有四个数,依次为a、b、c、d

输出

输出也只有一行,即三个根(从小到大输出)

Problem2查找第k大元素

题目描述

    有N个数,请找出其中第k大的数(N<=10000)

输入

    输入第一行为N、K,第二行有N个数

输出

输出第K大的数

Problem3麦森数

题目描述

    形如2^P-1的素数称为麦森数,这时P一定也是个素数。但反过来不一定,即如果P是个素数,2^P-1不一定也是素数。到1998年底,人们已找到了37个麦森数。最大的一个是P=3021377,它有909526位。麦森数有许多重要应用,它与完全数密切相关。

    任务:从文件中输入P(1000<P<3100000),计算2^P-1的位数和最后500位数字(用十进制高精度数表示)

输入

    输入只包含一个整数P(1000<P<3100000)

输出

    输出第一行是十进制高精度数2^P-1的位数。

第2-11行:十进制高精度数2^P-1的最后500位数字。(每行输出50位,共输出10行,不足500位时高位补0)

Problem4逆序对个数

题目描述

    给出一个数列{an},如果存在i<j,但是a[i]>a[j]那么我们称a[i]与a[j]是一对逆序对,现要求求出数列{an}中逆序对的个数

输入

    输入第一行为整数N(N<=10000),第二行有N个数,即为数列{an}

输出

输出仅一个数,即逆序对的个数

Problem5寻找最近点对

题目描述

    给出平面内的N(N<=10000)个点,点两两都有一个距离,现要求出所有点对中距离最小的那一对

输入

    输入第一行为N,后面有N行,每行两个数分别描述每个点的横纵坐标

输出

输出一个数,即最近点对的距离

Problem6剔除多余括号

题目描述

    键盘输入一个含有括号的四则运算表达式,可能含有多余的括号,编程整理该表达式,去掉所有多余的括号,原表达式中所有变量和运算符相对位置保持不变,并保持与原表达式等价。

输入

    输入一行,即为表达式,长度小于250

输出

输出也一行,为剔出多余括号之后的表达式

Problem7赛程安排

题目描述

    有n个编号为1到n 的运动员参加某项运动的单循环比赛,即每个运动员要和所有其他运动员进行一次比赛。试为这n个运动员安排一个比赛日程,使得每个运动员每天只进行一场比赛,且整个比赛在n-1天内结束。

输入

    输入一行,即为运动员人数n(n<=10000)

输出

输出一个n阶方阵A[1..N,0..N-1](表示比赛日程),当J>0时,A[I,J]表示第I名运动员在第J天的比赛对手。

原文地址:https://www.cnblogs.com/Crakme/p/1977920.html