摘要:
只有第一次移动步长1是奇数,后面都是偶数,所以x和y必定一个为奇数一个为偶数。 每次可以把步长加在x或者y的前面或者后面,四种分支DFS。 1 #define HAVE_STRUCT_TIMESPEC 2 #include <bits/stdc++.h> 3 using namespace std; 阅读全文
摘要:
枚举元素s[i],枚举区间[j,r],r=j+i-1,如果s[i]==t[j],则可以把s[i]加到当前区间t串的左侧,如果s[i]==t[r],则可以把s[i]加到当前区间t串的右侧。答案为Sum:dp[1][m]~dp[1][n],m~n均为有效前缀,后面随便放。 1 #define HAVE_ 阅读全文
摘要:
枚举第一个数x,根据第一个数找寻和它接近的第二个数y,再找寻和(x+y)/2接近的第三个数z。 1 #define HAVE_STRUCT_TIMESPEC 2 #include<bits/stdc++.h> 3 using namespace std; 4 long long r[100007], 阅读全文
摘要:
1 #define HAVE_STRUCT_TIMESPEC 2 #include<bits/stdc++.h> 3 using namespace std; 4 vector<int>v[200007]; 5 int vis[200007];//孩子结点数量 6 pair<int,int>val[ 阅读全文
摘要:
题意: 输入两个正整数N和K(N<=50000,K<=10),接着输入一行N个正整数(1~N),从第二个数开始,每次输入K个它出现在他之前的数字(包括他自己,按照出现频率降序排序,出现频率相同按照数字大小从小到大排序,如之前出现过的数字个数不到K个,则有多少输出多少)。数据保证至少有一次输出。 AA 阅读全文
摘要:
先进行一次绝对值差分,把序列中的数都变成 0,1,2 。如果序列中存在 1,答案只能是 0 或 1;如果不存在 1,答案只能是 0 或 2。对于不存在 1 的情况,我们可以将每个数都 除以2,最后再将答案 乘2,这显然是等价的。于是现在答案只能是 0 或 1 ,发现绝对值差分等价于异或。现在问题转化 阅读全文
摘要:
1 #define HAVE_STRUCT_TIMESPEC 2 #include<bits/stdc++.h> 3 using namespace std; 4 const int mod = 998244353; 5 long long p[200007]; 6 int main(){ 7 io 阅读全文
摘要:
找到所有环,以环长度的因子为步长进行跳跃,如果每次跳跃颜色都相同,说明经过步长次转换后的序列存在颜色相同的无穷路径。 1 #define HAVE_STRUCT_TIMESPEC 2 #include<bits/stdc++.h> 3 using namespace std; 4 int a[200 阅读全文
摘要:
1 #define HAVE_STRUCT_TIMESPEC 2 #include<bits/stdc++.h> 3 using namespace std; 4 long long a[300007],q[300007],b[300007]; 5 long long mx[1200007],mxi 阅读全文
摘要:
题意: 输入一个正整数K(<=200),接着输入K行,第一个数为N(<=1000),后来跟着N个整数(1~N)表示第i列皇后的所在行数,所有的皇后不在一列,输出是否所有的皇后不会相互攻击。 trick: N^2/2不会超时,N^2会在最后一个测试点超时。 AAAAAccepted code: 1 # 阅读全文