![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
2020牛客暑期
图一乐图一乐
这个作者很懒,什么都没留下…
展开
-
2020暑期牛客第六场 K-Bag(思维,前缀)
收获:对于一个长度为k的区间是否存在[L,L+k−1][L,L+k-1][L,L+k−1]的所有数字,可以用区间和和区间异或和来判别。思路:对于前后残缺的区间可以预处理出前后缀中不同数字的个数,然后枚举分割点,对于完整的区间用区间和和区间异或和判断。ll a[N], XOR[N], SUM[N];ll n, k, sum, Xor;int cot1[N], cot2[N];void x_x(){ unordered_map<ll, int> mp; cot1[0] = cot2[原创 2020-07-29 12:44:14 · 118 阅读 · 0 评论 -
2020暑期牛客第三场D Points Construction Problem(构造)
int main(){ //freopen("in.txt", "r", stdin); int t; int n, m; cin >> t; while (t--) { scanf("%d%d", &n, &m); int mx = n * 4; if (m & 1) { puts("No");continue; } if (m > mx) { put原创 2020-07-21 15:53:08 · 99 阅读 · 0 评论 -
2020暑期第三场 Fraction Construction Problem(结论+扩展欧几里得)
总结:要善于分析问题。const int N = 2e6 + 5, M = 1.5e5 + 5;bool vis[N + 1];ll p[M + 1], cnt;void x_x(){ f(i, 2, N) { if (!vis[i])p[++cnt] = i; for (int j = 1;p[j] <= N / i;j++) { vis[p[j] * i] = true; if (i%p[j] == 0)break; } }}int main(){原创 2020-07-20 18:36:18 · 103 阅读 · 0 评论 -
2020暑期第二场 Fake Maxpooling(单调队列)
const int N = 5005;int t;struct node{ ll idx, w;}q[N];vector<int> v[N];int main(){ //freopen("in.txt", "r", stdin); int n, m, k; cin >> n >> m >> k; //f(i, 1, n)f(j, 1, m)mp[i][j] = i * j / gcd(i, j);原创 2020-07-14 17:16:05 · 78 阅读 · 0 评论