因为我们只需要考虑 x位的情况就知道了 a[i]+b[j] 的第x位情况, 那么我们在枚举第x位的时候,把a,b数组对 2的x+1次方 取模 ,即可得到每个数的二进制后x位。 然后利用这个结论, 对于一对数 a[i] +b[j] = num, 如果我们想要num的二进制第x位为1,需要满足: num <= a[i]+b[j] <2*num 3*...
有n堆石子,每堆石子数量是ai,有一个属性ki,一个人取第i堆石子,可以取[1,floor(ai/ki)]个石子。 Alice和Bob轮流操作,不能操作的人输,问是否先手必胜。 n<=200;ai,ki<=1e9 分析: 首先我们可以分析一堆石子,然后把每堆石子的sg异或起来就行了,主要是如何求sg函数 可以找到关于sg函数的规律: 然后就是求...
AtCoder Regular Contest 092 2D Plane 2N Points AtCoder - 3942 (匈牙利算法),ProblemStatementOnatwo-dimensionalplane,thereare N redpointsand N bluepoints.Thecoordinatesofthe i-thredpointare (ai,bi),andthecoo
AtCoder Regular Contest 092 D - Two Sequences 题意: 给出两个长度为nnn的序列,求出所有ai+bja_i+b_jai+bj的异或值。 题解: 异或相关还是按位考虑吧 如果能求出最总每一位有多少个1就可以算答案了。 那么枚举aia_iai,统计它能对第jjj位贡献多少个1 设t=2jt=2^jt=2j,容易发现,...
【AtCoder Regular 091】 E - LISDL(构造) 题意: 给定n,a,b三个整数([1,3*10^5]),构造一个最长上升子序列长度为a,最长下降子序列b的序列,若不存在这样的序列,输出-1。 分析:当时看到这题出的比较快,然后我就看了看题,看到题后,觉得这题似曾相识,就搞了1个小时把。。 还是没能写对。
先根据坐标关系建立是否能匹配的关系,然后用二分图最大匹配算法的匈牙利算法跑即可。 不会的话可以去学习新算法。 细节见代码: #include <iostream>#include<cstdio>#include<cstring>#include<algorithm>#include<cmath>#include<queue>#include<stack>#include#include<set>#include<vector>#include<iomanip>#define...
AtCoder Regular Contest 092 D(二进制性质) 偶然听到打arc的同学讨论这题,就听了一下题面。 之后断断续续想了两天,又断断续续打了两天。 题意非常简洁 输入a数组,b数组 对于每一个i,j ans^=a[i]+b[j] 输出ans 数组长度100000 a,b的元素小于2^28...
AtCoder Regular Contest 092 C - 2D Plane 2N Points 题意: 二维平面上给了2N2N个点,其中NN个是AA类点,NN个是BB类点。每个AA类点可以和横纵坐标都比它大的BB类点匹配,求最大匹配数。 分析: 网络流裸题。 #include<bits/stdc++.h>usingnamespacestd;#defineMAXN110#defineinf0x7fffffffinthead[5+MAX...
【AtCoder】ARC092 D - Two Sequences 【题目】AtCoder Regular Contest 092D - Two Sequences 【题意】给定n个数的数组A和数组B,求所有A[i]+B[j]的异或和(1<=i,j<=n)。n<=200000。 【算法】二分+模拟 【题解】将答案分成(A[i]+B[j]-A[i]^B[j])的异或和以及A[i]^B[j]的异或和,...
AtCoder Regular Contest 092 C - 2D Plane 2N Points Time limit : 2sec /Memory limit : 256MB Score :400points Problem Statement On a two-dimensional plane, there areNred points andNblue points. The coordinates of thei-th red point are(ai,bi), and the coordinates of thei-th blue ...