CF1106E Lunar New Year and Red Envelopes】的更多相关文章

比赛时看到这题懵逼了,比完赛仔细一想是个很简单的dp = = 由于题目限制,可以发现\(B\)取红包的策略是唯一的,可以用优先队列预处理出\(B\)在第\(i\)秒可以拿到的红包的收益\(w_i\)和如果拿了红包后下次拿红包的最早时间\(t_i\)(防止重复计算) 设\(f[i][j]\)表示\(A\)在第\(i\)秒打扰\(B\) \(j\)次所能获得的最小收益 于是有以下方程: \[f[i+1][j+1]=f[i][j]\] \[f[t_i][j]=f[t_i][j]+w_i\] 代码: #…
E. Lunar New Year and Red Envelopes 题意: 在长度为n的时间轴上,有k个红包,每个红包有领取时间段[s,t],价值w,以及领了个这个红包之后,在时间d到来之前无法再进行领取操作.每次领取的策略是取当前可领取红包中w最大的,w相同时取d最大的.再给m个干扰机会,一个干扰机会可以使其在任意一个x这个时间点无法进行领取操作直到x+1.问最优使用不超过m次干扰下,将领取的最小红包价值总和.(n,k<=1e5,m<=200) 思路: 这场因为评测机出问题,UR了.前四…
Codeforces 1106 E 题意:有\(k\)个红包,第\(i\)个红包可以在\(s_i\)到\(t_i\)的时间内抢,同时获得\(w_i\)的钱,但是抢完以后一直到\(d_i\)都不可以继续抢,\(bob\)从\(1\)到\(n\)的时间内可以抢红包,他的策略是在第\(i\)个时间点内找\(w_i\)最大的红包,如果有相同找\(d_i\)最大的,再相同就随便挑,但是\(alice\)可以在最多\(m\)个时间点内打扰\(bob\),在\(alice\)打扰的那个时间点内\(bob\)无…
大意: 总共$n$的时间, $k$个红包, 红包$i$只能在时间$[s_i,t_i]$范围内拿, 并且拿完后时间跳到$d_i+1$,Bob采用贪心策略,每个时间点若有红包能取则取钱数$w_i$最大的, $w_i$相同则取$d_i$最大的, Alice有$m$次机会让Bob跳过一个时间, 求Alice如何操作能使Bob得到钱数最少. 比较简单的DP, 记$dp[i][j]$为$i$时刻还能干扰$j$次的最小收益 $dp[i][j]=min(dp[d_i][j]+w_i,dp[i+1][j-1])$…
题意大致是Bob新年拿红包,每个红包可以在s-t时间内取,但是取了之后得在d+1时间开始才能继续取红包. 同时他女儿能在m个时间点阻止他取红包,求女儿阻止后Bob取得的w总和最小值. Bob取红包的策略是固定的,有红包就一定取,有多个就取w最大的,仍然有多个就取d最大的. 这个题意读了半天,不得不感叹Bob他孩子真是亲生的,都是傻子ww. 这个题首先第一感觉就是个典型的dp,但是想了想觉得女儿的阻止操作会影响后续当时状态的红包状态,纠结了半天. 但是其实我们可以发现,首先Bob的操作本来应该是固…
题意:过年了,Bob要抢红包.抢红包的时间段为1 - n,有m个红包,每个红包有三个属性:st(红包出现的时间), ed(红包消失的时间),d(如果抢了这个红包,能够抢下一个红包的时间),w(红包的收益).注:结束时间为ed是指在ed + 1的时候才能抢其它的红包,d同理.Bob是一个贪心的人,如果当前时间段他可以抢红包,他会抢现在出现的红包中收益最大的红包.如果有多个收益最大的红包,他会抢d最大的那个.Alice可以打断Bob k次,每次打断可以使Bob在1秒内无法行动,下一秒恢复正常.现在问…
[链接] 我是链接,点我呀:) [题意] 给你k个红包,每个红包可以在si..ti的时间范围内拿走. 抢完红包之后你得到wi元,然后你需要在di+1时刻才能继续抢红包 时间是线性的从1..n 然后某个人可以阻止你在x时刻抢红包,然后你的时间跳过1s(-1s)直接到达x+1时刻. 这个人可以阻止你m次. 请问这个人采用最优阻止策略下,你最少抢到的金额. (如果有多个可以抢的红包,那么抢wi最大的,如果仍然相同抢di最大的,再相同的话就无所谓了,因为选哪个都一样了) [题解] dp 设dp[i][j…
题目传送门 题解: 首先要处理出每个时间点会选择哪一个线段. 对于这个问题,可以用multiset去维护信息. 当时间线开始的时候,往mutiset里面插入这个信息,当时间线结束的时候,删除这个信息. 每次只要取出最大位就好了. 然后,就是状态转移,注意的就是只有转移进来过的状态才能转移出去. 代码: /* code by: zstu wxk time: 2019/02/03 */ #include<bits/stdc++.h> using namespace std; #define Fop…
题目大意: 给定n m k:(1≤n≤1e5, 0≤m≤200, 1≤k≤1e5) 表示n个时间长度内 最多被打扰m次 k个红包 接下来k行描述红包 s t d w:(1≤s≤t≤d≤n , 1≤w≤1e9) 表示在 s 到 t 的时间内都可开始获得该红包 该红包在时间 d 时才能完成获得 红包内有w硬币 在同一时间段内只能获得一个红包 不能同时获得两个及以上 求在被打扰的情况下使获得的红包硬币最少 是多少 用in out标记各红包可被获得的区间 用multiset维护在某个时间点可获得的红包有…
因为参加完wc后心情很差,而且在广州过年没Ubuntu,所以就没打这场比赛了,结果这套题全部1A了,现在看来真是错失良机 结果这场不计rating 今天是除夕,大家节日快乐 A. Lunar New Year and Cross Counting 题意 给定 \(n\times n\) 的 \(01\) 矩阵,定义一个十字为摆成X的五个 \(1\) ,问矩阵内部有多少这种十字(\(n\leq 500\)) 思路 A题不出意外一般是直接模拟,复杂度\(O(n^2)\) 代码 #include <b…