总结2113. 【2016-12-17普及组模拟】括号问题 (File IO): input:bracket.in output:bracket.out 时间限制: 1000 ms 空间限制: 2

来源:互联网 发布:vbscript是否用安装vb 编辑:程序博客网 时间:2024/04/28 16:32

题目描述

纪中的食堂是十分热闹的,当然那都是拥挤的缘故了(^__^)。但纪中学生是好孩子,都会自觉排队打饭,而每个人打饭都要消耗时间。在K个人的队伍中,第i个人打饭的时间为Ti。由于每个窗口同一时间只能服务一个同学,所以后面的同学都得等着。在示范性高中评估那天,专家们也来到了学生食堂就餐。在专家来到食堂之前,同学们都已经来到了食堂。为了给专家们对纪中人有个好的评价,同学们所排的队伍一定要让专家们尽快吃上午餐(专家们当然不会插队,也不会接受同学们的礼让,他们一定会等排在前面的同学打完饭后再打饭)。人都有主观认识,专家觉得久等了,是因为全部同学等待的长了,所以同学们等待的时间总和越小,专家越快吃上饭。
现在你的任务就是确定能让专家们尽快吃上饭的排队方案。

输入

第一行一个整数K(1<=K<=300),表示排在专家们的学生的人数。
第二行以后为K个正数,每行十个数表示从1号到K号的学生的打饭时间,T1,T2,……Tk.(0<Ti<=100000)

输出

能让专家们尽快吃上饭的排队方案(数据保证只有一种方案);只要输出学生的序号(从队伍的最前面到最后面)。

样例输入

343.8 23.6 15

样例输出

3 2 1

数据范围限制

对于30%的数据 ,K<=100;
对于70%的数据 ,K<=200;
对于100%的数据 ,K<=300。

题目描述

众所周知,纪中的信息学竞赛是很强的。专家为看看纪中的学生是否名符其实,给几个初一的学生(当然包括信息学小牛的你)出了几个问题来考考他们。其中一个问题是:在N个数乘积K1K2……KN中插入足够的括号,使得每一个乘积恰好是两个因子的乘积。例如K1K2K3K4能被括号括成:
 ((K1K2)(K3K4))  (((K1K2)K3)K4)  (K1((K2K3)K4)) ……
在加括号的过程中不允许改变Ki的顺序。现在专家要你们告诉他合法加括号的方法总数。由于你在编程方面有比较大优势,其他同学都推荐你来回答这个问题。为了不辜负同学们的期望,更为了维护信息组的良好声誉,你可一定要回答好这个问题呀!!!
 

输入

一个整数K(2<=K<=30)

输出

一个整数(方法数)TOTAL。

样例输入

4

样例输出

5

数据范围限制

对于40%的数据,K<=10;
对于70%的数据,K<=20;
对于100%的数据, K<=30。

题目描述

示范性高中评估完之后,专家们觉得纪中太美、太大了,决定游览一下纪中。但纪中校园的太复杂了,什么中山路、庆龄路、幕贞路等等太多了,所以从校门口到新区的路线不止一两条。但是专家的时间是宝贵的,尤其不能浪费。现在,专家车队的队长找到了你,他给了你一张描述了他们待选路线的表(n*n的矩阵A),让你找出行车距离最短的路线。表中表示了任意两个路口的连通情况,以及距离。矩阵元素a(i,j)=0表是路口i,j不连通,a(i,j)!=0表示路口i,j的行车距离。其中校门在路口1,新区在路口n.

输入

第一行为一个自然数n(1<n<=30);
接着n行,每行n个整数,描述待选路线的表(元素的值小于1000);
 

输出

第一行为一个整数,表示最短行车的距离。

样例输入

40 2 3 42 0 1 13 1 0 04 1 0 0

样例输出

3

数据范围限制

对于30%的数据,n<=10;
对于70%的数据,n<=20;
对于100%的数据, n<=30。

题目描述

评估完了,游览也完了,终于到了送别的时候,为了在最后给专家们留下一个很好的印象,信息组的学生组成了送宾队。队长Symbol在经过认真的思考后,决定把队员们排成K列。为了有更好的视觉效果,每列的人数当然不能相差太多,但是美学研究表明,并非人数均等时视觉效果最好(表明任意两列人数不能相等)。队长在深思熟虑后,认为可以用一个公式来描述一种排队方式的美学价值。假设Value表示美学价值的大小,则:
K
Value=∏Wi =W1*W2*…..*Wk
                                I=1
Value值越大,视觉效果越好。
现在专家组马上要来了,可Symbol的笔记本坏了。于是他请学生你编程帮他求出最优的排队方法。
 

输入

一个整数K与人数M(1<=K<=50,M>=K*(K+1)/2),数据保证有解.

输出

最优的排队方案:K行数字(从小到大)。

样例输入

3 7

样例输出

124

数据范围限制

对于30%的数据,K<=10,1<=M<=1300;
对于70%的数据,K<=30,1<=M<=1300;
对于100%的数据 ,K<=50,1<=M<=1300。

T1

先快排,然后标个序号,就对了。

T2

先把n分解成两个数(比如:4=2+2,  1+3,  3+1),然后把每种情况的两个数的方案数乘起来,再把所有的乘积加起来就行了。

T3

寻找一个大于1的最小值,然后加起来就A了。

T4

先求出k!的值,求出s=m-k!,然后从大往小递加,加到s0为止。

今天状态还不错,得了100+100=200,比赛时没能及时想出第2,第4题,不过不错,继续加油!


0 1