HSYOI第十二次训练题.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 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)

xcs88858 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档