Atcoder D - A or...or B Problem(思维)】的更多相关文章

题目链接:http://agc015.contest.atcoder.jp/tasks/agc015_d 题意:给出两个数b,a(a>=b)问{a,a+1,....,b}的集合内取任意数求或运算最多能够表示多少个数. 题解:数据很吧不用想着暴力,主要是位运算一般都会想到用二进制来写.具体的写法详见代码注释,不好表达. #include <iostream> #include <cstring> using namespace std; typedef long long ll…
D - Handstand Time Limit: 2 sec / Memory Limit: 1024 MB Score : 400400 points Problem Statement NN people are arranged in a row from left to right. You are given a string SS of length NN consisting of 0 and 1, and a positive integer KK. The ii-th per…
题目传送门:https://arc092.contest.atcoder.jp/tasks/arc092_b 这场arc好难啊...这场感觉不像正常的arc...其实这道题还可以更早写出来的,但是蒟蒻解不等式的时候搞错解集了,一个错调了半天... 我的做法是首先按位考虑,求所有的ai+bj中每个数位的xor和. 首先我们可以想到,如果有两个数x,y,且0<x,y<=2k,那么当0<=x+y<2k时,x+y在2k这一位上的贡献肯定为0. 但是如果2k+1<=x+y<2k+…
题目链接:http://agc017.contest.atcoder.jp/tasks/agc017_c 题解:就是简单的模拟一下就行.看一下代码就能理解 #include <iostream> #include <cstring> #include <cstdio> using namespace std; const int M = 2e5 + 10; int a[M] , vis[M] , cnt[M]; int main() { int n , m; scanf…
题目链接:http://arc075.contest.atcoder.jp/tasks/arc075_c 题意:问数组a有多少子区间平均值为k 题解:一开始考虑过dp,但是显然不可行,其实将每一个数都减去k就不用求平均值了,然后就是求满足前缀和sum[r]-sum[l-1]>=0,有多少组就行了.有点像逆序对. 用线段树即可. #include <iostream> #include <cstring> #include <cstdio> #include <…
 Bracket Sequences Concatenation Problem time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output A bracket sequence is a string containing only characters "(" and ")". A regular bra…
http://tenka1-2017.contest.atcoder.jp/tasks/tenka1_2017_d 给定N,K和A1...AN,B1...BN,选取若干个Ai使它们的或运算值小于等于K时,使得对应的ΣBi值最大,求最大值. 其实我不大理解为什么要这么弄. 一个数K,如果X小于它,那么K的二进制中第r位是1,X的第r位可以是0或1:但如果K的第r位是0,X的第r位一定是0. 我只能勉强这样想: 可以先选定一个或运算值的上限tmp,如果(Ai|tmp==tmp),那么根据或运算性质当…
D. Yet Another Subarray Problem 这个题目很难,我比赛没有想出来,赛后又看了很久别人的代码才理解. 这个题目他们差不多是用一个滑动窗口同时枚举左端点和右端点,具体如下: 首先枚举0~m,这个是说更新的位置,如果是1 当m==3 就更新1 4 7 10... 如果是2,当m==3 就更新 2 6 8 11.... 最后都会被更新的. 核心代码 ; j < n - i; ++j) { s += sum[j]; ) s -= k;//这个在判断是不是经过了一个区间,如果经…
Chinese Postman Problem is a very famous hard problem in graph theory. The problem is to find a shortest closed path or circuit that visits every edge of a (connected) undirected graph. When the graph has an Eulerian Circuit (a closed walk that cover…
题意 题目链接 系统中有两个数\((a, b)\),请使用\(62\)以内次询问来确定出\((a, b)\) 每次可以询问两个数\((c, d)\) 若\(a \oplus c > b \oplus d\)返回\(1\) 若\(a \oplus c = b \oplus d\)返回\(0\) 若\(a \oplus c < b \oplus d\)返回\(-1\) 保证/需要保证\(0 \leqslant a, b, c, d, < 2^{30}\) Sol 严重怀疑自己小学数学没学好,…