Mail.Ru Cup 2018 Round 1】的更多相关文章

题目链接 分析一下题意可以得到题目要求的是满足下面这个 公式的不同的i,ji,ji,j的方案数; 即(i2+j2)mod   m=0 (n ≤ i,j≤ n)(i^2+j^2)\mod \ m =0\ ( n\ \leq\ i,j\leq \ n)(i2+j2)mod m=0 (n ≤ i,j≤ n). 当然n2n^2n2是可以解决的,但是数据范围不允许我们这么做,于是我们可以换个思路,如果一个数iii满足 imod &a…
A:签到 #include<iostream> #include<cstdio> #include<cmath> #include<cstdlib> #include<cstring> #include<algorithm> using namespace std; #define ll long long #define N 110 char getc(){char c=getchar();while ((c<'A'||c&g…
A:阅读理解. #include<iostream> #include<cstdio> #include<cmath> #include<cstdlib> #include<cstring> #include<algorithm> using namespace std; #define ll long long #define N 1010 char getc(){char c=getchar();while ((c<'A'|…
https://codeforces.com/contest/1056/problem/B 题意:输入n,m    求((a*a)+(b*b))%m==0的(a,b)种数(1<=a,b<=n) (n<=1e9,m<=1000) 题解:由于a,b的数量级很大,而m的数量级很小,又因为求((a*a)+(b*b))%m==0,即求((a%m*a%m)+(b%m*b%m))%m==0满足要求的a,b对数,也就是求a%m,b%m的平方分别取模后相加为0或者m的a,b对数,由于此时问题只和a%…
http://codeforces.com/contest/1054/problem/D 题目大意:一个序列a1 a2...an,可以对若干个元素进行取反,使所得的新序列异或和为0的区间个数最多. 题目分析:首先易知每个位置的前缀异或和的值只有两种,因为对元素进行取反时,取偶数个元素异或和不变,奇数个元素就是原值取反.然后由于对一个位置取反,不会影响后面位置与这个位置的前缀异或和相同的位置个数(因为这个位置取反后,后面各个位置的前缀异或和也跟着改变),所以一个位置的改变只会影响与前面位置前缀和相…
A. Metro Solved. 题意: 有两条铁轨,都是单向的,一条是从左往右,一条是从右往左,Bob要从第一条轨道的第一个位置出发,Alice的位置处于第s个位置,有火车会行驶在铁轨上,一共有n个站点,1表示火车会在该站点停下,0表示不会,求Bob能否到达地s个位置(到达任意一边即可) 思路: 如果第一条铁轨的第一个位置为0,或者第s个位置的两条铁轨都不停,那么答案显然是$"No"$ 再考虑第一条铁轨上所有为1的位置都可以到达 再考虑两条轨道是否有同一个站点都都会停下的,那么就可以…
A. Determine Line Water. #include <bits/stdc++.h> using namespace std; ]; int main() { while (scanf("%d", &n) != EOF) { memset(vis, , sizeof vis); , tot, x; i <= n; ++i) { scanf("%d", &tot); while (tot--) { scanf("…
A. Elevator or Stairs? 签. #include <bits/stdc++.h> using namespace std; ]; int main() { while (scanf("%d%d%d", &x, &y, &z) != EOF) { ; i < ; ++i) scanf("%d", t + i); ] + * t[]; ]; puts(a <= b ? "YES" :…
因为睡过了只好vp. A:阅读理解. #include<iostream> #include<cstdio> #include<cmath> #include<cstdlib> #include<cstring> #include<algorithm> using namespace std; int read() { ,f=;char c=getchar(); ;c=getchar();} )+(x<<)+(c^),c=…
#include<bits/stdc++.h>using namespace std;long long mx(long long l1,long long r1,long long l2,long long r2){ return max(0LL,min(r1,r2)-max(l1,l2)+1);}int main(){ long long l1,r1,t1,l2,r2,t2; while(~scanf("%lld%lld%lld%lld%lld%lld",&l1…