11 2022 档案
摘要:一点性质 (1) x xor y = z x xor z = y (2) xor是一个不带进位的二进制加法. 实际例子 已知$n$个同学的学号,现在有一场活动,来了$n-1$个同学,他们每个人都把自己的学号写了下来,告诉你这$n-1$个同学的学号,问哪个同学没来。 考虑$(\bigoplus_{i=
阅读全文
摘要:Idea 仅仅需要枚举第一行就行了, 其他行可以用上面的情况分别写出. 注意可以使用宏定义简化代码的编写, 减小调试难度. 注意if(){}的大括号总是要加. Code #include <iostream> #include <string> using namespace std; #defin
阅读全文
摘要:终于一遍就写对了. 第一次没有注意读题导致了一个没有注意到什时候要开始统计. Code #include <iostream> #include <string> #define int long long using namespace std; #define F(i, a, b) for(in
阅读全文
摘要:Idea 数位DP. 注意加一点记录. 第一次写的时候把$i$写成了1, 调整了好久, 第二个错误是没注意到13是要连续的. 因此Code可以再简化. Code #include <bits/stdc++.h> using namespace std; #define MAXN 16 #define
阅读全文
摘要:题目 Problem Description 杭州人称那些傻乎乎粘嗒嗒的人为62(音:laoer)。 杭州交通管理局经常会扩充一些的士车牌照,新近出来一个好消息,以后上牌照,不再含有不吉利的数字了,这样一来,就可以消除个别的士司机和乘客的心理障碍,更安全地服务大众。 不吉利的数字为所有含有4或62的
阅读全文
摘要:Idea 可以模仿我们人类分类讨论的时候做的事情, 并且加以记忆化, 这样就可以完成. Code #include <bits/stdc++.h> using namespace std; #define MAXN 16 #define F(i, a, b) for(int i=(a); i<=(b
阅读全文
摘要:今天来水一道题目, 名字叫逆序对. 主要是复习一下归并排序的写法. Code #include <bits/stdc++.h> using namespace std; #define MAXN 500005 #define F(i, a, b) for(int i=a; i<=b;i++) #de
阅读全文
摘要:题目描述 链接:https://ac.nowcoder.com/acm/problem/20241 来源:牛客网 相信大家都玩过扫雷的游戏。那是在一个n*m的矩阵里面有一些雷,要你根据一些信息找出雷来。 万圣节到了 ,“余”人国流行起了一种简单的扫雷游戏,这个游戏规则和扫雷一样,如果某个格子没有雷,
阅读全文
摘要:题目描述 链接:https://ac.nowcoder.com/acm/problem/207040 来源:牛客网 牛客幼儿园的小朋友们围成了一个圆圈准备玩丢手绢的游戏,但是小朋友们太小了,不能围成一个均匀的圆圈,即每个小朋友的间隔可能会不一致。为了大家能够愉快的玩耍,我们需要知道离得最远的两个小朋
阅读全文
摘要:题目描述 链接:https://ac.nowcoder.com/acm/problem/18386 来源:牛客网 小N现在有一个字符串S。他把这这个字符串的所有子串都挑了出来。一个S的子串T是合法的,当且仅当T中包含了所有的小写字母。小N希望知道所有的合法的S的子串中,长度最短是多少。 思路 还是和
阅读全文
摘要:思路: 尺取法 注意本题目中所有的内容全部是证书, 这就为我们维护了一个很好的单调性. 考虑最暴力的$\mathcal O(n^3)$的做法, 就是枚举起点, 终点, 然后分别求和. 但是我们可以做的好一点. 假设现在我们有这样的一个情况: + + + + + + + ^l ^r sum[l..r]
阅读全文
摘要:好像是某道CF问题的变形, 记一下. 题目描述 有若干的排列在一条直线上的点$p_i$, 每个点上有$a_i$个人, 找出一个点, 使得所有人移动带这个人的位置上的总距离最小. 结论. 从左到右累加人数, 寻找刚刚过半的人数. 证明. (扰动法) 若$\sum_{i=1}^{x-1}<\sum a_
阅读全文
摘要:前缀和 对于二维前缀和, 令$b[n][m]$是$\sum_{i=1}^n\sum_{j=1}^ma_{ij}$ 的值, 那么因为容斥原理, 有 $$ b[i][j] = b[i-1][j]+b[i][j-1]-b[i-1][j-1]+a[i][j]. $$ 要是查询$(a,b)..(c,d)$的话
阅读全文
摘要:Idea 注意到中位数只关心数据的相对大小, 因此考虑从目标数字开始往两边求前/后缀和, 接下来使用乘法原理来进行组合即可. 可以用map统计. 第一次感觉只要看一看扩展, 当时忽略了这些扩展之间可以组合. Code #include <bits/stdc++.h> using namespace
阅读全文
摘要:思路 写出如下的伪代码: 然后实现出来就是这样: #include <bits/stdc++.h> using namespace std; #define MAXN 32005 #define F(i, a, b) for(int i=a; i<=b;i++) #define Fd(i, a, b
阅读全文
摘要:题目描述 链接:https://ac.nowcoder.com/acm/contest/20960/1004 来源:牛客网 他在不超过t次四舍五入可获得的最高成绩。请注意,他可以选择不使用全部t次机会。此外,他甚至可以选择完全不对成绩进行四舍五入。 在这个问题中,使用经典的舍入规则:将数字四舍五入到
阅读全文
摘要:题目描述 链接:https://ac.nowcoder.com/acm/contest/20960/1006 来源:牛客网 vigoss18是一个强烈的强迫症患者,他的代码都符合下面这些规则: 1.所有的注释都是/**/风格的,两个星号中间的内容为注释内容,需要把这个符号和里面的内容全部去掉 2.代
阅读全文
摘要:思路 因为有很多的相似部分不妨用define定义一下, 会很好. Code #include <bits/stdc++.h> using namespace std; #define MAXN 32005 #define F(i, a, b) for(int i=a; i<=b;i++) #defi
阅读全文
摘要:观察 根据手玩样例可以发现睡先造出来0对方谁就失败. 同样也可以想到在一棵树上进行操作, 从节点出发, 转移看的是当前是谁在执掌. 自底向上的判定, 同样可以证明出来只有$a[0]\leq\min{a[1]..a[n]}$的情况是Bob, 否则就是Alice. Code int a[MAXN]; v
阅读全文