noip模拟.doc
文本预览下载声明
福建师大附中NOIP2008模拟赛1
Time: 8:30 ~ 11:30 September 5, 2008
题目名 文件名
统计物种 differ
保护鲜花 flowers
文字装饰 okviri
凸多边形 sjecista
输入文件名 : *.in
输出文件名 : *.out
统计物种 (differ)
动物园里共有N (1=N=200000) 只动物,他们分散在园中的各个角落。
管理员将各个动物的种类以一个特征数来表示,显然同种动物的特征数是相同的,不同种动物的特征数是不同的。
现在,这些特征数储存在动物园的数据库中。园长请你编写一个程序来统计动物园中到底有多少种动物。
输入:(differ.in)
第一行,一个整数N。
第二行,N个以空格分隔的正整数,均在longint范围内。
输出:(differ.out)
有且仅有一行,包含一个数:动物园中的动物种数。
样例输入:
6
1 3 9 3 6 9
样例输出:
4
保护鲜花 (flowers)
农夫约翰上山砍柴,照例让N (2 = N = 100,000)头奶牛自由地吃草。当他回家时,他吓了一跳:奶牛们居然在吃他花园里的草!为了尽量减少后续的损失,农夫决定立即采取行动,将他的奶牛遣返蓄棚。
每头牛初始时都在某一位置,第i头牛的位置离它的蓄棚需要Ti分钟 (1 = Ti = 2,000,000)。
此外,若它在等待返棚的时候,也会每分钟吃掉Di (1 = Di = 100) 朵花。无论他怎样尝试,约翰只能每次拉一头牛返棚。而一头牛的返棚需要2*Ti分钟(往返一次)。约翰初始在花园,不断往返拉牛,而不需要花额外的时间前往下一头牛的位置。
请写一个程序来计算约翰最少损失的花朵数。
输入:(flowers.in)
第一行,一个整数 N
第二行至第(N+1)行:每行包含两个用空格相分隔的数, Ti和Di, 含义如上所述。
输出:(flowers.out)
仅有一行,包含一个数:约翰最少损失的花朵数。
样例输入:
6
3 1
2 5
2 3
3 2
4 1
1 6
样例输出:
86
提示:
牵牛的顺序: 6, 2, 3, 4, 1, 5。
答案为24 + 28 + 16 + 12 + 6 = 86.
文字装饰(okviri)
“Peter Pan frames”是一种装饰文本的方式,每个字母都被一个钻石状的东西装饰,并与旁边的字母的装饰相交迭。由Peter Pan frame装饰的一个字母”X”就像这样:
..#..
.#.#.
#.X.#
.#.#.
..#..
我们有时会每隔三个字母使用 “Wendy frame” 来装饰,像这样:
..*..
.*.*.
*.X.*
.*.*.
..*..
当Wendy frame 与 Peter Pan frame 相交叠时, Wendy frame (因为更漂亮些)在上方。
输入:okviri.in
仅一行,大写英文字母最多15个。
输出: okviri.out
共5行,用Peter Pan frames和 Wendy frames 艺术化的字体.
下面三个样例
input
A
output
..#..
.#.#.
#.A.#
.#.#.
..#..
input
DOG
output
..#...#...*..
.#.#.#.#.*.*.
#.D.#.O.*.G.*
.#.#.#.#.*.*.
..#...#...*..
input
ABCD
output
..#...#...*...#..
.#.#.#.#.*.*.#.#.
#.A.#.B.*.C.*.D.#
.#.#.#.#.*.*.#.#.
..#...#...*...#..
凸多边形(sjecista)
对于一个N个顶点的凸多边形,它的任何三条对角线都不交于一点。请求出图形中对角线交点的个数。
下图是6个顶点的凸多边形。
Note: 凸多边形的每个内角小于180度。
输入:(sjecista.in)
一个整数 N, 3 ≤ N ≤ 100.
输出:(sjecista.out)
对角线交点的个数.
样例:
input
3
output
0
input
4
output
1
input
6
output
15
显示全部