4.28dp专练总结

a
颓废了一会决定写博客
这是一篇DP专练考试总结
我真的快累死了。
时间:大概4h
6道题(丧心病狂):)
T1:

数字三角形的基础上,加了若干次询问,每次废掉一个点,然后在求最优值。

T2:

FJ有M个牛棚,编号1至M,刚开始所有牛棚都是空的。
FJ有N头牛,编号1至N,这N头牛按照编号从小到大依次排队走进牛棚,每一天只有一头奶牛走进牛棚。第i头奶牛选择走进第p[i]个牛棚。
由于奶牛是群体动物,所以每当一头奶牛x进入牛棚y之后,牛棚y里的所有奶牛们都会喊一声“欢迎欢迎,热烈欢迎”,由于声音很大,所以产生噪音,产生噪音的大小等于该牛棚里所有奶牛(包括刚进去的奶牛x在内)的数量。
FJ很讨厌噪音,所以FJ决定最多可以使用K次“清空”操作,每次“清空”操作就是选择一个牛棚,把该牛棚里所有奶牛都清理出去,那些奶牛永远消失。“清空”操作只能在噪音产生后执行。
现在的问题是:FJ应该选择如何执行“清空”操作,才能使得所有奶牛进入牛棚后所产生的噪音总和最小?

T3:

在比特镇一共有 n 家商店,编号依次为 1 到 n。每家商店只会卖一种物品,其中第 i 家商店的物品
单价为 c i ,价值为 v i ,且该商店开张的时间为 t i 。
Byteasar 计划进行 m 次购物,其中第 i 次购物的时间为 T i ,预算为 M i 。每次购物的时候,Byteasar
会在每家商店购买最多一件物品,当然他也可以选择什么都不买。如果购物的时间早于商店开张的时间,
那么显然他无法在这家商店进行购物。
现在 Byteasar 想知道,对于每个计划,他最多能购入总价值多少的物品。请写一个程序,帮助
Byteasar 合理安排购物计划。 n<=300,vi<=300,ci<=10^9;
注意:每次所花金额不得超过预算,预算也不一定要花完,同时预算不能留给其它计划使用。

T4:

给定n个物品,每个物品有价值vi和代价wi
你可以以任意顺序选择任意个,每当选择一个,剩下的物品的要减掉代价wi。
求最大价值。

T5:

Bessie正在计划一年一度的奶牛大集会,来自全国各地的奶牛将来参加这一次集会。
当然,她会选择最方便的地点来举办这次集会。
每个奶牛居住在 N(1<=N<=100,000) 个农场中的一个,这些农场由N-1条道路连接,
并且从任意一个农场都能够到达另外一个农场。道路i连接农场A_i和B_i
(1 <= A_i <=N; 1 <= B_i <= N),长度为L_i(1 <= L_i <= 1,000)。集会可以在N个
农场中的任意一个举行。另外,每个牛棚中居住者C_i(0 <= C_i <= 1,000)只奶牛。
在选择集会的地点的时候,Bessie希望最大化方便的程度(也就是最小化不方便程度)。
比如选择第X个农场作为集会地点,它的不方便程度是其它牛棚中每只奶牛去参加集会
所走的路程之和,(比如,农场i到达农场X的距离是20,那么总路程就是C_i*20)。帮助
Bessie找出最方便的地点来举行大集会。

T6:

在炽热的核熔炉中,居住着一位少女,名为灵乌路空。
据说,从来没有人敢踏入过那个熔炉,因为人们畏缩于空所持有的力量——核能。
核焰,可融真金。
每次核融的时候,空都会选取一些原子,排成一列。然后,她会将原子序列分成一些段,并将每段进行一次核融。
一个原子有两个属性:质子数和中子数。
每一段需要满足以下条件:
1、同种元素会发生相互排斥,因此,同一段中不能存在两个质子数相同的原子。
2、核融时,空需要对一段原子加以防护,防护罩的数值等于这段中最大的中子数。换句话说,如果这段原子的中子数最大为x,那么空需要付出x的代价建立防护罩。求核融整个原子序列的最小代价和。

重申一遍我快累死了,智商欠费导致头疼。
明天要放假了,嗯。

比赛过程:
看到T1莫名兴奋,我以为它就是个数字三角形,咳咳,当然它不是。涂鸦了一会,觉得差不多,然后过样例。但我没有扔它,写了个暴力拍它!反正没拍出错。
然后佛系看题,都好难啊!!(佛系
看到T5真的开心啊,写它(树形dp为何执着于它??)。
然后开始各题暴力。
不知道为什么先开始写防AK的T6暴力,又神奇的用ST表搞它(增加时间复杂度,麻烦),感觉这道题暴力写的偏久。(1h+??)
T4有%40数据n<=8搜索排列一下就好了(我好像一时激动想用模拟退火搞来着)这个挺好写。
T2,T3感觉好难啊
看看T2,我觉得脑袋疼…
此时还有1h+
平均分会比较小,这个我也觉得显然(但没有证明,虚…),事实证明瞎猜结论要狠,%40数据m=1,试着用此结论搞,过了样例就不想管。
扑向T3
突然发现我之前看错题了
暴力很好写的,0/1背包,水过样例后,感觉时间也差不多了。
检查吧。
最后分数:100+0+40+40+60+40=280;
emmm,好吧我菜。
T5我开了long long,但是找最小值的时候初值赋小了。
不足么,感觉都在打暴力了,T2,T3,T4都没怎么用心想正解,如果手推得话可能可以想出来,感觉我写太慢了。。。难受啊
正解:
T1乱搞
T2,牛的数量很多,但跟牛没什么关系,牛棚数少,跟牛棚有关系,所以应该针对牛棚做DP,然后手推将一个牛棚清空若干次要怎样比较优
T3,将背包转化为达到这个价值所需的最小代价,代价肯定递增啊,然后二分求解。但是这样任然比较慢,多以可以离线一下
T4,我好累啊

猜你喜欢

转载自blog.csdn.net/yu25_21_5/article/details/89646496
今日推荐