Xors on Segments Codeforces - 620F】的更多相关文章

http://codeforces.com/problemset/problem/620/F 此题是莫队,但是不能用一般的莫队做,因为是最优化问题,没有办法在删除元素的时候维护答案. 这题的方法(好像还有个名字叫"回滚莫队“,说明:https://blog.csdn.net/maverickfw/article/details/72988286): 官方题解:http://codeforces.com/blog/entry/22936 设完成一次"加入贡献"的操作的复杂度是O…
题目链接 Xors on Segments 预处理出$x[i]$ $=$ $1$ $xor$ $2$ $xor$ $3$ $xor$ $……$ $xor$ $i$ 话说这题$O(n^{2})$居然能过 先对询问离线. 然后$dp[i]$表示以$a[i]$为开头的所有连续序列中最大答案. 然后依次处理到$a[j]$的时候如果以$j$为右端点的询问的左端点小于等于$i$则更新. 复杂度$O(n^{2})$ #include <bits/stdc++.h> using namespace std;…
F. Xors on Segments 题目连接: http://www.codeforces.com/contest/620/problem/F Description You are given an array with n integers ai and m queries. Each query is described by two integers (lj, rj). Let's define the function . The function is defined for o…
D - Nested Segments CodeForces - 652D You are given n segments on a line. There are no ends of some segments that coincide. For each segment find the number of segments it contains. Input The first line contains a single integer n (1 ≤ n ≤ 2·105) - t…
题目链接 定义一种操作f(u, v) = u^u+1^.......^v. (u<=v), 给n个数, q个询问, 每个询问给出一个区间[l, r], 求这个区间里的f(a[i], a[j]) (l<=i<=j<=r)的最大值. 一开始竟然用n^2m的方法, 真是有点脑残.. #include <iostream> #include <vector> #include <cstdio> #include <cstring> #incl…
Description You are given an integer N. Consider all possible segments (线段,划分)on the coordinate axis with endpoints at integer points with coordinates between 0 and N, inclusive; there will be  of them. You want to draw these segments in several laye…
题解: 方法非常巧妙的一道题 首先考虑要求全部为0怎么做 发现是个欧拉回路的问题(很巧妙) 直接dfs一遍就可以了 而这道题 要求是-1,1,0 我们可以先离散化 完了之后判断每个点被奇数还是偶数条边覆盖 如果是奇数,那么就多连一条边 另外有个细节是为了要用欧拉回路区间左开右闭 代码: #include <bits/stdc++.h> using namespace std; const int N=4e5; ; int n,cnt[N],rd[N],b[N],head[N],l1; stru…
大意: 给定无向图, 无偶环, 每次询问求[l,r]区间内, 有多少子区间是二分图. 无偶环等价于奇环仙人掌森林, 可以直接tarjan求出所有环, 然后就可以预处理出每个点为右端点时的答案. 这样的话区间询问等价于区间求和, 特殊处理一下左右边界的环即可. 要注意同一个点可能属于多个环!! #include <iostream> #include <iostream> #include <algorithm> #include <cstdio> #incl…
题目 题意:sum(l,r)表示数列a中索引为l到r-1(都包含)的数之和(如果l==r则为0).给出数列a,求合适的delim0, delim1, delim2,使res = sum(0, delim0) - sum(delim0, delim1) + sum(delim1, delim2) - sum(delim2, n)最大. 方法:枚举delim1,扫一遍就可以求出此时能使res最大的delim0和delim2.记录res最大值.实现有一些细节,比如可以将res的计算公式化为前缀和的公式…
620A - Professor GukiZ's Robot    20171122 \(ans=max(\left | x2-x1 \right |,\left | y2-y1 \right |)\) #include<stdlib.h> #include<stdio.h> #include<math.h> #include<cstring> #include<iostream> #include<algorithm> using…