FJWC2018】的更多相关文章

5254: [Fjwc2018]红绿灯 Time Limit: 10 Sec  Memory Limit: 256 MBSubmit: 31  Solved: 24[Submit][Status][Discuss] Description 泰迪每天都要通过一条路从家到学校,这条路的起点是泰迪家,终点则是学校. 这条路中间还有n个路口,从第i-1个路口走到第i个路口需要di秒,每个路口都有一个红绿灯.更具体的,绿灯持 续时间是g秒,红灯持续时间是r秒.每天从第0秒开始,所有灯都是绿灯,持续g秒之后…
题解: 考虑长度为k的时候的贡献 即取出一些元素然后给他们排个顺序然后问你有多少排法 假设排法为ans 那么应该就是$C(n,k)*C(n,k)*(n-k)!*(n-k)!*(n-k+1)*ans$ 然后ans的话只要用从大到小插入逆序对的思路就可以了 前缀和优化一下 时间复杂度n^3+Tn 因为逆序对的上限是n*(n-1)/2 所以是$\sum\limits_{i=1}^{n} {\frac{n^2}{2}}$ 这大概只有2e7的样子…
显然所有询问都要经过至少$\sum d$,只需要考虑除了$\sum d$之外的等待红灯的时间. 将所有询问的时间模$g+r$,并按时间用set维护. 那么对于每个红灯,在set中可以找出$1$到$2$个区间,将里面所有的询问暴力取出,添加一个新点作为等到绿灯后的询问放入. 那么询问与新点之间构成了一棵树结构,每个询问实际的答案为它到根路径上所有点的答案之和. 时间复杂度$O(n\log n)$. #include<cstdio> #include<algorithm> #inclu…
注意到一旦在某个路口被红灯逼停,剩下要走的时间是固定的.容易想到预处理出在每个路口被逼停后到达终点的最短时间,这样对于每个询问求出其最早在哪个路口停下就可以了.对于预处理,从下一个要停的路口倒推即可.问题只剩下如何求出下一个要停的路口,这相当于求满足di,j%(g+r)>=g的最小j,对d做一个前缀和,那么显然满足条件的是一个值域区间,线段树维护值域区间的路口最小编号即可.对于询问要处理的也与此类似.注意家里没有红灯.(?) #include<iostream> #include<…
题面 题面 题解 (表示第一段文字导致我在考场上没看懂题--因为我以为这个定义是定义在整个排列上的,所以相似 = 相同.结果其实是可以应用在一个区间上--) 首先我们发现,2个区间相似,其实就是离散化之后相同. 观察到,相似区间的位置是没有影响的,且由于数字两两不同,所以不管相似区间内是哪些数,我们都可以将其当做一个1 ~ len的排列来计算. 因此我们可以直接枚举相似区间的长度和逆序对个数,然后按照从小到大的顺序加入下一个数,DP出方案,也就是区间个数. 设f[i][j]表示长度为i,逆序对恰…
题目大意:一个wly从家走到学校要经过n个红绿灯,绿灯持续时间是$g$,红灯是$r$,所有红绿灯同时变红变绿,交通规则和现实中一样,不能抢红灯,两个红绿灯之间道路的长度是$di$,一共$Q$个询问,求他在$k$时刻出发到达学校的时间$(Q<=5*10^4)$ 终于过了..jdr是真的duliu 搞了半个多下午才看懂题解 首先总路程一定大于等于$\sum d_{i}$,所以求出等红灯的总时间就行了 红绿灯的周期是$(g+r)$,所以 超过$g+r$的道路 或者 询问的时刻$k$ ,直接取模$(g+…
题面 Description 一个合数的真因数是指这个数不包括其本身的所有因数, 例如 6 的正因数有1, 2, 3, 6,其中真因数有 1, 2, 3. 一个合数的最大真因数则是这个数的所有真因数中最大的一个,例如 6 的最大真因数为 3. 给定正整数 l 和 r,请你求出 l 和 r 之间(包括 l 和 r)所有合数的最大真因数之和. Input 输入共一行,包含两个正整数 l 和 r.保证 l ≤ r. Output 输出共一行,包含一个整数,表示 [l,r] 内所有合数的最大真因数之和.…
晚上水到8:40,感觉药丸. 把电脑带回寝室,大半夜敲键盘…… bzoj5254红绿灯 泰迪每天都要通过一条路从家到学校,这条路的起点是泰迪家,终点则是学校. 这条路中间还有n个路口,从第i-1个路口走到第i个路口需要di秒,每个路口都有一个红绿灯. 更具体的,绿灯持续时间是g秒,红灯持续时间是r秒. 每天从第0秒开始,所有灯都是绿灯,持续g秒之后变为红灯,再过r秒变成绿灯,以此类推,并且同一时刻所有灯都是相同状态. 当泰迪到达一个路口,若是绿灯则可直接通过,若是红灯则需原地等待至绿灯. 若到达…