码迷,mamicode.com
首页 > 其他好文 > 详细

2017 百度之星 资格赛 题解

时间:2017-08-08 00:37:08      阅读:291      评论:0      收藏:0      [点我收藏+]

标签:article   back   条件   img   保护   ora   百度之星   art   之间   

百度之星 2017 资格赛 题解(原创)(2~5题 第一题方法是错的 第二题数据太水 并不会正解)

转载请注明出处http://www.cnblogs.com/nflslzt/p/7302377.html

 (题目在HDU上可以找到)

1001 度度熊保护村庄

 

题意 给你两个点集,A和B,问你在B中最少选取多少个点,使得B中剩余点的凸包能将A的凸包完全包住

 

数据范围 A,B中有500个点 多测 (n^3会超时)

 

想法

首先把两个点集的凸包求出来

贪心:B的凸包内部点全部可以去掉

可能(就)是伪证:若最优解中B的内部取了一点,设为C,且C与D,E相连,那么,去掉C,并在D,E之间寻找一点P(一定有点,否则是凹的),使得三角形DEP能完全包住三角形CDE即可

然后枚举B的凸包上的一点Q,并且二分地寻找两点M,N,使QM,QN均恰好不与A的凸包相交,继续令Q=M,Q=N,继续二分,这样可以找出满足题目要求的一个凸包. 枚举出所有的这样的凸包,比较即可.

 错误原因 未考虑技术分享的情况

 

 有没有大神告诉我正解 据说Claris用的是O(n^3/64)的方法

 

1002 度度熊的王国战略

  有没有大神告诉我正解

题意 给一个图,求最小割

 

数据范围 3000个顶点,100000条边,边权1000

 

想法

优化最大流

网搜了ISAP模板结果WA了

无聊时看看Clarifications,发现数据水

于是: 先判断是否连通,不连通输出0,否则枚举每个顶点,并计算与其相连的边的总权值,取最小值输出

 

期望时间复杂度 不说了,显然能过,显然非正解

 

1003 度度熊与邪恶大魔王

 

题意

 

度度熊为了拯救可爱的公主,于是与邪恶大魔王战斗起来。

 

邪恶大魔王的麾下有n个怪兽,每个怪兽有a[i]的生命值,以及b[i]的防御力。

 

度度熊一共拥有m种攻击方式,第i种攻击方式,需要消耗k[i]的晶石,造成p[i]点伤害。

 

当然,如果度度熊使用第i个技能打在第j个怪兽上面的话,会使得第j个怪兽的生命值减少p[i]-b[j],当然如果伤害小于防御,那么攻击就不会奏效。

 

如果怪兽的生命值降为0或以下,那么怪兽就会被消灭。

 

当然每个技能都可以使用无限次。

 

请问度度熊最少携带多少晶石,就可以消灭所有的怪兽。

 

数据范围

1<=n<=100000

 

1<=m<=1000

 

1<=a[i]<=1000

 

0<=b[i]<=10

 

0<=k[i]<=100000

 

0<=p[i]<=1000

 

想法

一看数据范围,怪兽1000*10种可能,而且技能使用无限制,于是这题变得特别水

预处理:暴力枚举所有怪兽,背包算出最少要花多少晶石

输入每一种怪兽,加起来即可

 

期望时间复杂度 O(1000*10*1000)

 

1004 度度熊的午饭时光

 

题意

 

普通的01背包,但是要求还原路径,关键在于,不超过预算、不重样、午餐等分最高的情况下,选择菜品序号加和最小,加和相等时字典序最小的组合(限制条件太多,真心累)

 

数据范围 很水

 

想法

01背包

然后陷入僵局

发现数据很小,随便乱搞

于是从最后倒着推,用dfs,把所有情况搞出来,存起来,排序,输出

(据说有人啥都不搞直接输出过了,欲哭无泪)

 

期望时间复杂度 不知道

 

1005 寻找母串(唯一一个没有度度熊的题)

 

题意

定义了一个01偏串:1、只由0和1两种符组成; 2、在S的每一个前缀中,0的个数不超过1的个数; 3、S中0的个数和1的个数相等。

给定一个01偏串S,一个数n,问S在长度为n的所有01偏串中出现次数之和

 

数据范围 1<=|S|<=100000,1<=n<=1000000000

 

样例

input

2

2 10

4 10

output

1

3

 

样例解释

在第二个样例中,长度为4的偏串共两个1010,1100。10在1010中出现了两次,在1100中出现了1次。所以答案是3。

 

想法

最后才发现,和http://blog.csdn.net/jaihk662/article/details/76737701 的想法很像,只是公式不同

如图

技术分享

 

期望时间复杂度 O(1000000*40)

转载请注明出处

2017 百度之星 资格赛 题解

标签:article   back   条件   img   保护   ora   百度之星   art   之间   

原文地址:http://www.cnblogs.com/nflslzt/p/7302377.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!