free pascal题目两题1、拼数游戏对于给定的n个不小于0的整数,将它们以某种顺序连接成一排,组成一个最小的高精度整数(连成的高精度整数位数不超过255).例如:当n=3时,3个整数13、325和328,连
来源:学生作业帮助网 编辑:作业帮 时间:2024/06/27 22:23:01
![free pascal题目两题1、拼数游戏对于给定的n个不小于0的整数,将它们以某种顺序连接成一排,组成一个最小的高精度整数(连成的高精度整数位数不超过255).例如:当n=3时,3个整数13、325和328,连](/uploads/image/z/2479308-60-8.jpg?t=free+pascal%E9%A2%98%E7%9B%AE%E4%B8%A4%E9%A2%981%E3%80%81%E6%8B%BC%E6%95%B0%E6%B8%B8%E6%88%8F%E5%AF%B9%E4%BA%8E%E7%BB%99%E5%AE%9A%E7%9A%84n%E4%B8%AA%E4%B8%8D%E5%B0%8F%E4%BA%8E0%E7%9A%84%E6%95%B4%E6%95%B0%2C%E5%B0%86%E5%AE%83%E4%BB%AC%E4%BB%A5%E6%9F%90%E7%A7%8D%E9%A1%BA%E5%BA%8F%E8%BF%9E%E6%8E%A5%E6%88%90%E4%B8%80%E6%8E%92%2C%E7%BB%84%E6%88%90%E4%B8%80%E4%B8%AA%E6%9C%80%E5%B0%8F%E7%9A%84%E9%AB%98%E7%B2%BE%E5%BA%A6%E6%95%B4%E6%95%B0%EF%BC%88%E8%BF%9E%E6%88%90%E7%9A%84%E9%AB%98%E7%B2%BE%E5%BA%A6%E6%95%B4%E6%95%B0%E4%BD%8D%E6%95%B0%E4%B8%8D%E8%B6%85%E8%BF%87255%EF%BC%89.%E4%BE%8B%E5%A6%82%EF%BC%9A%E5%BD%93n%3D3%E6%97%B6%2C3%E4%B8%AA%E6%95%B4%E6%95%B013%E3%80%81325%E5%92%8C328%2C%E8%BF%9E)
free pascal题目两题1、拼数游戏对于给定的n个不小于0的整数,将它们以某种顺序连接成一排,组成一个最小的高精度整数(连成的高精度整数位数不超过255).例如:当n=3时,3个整数13、325和328,连
free pascal题目两题
1、拼数游戏
对于给定的n个不小于0的整数,将它们以某种顺序连接成一排,组成一个最小的高精度整数(连成的高精度整数位数不超过255).
例如:当n=3时,3个整数13、325和328,连成的最小整数为:13325328.当n=4时,4个整数7、13、0和246,连接成的最小整数为:132467.
输入:
第一行是一个整数n (1 ≤ n ≤1000),n是给定的整数数目.
接下来的n行,每行有一个整数,表示给定的n个不小于0的整数.
输出:
连成的最小的高精度整数.
样例:
输入(spell.in):
3
13
325
328
输出(spelll.out):
2、切橡皮泥游戏
聪明的小明有n块橡皮泥(只考虑长度,不考虑高与宽),现在想把这些橡皮泥块切割成k块长度相同的小橡皮泥条(原橡皮泥块可以有剩余),整数k是已知的.小明希望得到的橡皮泥条越长越好,请你设计一个程序帮助小明计算能够得到的小橡皮条的最大长度.
题目中的长度单位都是厘米.原橡皮泥块的长度都是正整数,切割得到的小橡皮泥条的长度也是正整数.
输入:
第一行是两个正整数n和k(1 ≤n ≤ 10000,1 ≤ k ≤ 10000),n是原橡皮泥的块数, k是需要得到的小橡皮泥条的数目.
接下来的n行,每行有一个1到10000之间的正整数,表示原n块橡皮泥每块的长度.
输出:
输出能够切割得到的小橡皮泥条的最大长度.如果得到的小橡皮泥条最大长度小于1厘米,则输出”0”.
样例:
输入(plas.in):
3 7
232
124
456
输出(plas.out):
114
第一题不用了
就第二题
急
free pascal题目两题1、拼数游戏对于给定的n个不小于0的整数,将它们以某种顺序连接成一排,组成一个最小的高精度整数(连成的高精度整数位数不超过255).例如:当n=3时,3个整数13、325和328,连
【算法分析】二分答案
(具体可以参见以下链接:http://wenku.baidu.com/link?url=DAeOnEekpXeMbhT1FWWWgWn7kL6zp8uTW8UZiBudJAB_HBZrzUo5S74GON8xFzR3eajZSZgrFbto8d80zjJARXqwmdZKKiLyW1J_BQOM98e)
算法复杂度O(nlogn)
【参考程序】
var n,k,l,r,mid:longint;
a:array[1..10000]of longint;
function ok(x:longint):boolean;
var i,j:longint;
begin
j:=0;
for i:=1 to n do
inc(j,a[i] div x);
if j>=k then
exit(true)
else exit(false);
end;
procedure init;
var i:longint;
begin
readln(n,k);
for i:=1 to n do
begin
readln(a[i]);
if a[i]>r then r:=a[i];
end;
end;
begin
init;
l:=1;mid:=(l+r)div 2;
if not(ok(1)) then
begin
writeln(0);
halt;
end;
repeat
mid:=(l+r)div 2;
if ok(mid) then
l:=mid+1
else r:=mid-1;
until l>r;
writeln(r);
end.
【评测结果】无.