题目链接:http://codeforces.com/gym/101149/problem/G 题目大意:给你n对数字,为(a[i], b[i]),给你m对数字,为(w[i], c[i]).给n对数字找配对,这个配对必须是m中的,而且m中的每个只能和n中的配对一次. 配对条件,w[i]>=a[j], c[i]>=b[j]即可配对. 输出n个数字,每个数字在m个数字当中的配对. 思路:假定n对数字的是x,m对数字的是y 离散化以后sort一下x和y,这样我们就得到了第一维是排序好了的. 然后我们…
题目链接:http://codeforces.com/gym/101149/problem/D 题目大意: 堡垒受到攻击.堡垒是n*m的矩阵,矩阵里刚开始都是平地,然后那个数值表示在当前平地上建一面墙需要a[i][j]的时间.目前我们在位置(r, c),我们找一种方法,把(r,c)全部围起来需要的最短时间? 思路:拆点,拆成in和out两个,in和out之间的cap就是a[i][j],然后就是简单的建边拉. //看看会不会爆int!数组会不会少了一维! //取物问题一定要小心先手胜利的条件 #i…
题目链接:http://codeforces.com/gym/101149/problem/K 题目大意: 给你两个点a,b.一个人在a点,一个人在b点,b点的人要追杀a的点,他的跑步速度是a的两倍.如果a点的人能在b点追击到之前回到a点这个位置,那么这个人就是安全的(b点的人追击a点的人的追击方案是:一直朝着a点的人所在的位置奔跑过去).问,这个人的安全区域是多少? 思路:几何果然不会= =,连sb题都没想到 因为是面积,所以说两点之间的距离就决定了最后的结果.因为题目给出的是单位面积.所以对…
题目链接:http://codeforces.com/gym/101149/problem/L 题目大意:有n个点(其实是n+1个点,因为编号是0~n),m条有向边.起点是0,到a和b两个节点,所经过的最少的节点的数目是多少?(a和b也算,0不算) 思路: 真的是想了半天了,不知道怎么做,虽然知道是最短路,还是偏离了方向.最后万不得已的翻了题解. 题解看的是这个人的:链接 思路大体就是: 因为如果要到两个点,路径上的点肯定是有相交点的(因为0是必然要走的).然后如果两者路径相交,肯定选择共同相交…
题目来源:http://codeforces.com/group/aUVPeyEnI2/contest/229510 时间限制:2s 空间限制:256MB 题目大意: 给定一个数字c 用 "max" "min" "+" "-" "" "/"对随机数 "?" 进行处理,使最后式子得到c的概率超过1/2 (所有数字均在0~255之间,"+" "…
题目:https://loj.ac/problem/3059 一段 A 选一个 B 的话, B 是这段 A 的平均值.因为 \( \sum (A_i-B)^2 = \sum A_i^2 - 2*B \sum A_i + len*B^2 \) ,这是关于 B 的二次方程,对称轴是 \( B = - \frac{-2*\sum A_i}{2*len} \) ,恰是 A 的平均值. 所以自己前 10 分写了 “ dp[ i ][ j ] 表示前 i 个 A .最后一段的 B = j ” 的 DP ,…
[题意]给定n棵高度初始为0的草,每天每棵草会长高a[i],m次收割,每次在d[i]天将所有>b[i]的草收割到b[i],求每次收割量.n<=500000. [算法]线段树上二分 [题解]按照生长速度a[]排序后,容易发现数列永远单调. 在线段树上的区间维护以下值: 1.最后一棵草的高度a 2.上次收割日期b 3.总的草高和c 4.总的生长速度和d 5.收割标记D和B 上传的时候注意右区间收割晚于左区间时强制合并. 下传的时候注意标记D和B直接覆盖. 线段树上二分: 1.判断当前区间是否符合(…
from NOIP2016模拟题28 题目大意 n个点的序列,权值\(<=10^6\) q个操作 1.单点修改 2.求所有区间gcd中,不同数个数 分析 1.以一个点为端点,向左或向右的gcd种数都只有\(\log Maxval\)种且收敛很快 1.权值较小可以用桶统计一个gcd的出现次数 做法1(正解)线段树上二分 \(n \log n\)递推预处理出以每个点为右端点的gcd 顺便记录每种gcd出现的最左位置,用于统计数量,更新到桶里 可以用一颗线段树维护单点修改,区间gcd 考虑一次修改x(…
[题意概述] 一个区间的Mex为这个区间没有出现过的最小自然数,现在给你一个序列,要求求出所有区间的Mex的和. [题解] 扫描线+线段树. 我们在线段树上维护从当前左端点开始的前缀Mex,显然从左到右Mex单调上升. 然后我们把区间左端点逐渐向右边移动,也就是扫描线是左端点. 我们可以发现每次移动的影响就是 [这个数的位置, 这个数下一次出现的位置) 这个区间内大于这个数的Mex全部变为这个数. 那么我们在线段树上二分出第一个大于等于Mex的位置,然后区间修改即可. #include<cstd…
Description “我希望能使用更多的魔法.不对,是预定能使用啦.最终我要被大家称呼为大魔法使.为此我决定不惜一切努力.”——<The Grimoire of Marisa>雾雨魔理沙魔理沙一如既往地去帕秋莉的大图书馆去借魔导书(Grimoire) 来学习魔道.最开始的时候,魔理沙只是一本一本地进行研究.然而在符卡战中,魔理沙还是战不过帕秋莉.好在魔理沙对自己的借还和研究结果进行了记录,从而发现了那些魔导书的精妙之处.帕秋莉的那些魔导书,每本都有一个类别编号ti 和威力大小pi.而想要获…