摘要:
这题只能说不看题解真写不出来(可能是因为我没有脑子吧... 可以证明一下题解: 1.如果所有数异或起来不为0,则输出NO 首先我们发现三个数里面之后有一个1的时候,会变成三个1。如果有两个1的话,会变成0个1。我们发现其奇偶性是不会改变的。 2. 对于奇数情况,我们先选择 1, 3, 5, ..., 阅读全文
摘要:
一开始我还想着用什么数据结构去维护的,想了好久没想出来。 其实看范围就应该想到n根号n能过的。 题意就是说每个点都有自己的颜色,给你q个操作,每次操作将这个点的颜色扩散给相邻点。问你q个操作之后每个点的颜色是什么。 首先我们暴力做复杂度是O(q*m)的这样肯定是不行的,于是我们想到优化。难道我们真的 阅读全文
摘要:
题意就是给你一个4*4的网格,之后网格上有一些格子被染色了。问你有多少种选择方案,使得选的所有格子包括所有被染色的格子,之后你选的格子要是一个连通块。 attention: 不能是空心的连通块(出现回这种形状) 首先我们看之后16个格子,自然就想到2^16次暴力枚举。之后check可不可行就行了。 阅读全文
摘要:
对抗搜索也叫极大极小值搜索,其核心思想就是先搜到底部,将叶子节点的值返回上去,之后极大节点选择所有分支里的极大值返回,极小节点选择所有分支里的极小值返回。 对顶堆维护中位数。emmm其实对顶堆维护中位数是一个板子,不过注意这里会有奇偶中位数。 注意一下就行了 #include <bits/stdc+ 阅读全文
摘要:
给你n物品,每个物品有a和b两个属性。你现在要挑选出一个集合S。 使得max ai >= sum(bi) {i ∈ S} (中文意思就是选一个集合,集合中所有物品属性a的最大值 大于等于 集合中所有物品b属性的和) 问你有多少种挑选方案。S不为空 模上998244353 首先对于模型 求挑选方案数, 阅读全文
摘要:
题目要求每一个长度为偶数的正方形里,1的个数都是奇数。 于是我们发现,一旦n >= 4同时 m >= 4那么一定是-1,奇+奇+奇+奇=偶 之后就剩下了三种可能性,n=1,n=2,n=3 于是考虑状压dp。 #include <bits/stdc++.h> using namespace std; 阅读全文
摘要:
差点AKdiv3www 首先这道题肯定不能暴力了啦。之后我们发现这道题其实跟数位dp非常的相像。那么数位dp的时候,一旦某一位变大了,那么后面的数字其实是随便选的,因为不管怎么选,这个数字肯定是大于之前的数的。 比如122245与123***肯定不管怎么取*的数字肯定是比122245大的。 之后这道 阅读全文
摘要:
这场区分度比较低完全就是手速场嘛...趁机上了波分。 感觉这场最有思维量的就是这道D2了(D1直接n2并查集水过去了) 从D1我们就有一种感觉,题目给我们的其实是两个森林,我们每次肯定是将森林中的两棵树连接在一起。 那么我们不妨设置1号节点所在的树为主树,让森林中其他树都尽可能连接到主树上去。 所以 阅读全文
摘要:
A.好哥哥 题目的意思就是:从第一层开始往后起跳,每次可以跳到该层层数减一或者加一的层数,询问跳m次后最多可以经过多少对不重复的括号。 首先我们发现这个其实是一个树形结构。 那么我们很容易就能得到一个想法,如果钱不够的话,那一定是跳到树的最长链上。 但是如果钱够呢?那么我们就需要考虑来回走的情况,我 阅读全文
摘要:
给定n个数字,m个操作 操作1是往数组最后添加一个数字x 操作2是给出[L, R],与数字x,输出在[L, R]中选一个数字p使得,a[p]^a[p+1]^...^a[n]^x的值最大 首先,考虑题目要求的是【1,R】的话,那么其实这道题无非就是可持久化trie + 前缀和异或而已。 但是问题就是有 阅读全文