codeforces 873E(枚举+rmq)】的更多相关文章

题意 有n(n<=3000)个人参与acm比赛,每个人都有一个解题数,现在要决定拿金牌的人数cnt1,拿银牌的人数cnt2,拿铜牌的人数cnt3,各自对应一个解题数区间[d1,c1],[d2,c2],[d3,c3] 现在要求: 1.d1-c2尽可能大 2.在1满足的前提下,d2-c3尽可能大 3.在1,2满足的前提下,d3-num尽可能大(num表示铁牌第一名的解题数) 4.对于任意的x,y(1<=x,y<=3),cntx<=2*cnty 你需要给出一种每个人的奖牌分配来满足以上要…
codeforces 803G Periodic RMQ Problem 题意 长度为\(1e5\)的数组复制\(1e4\)次,对新的数组进行区间覆盖和区间最小值查询两种操作,操作次数\(1e5\). 参考博客 http://kugwzk.info/index.php/archives/2404 题解一 小数组复用多次变成大数组,那么可以用ST表维护小数组的区间最小值,大数组还是用线段树维护\(Min[]\)和\(lazy[]\),但是不用进行build操作,所以upd和qry操作中标记下传的时…
算法提高 两条直线   时间限制:1.0s   内存限制:256.0MB        问题描述 给定平面上n个点. 求两条直线,这两条直线互相垂直,而且它们与x轴的夹角为45度,并且n个点中离这两条直线的曼哈顿距离的最大值最小. 两点之间的曼哈顿距离定义为横坐标的差的绝对值与纵坐标的差的绝对值之和,一个点到两条直线的曼哈顿距离是指该点到两条直线上的所有点的曼哈顿距离中的最小值. 输入格式 第一行包含一个数n. 接下来n行,每行包含两个整数,表示n个点的坐标(横纵坐标的绝对值小于109). 输出…
转载请注明出处:http://blog.csdn.net/u012860063 题目链接:http://codeforces.com/problemset/problem/52/C You are given circular array a0, a1, ..., an - 1. There are two types of operations with it: inc(lf, rg, v) - this operation increases each element on the segm…
Periodic RMQ Problem 动态开点线段树直接搞, 我把它分成两部分, 一部分是原来树上的, 一部分是后来染上去的,两个部分取最小值. 感觉有点难写.. #include<bits/stdc++.h> #define LL long long #define fi first #define se second #define mk make_pair #define PLL pair<LL, LL> #define PLI pair<LL, int> #…
原文链接https://www.cnblogs.com/zhouzhendong/p/9255885.html 题目传送门 - CF873E 题意 现在要给 $n(n\leq 3000)$ 个学生颁奖. 记 $a_i$ 为第 $i$ 个学生在本次比赛中做出的题目数量. 记 $b_i$ 为第 $i$ 个学生所获的奖项,其中 $1,2,3$ 分别表示他获得一.二.三等奖, $-1$ 表示不获奖,当然,一等奖最好,没奖最差. 记 $cnt_i$ 为满足 $b_k=i$ 的 $k$ 的个数. 一个合法的…
题意:给你一堆数,问其中lcm最小的一对数是什么? 思路:因为lcm(a, b) = a * b / gcd(a, b), 所以我们可以考虑暴力枚举gcd, 然后只找最小的a和b,去更新答案即可. 数据范围1e7? 不慌,bitset搞一下, 1e7log(1e7)可以500ms过. 代码: #include <bits/stdc++.h> using namespace std; const int maxn = 1000010; bitset<maxn * 10> v, v1;…
思路: (我也不知道这是不是正解) ST表预处理出来原数列的两点之间的min 再搞一个动态开节点线段树 节点记录ans 和标记 lazy=-1 当前节点的ans可用  lazy=0 没被覆盖过 else 区间覆盖 push_up的时候要注意好多细节,, 数组尽量往大开 //By SiriusRen #include <cstdio> #include <cstring> #include <algorithm> using namespace std; ; ],lson…
C. Vasily the Bear and Sequence time limit per test 1 second memory limit per test 256 megabytes input standard input output standard output Vasily the bear has got a sequence of positive integers a1, a2, ..., *a**n*. Vasily the Bear wants to write o…
两个二分 枚举位数 #include <bits/stdc++.h> #define MOD 1000000007 using namespace std; typedef long long ll; ll ten[]; ll check1(ll x) { ll ans = ; ll l, r; ; i <= ; i++) { l = ten[i], r = ten[i + ] - ; if (r < x) { ans += i * ( * x - l - r) * (r - l…