- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
HSYOI第十二次训练题
HSYOI第十二次训练题
文件名 minvalue sequence cow monkey 输入文件名 minvalue.in sequence.in cow.in monkey.in 输出文件名 minvalue.out sequence.out cow.out monkey.out 时限 1s 1s 1s 1s
最小的值
minvalue.pas/c/cpp
【题目描述】
给出n个整数a1,a2,a3…an。
定义v=|a1-b1|+|a2-b2|…+|an-bn|+|b1-b2|+|b2-b3|+…+|bn-1-bn|。
现在已知a,请给出一组数b,使得v值最小。
【输入文件】
输入文件的第一行,即整数n
接下来n行每行一个整数描述依次a1..an。
【输出文件】
输出文件中只有一个整数v。
【样例输入】
3
3
5
8
【样例输出】
5
【数据范围】
30%的数据N=20, -1000=ai=1000
70%的数据N=100, -1000=ai=1000
100%的数据N=1000, -10000=ai=10000
数字序列
sequence.pas/c/cpp
【题目描述】
现在我们有一个长度为n的证书序列A。但是它太不好看了,于是我们希望把它变成一个非严格单调上升的序列。但是不希望改变过多的数,也不希望改变的幅度太大。
【输入文件】
输入文件的第一行包含一个数n,接下来n个整数按顺序描述每一项的键值。
【输出文件】
输出文件第一行一个整数表示最少需要改变多少个数。
第二行一个整数,表示在改变的数最小的情况下,每个数改变的绝对值之和的最小值。
【样例输入】
4
5 2 3 5
【样例输出】
1
3
【数据范围】
70%的数据n=1000
100%的数据n=5000
保证所有数列是随机的。(还另有一组数据n=30000,时限。。)
受欢迎的牛
cow.pas/c/cpp
【题目描述】
每一头牛的愿望就是变成一头最受欢迎的牛。现在有N(N=10000)头牛,给你M(M=50000)对整数(A,B),表示牛A认为牛B受欢迎。这种关系是具有传递性的,如果A认为B受欢迎,B认为C受欢迎,那么牛A也认为牛C受欢迎。你的任务是求出有多少头牛被所有的牛认为是受欢迎的。
【输入文件】
输入文件的第一行两个数N,M。
接下来M行,每行两个数A,B,意思是A认为B是受欢迎的(给出的信息有可能重复)
【输出文件】
输出文件只有一个数,即有多少头牛被所有的牛认为是受欢迎的。
【样例输入】
3 3
1 2
2 1
2 3
【样例输出】
1
【数据范围】
10%的数据N=20, M=50
30%的数据N=1000,M=20000
70%的数据N=5000,M=50000
100%的数据N=10000,M=50000
小猴打架
monkey.pas/c/cpp
【题目描述】
一开始森林里面有N只互不相识的小猴子,它们经常打架,但打架的双方都必须不是好朋友。每次打完架后,打架的双方以及它们的好朋友就会互相认识,成为好朋友。经过N-1次打架之后,整个森林的小猴都会成为好朋友。
现在的问题是,总共有多少种不同的打架过程。
比如当N=3时,就有{1-2,1-3}{1-2,2-3}{1-3,1-2}{1-3,2-3}{2-3,1-2}{2-3,1-3}六种不同的打架过程。
【输入文件】
输入文件仅一个数n
【输出文件】
输出文件中仅有一个数即为答案mod 9999991
【样例输入】
4
【样例输出】
96
【数据范围】
50%的数据N=10^3
100%的数据N=10^6
HSYOI9.28第十二次训练题解题报告
第一题:最小的值
题目描述:
对于给定的数列{an},求出某一数列{bn}使:
v=|a1-b1|+|a2-b2|…+|an-bn|+|b1-b2|+|b2-b3|+…+|bn-1-bn|
中v值最小,输出最小v值。
题目分析:
观察式子,发现可以变形成如下形式:
v=|a1-b1|+(|b1-b2|+|b2-a2|)+(|b2-b3|+|b3-a3|)+…+(|bn-1-bn|+|bn-an|)
发现可以这样构造出最优解:取b1=a1,然后b2取b1-a2范围内离a3最近的点,并且对于bi(2=i=n-1),我们都可以取bi为bi-1到ai中距离ai+1最近的点,最后bn取bn-1到an间任一点即可。最后答案为|b1-a2|+|b2-a3|+…+|bn-1-an|。
题目总结:
把式子多看看,然
文档评论(0)