一些题目小结6.28

T1.
1008: [HNOI2008]越狱
  监狱有连续编号为1…N的N个房间,每个房间关押一个犯人,有M种宗教,每个犯人可能信仰其中一种。如果相邻房间的犯人的宗教相同,就可能发生越狱,求有多少种状态可能发生越狱。
这个可以算是值得总结的东西,因为一开始做的时候卡了一下QAQ
考虑所有越狱状态是不好统计的,它可能是k个不合法状态拼凑而成的,是一个并集。那么我们要计算并集的最好方法就是求全集减去补集。
考虑其补集为不发生越狱的方案数A。
那么则有 A=m(m1)n1
而全集 S=mn
两个相减即可。
T2.
1854: [Scoi2010]游戏
lxhgww最近迷上了一款游戏,在游戏里,他拥有很多的装备,每种装备都有2个属性,这些属性的值用[1,10000]之间的数表示。当他使用某种装备时,他只能使用该装备的某一个属性。并且每种装备最多只能使用一次。 游戏进行到最后,lxhgww遇到了终极boss,这个终极boss很奇怪,攻击他的装备所使用的属性值必须从1开始连续递增地攻击,才能对boss产生伤害。也就是说一开始的时候,lxhgww只能使用某个属性值为1的装备攻击boss,然后只能使用某个属性值为2的装备攻击boss,然后只能使用某个属性值为3的装备攻击boss……以此类推。 现在lxhgww想知道他最多能连续攻击boss多少次?
这题其实不错,不算是一个特别显然的二分图匹配。
考虑攻击力和武器的关系,可以把他们建成点。
而根据二分图匹配的性质,已经匹配的点不会从二分图中删去。
我们直接按顺序遍历攻击力即可。
非常优美。
T3.1202: [HNOI2005]狡猾的商人
刁姹接到一个任务,为税务部门调查一位商人的账本,看看账本是不是伪造的。账本上记录了n个月以来的收入情况,其中第i 个月的收入额为Ai(i=1,2,3…n-1,n), 。当 Ai大于0时表示这个月盈利Ai 元,当 Ai小于0时表示这个月亏损Ai 元。所谓一段时间内的总收入,就是这段时间内每个月的收入额的总和。 刁姹的任务是秘密进行的,为了调查商人的账本,她只好跑到商人那里打工。她趁商人不在时去偷看账本,可是她无法将账本偷出来,每次偷看账本时她都只能看某段时间内账本上记录的收入情况,并且她只能记住这段时间内的总收入。 现在,刁姹总共偷看了m次账本,当然也就记住了m段时间内的总收入,你的任务是根据记住的这些信息来判断账本是不是假的。
题解:
并查集的巧妙用法。
考虑肯定是要转化成前缀和的,我们可以对每一天的收入都看作一个点,这样的话,如果有一个约束 srsl1=k ,那么就要向l - 1到r连一条权值为k的边,然后连一个反边,权值为-k。
如果是正常的话,那么对每个联通块跑一遍spfa,然后检验对于联通块内的每个点对(i,j),都有dis(i,j) == dis(i,k) + dis(k,j),这样就是合法的。
然而复杂度玄学,所以我们考虑用其他的办法。
我们考虑有一个约束[l,r] -> k,那么我们把 SlSrSrSl=k
然后我们维护关于根的带权并查集。
Si 看作一个节点i,那么就维护第i个点的点权为 wi=SrtSi
维护根的偏移量,然后查询。
题解
T4.4571: [Scoi2016]美味
一家餐厅有 n 道菜,编号 1…n ,大家对第 i 道菜的评价值为 ai(1≤i≤n)。有 m 位顾客,第 i 位顾客的期
望值为 bi,而他的偏好值为 xi 。因此,第 i 位顾客认为第 j 道菜的美味度为 bi XOR (aj+xi),XOR 表示异或
运算。第 i 位顾客希望从这些菜中挑出他认为最美味的菜,即美味值最大的菜,但由于价格等因素,他只能从第
li 道到第 ri 道中选择。请你帮助他们找出最美味的菜。
题解:
首先我们不知道可持久化Trie怎么写
然后我们考虑怎么用可持久化线段树写这个东西。
显然是贪心匹配的,考虑+x,实际上就是询问区间的平移,那么也没什么变化。
显然,对于询问右端点是已经确定的(就是原来答案第k位之后是一堆1)
考虑左端点,显然当b的第k位是0的时候,我们左端点那一位应该是1,否则是0。
然后我们查询左右区间内是否有这样的数字,如果有就可以选这个答案,否则就把刚刚加给答案的再减掉。
T5.2588: Spoj 10628. Count on a tree
主席树在树上的应用,然而问题在于我今天开始认为的是用dfs序搞,后来发现自己智障,用LCA+主席树,现在蜜汁RE.
今天先这样吧,太困了,Sigh.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值