POI2005 泛做

快NOIP了...最近又感觉无所事事...做点题写写总结找找状态= =

只做了BZOJ上那些AC人数较多的题 (没几个人过的题不敢看

-------------------------------------分隔线-------------------------------------

BZOJ1529 [POI2005]ska Piggy banks

题意:有n个小猪存钱罐,i号罐子的钥匙在A_i号里面,你可以砸开罐子得到钥匙,问最少砸几个可以打开所有罐子

Sol:A_i向i连边,一定形成若干个基环树,对每个基环树只要砸换上任意一个就行,所以ans=联通块数

BZOJ1532 [POI2005]Kos-Dicing

题意:n个人进行m场比赛,每场比赛是两个人间的对战,给定每场比赛双方,问赢得做多的人最少赢几局

Sol:二分答案后转为规定每个人不能赢超过mid场,安排对局胜利方使之满足条件,网络流经典模型

BZOJ1531 [POI2005]Bank notes

题意:n种硬币有面值和个数,问凑出m元所需最少硬币数

Sol:单调队列优化完全背包

BZOJ1528 [POI2005]sam-Toy Cars

题意:有一个容量上限为k的口袋和长度为n的的需求序列,每次需要ai号物品,如果ai不在当前袋子里就需要取一次,袋子中物品多余k个就要放回去一些,问最少取的次数

Sol:贪心,每次放回去下一次取最靠后的物品,用堆维护

BZOJ1537 [POI2005]Aut- The Bus

题意:你在(0,0) 要去 (n,m) 有一些点 (xi,yi)上有zi分,你每次只能向右或下走,问最多得到多少分

Sol:把点按xi排序后f[i]表示到i的最大得分,树状数组优化转移

BZOJ1526 [POI2005]ban- Bankomat

题意:求按位unique后是所有给定数字串子串的四位数个数

Sol:暴力枚举四位数,对每个串处理出nxt[i][j]表示i后第一个j的位置,判断是否为子串即可

BZOJ1533 [POI2005]Lot-A Journey to Mars

题意:一个环上每个点可以加油a_i,相邻两点间距离给出,走1单位路程消耗1单位油,油箱没有容量限制,判断每个点是否可以从该点出发绕球一周途中不会油量<0,注意可以选择出发后向左或右走

Sol:先复制一遍令b_i=a_i-dis_i,求出b_i前缀和,合法当对于j∈[i-j,i-1] sum[i]-sum[j]>=0 单调队列求区间最大值即可,要做两遍处理左走和右走

BZOJ1539 [POI2005]Dwu-Double-row

题意:两个长度为n的序列,1-n分别各出现2次,可以交换两个排列的一列,要求交换最少次数使两个序列都成为排列

Sol:可以得到一些关系形如:第i列和第j列必须同时交换或同时不交换,第i列和第j列必须有且仅有一列交换,黑白染色后选少的那个加进答案里


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值