
杭电
不会喷火的绿色小恐龙
这个作者很懒,什么都没留下…
展开
-
2021-10-16
题目比赛的时候,不会做,因为知道涉及到dp。虽然是简单的dp,但是本菜鸡只要一想到dp,就连最简单的都不会做。可见,要多练dp题,掌握基础。这道题目考察dp+排列组合+快速幂。现在看来,按照题意的要求,真的不难。一个排列组合的结论:Cn1+Cn2+...+Cnn=2n−1C_{n}^{1}+C_{n}^{2}+...+C_{n}^{n}=2^{n}-1Cn1+Cn2+...+Cnn=2n−1#include <bits/stdc++.h>using namespace std;原创 2021-10-16 14:31:51 · 72 阅读 · 0 评论 -
2021-08-18
题目通过这道题目来复习一下有关最小生成树的知识。以前只记得板子,但是不知道其真正含义。现在明白了许多。不过对于这道题而言,官方题解也是正好卡过去的…利用prim普里姆算法直接暴力。说实话,最开始都没有意识到是最小生成树,可见数据结构掌握得太差了,MST性质假设N=(V, {E})是一个连通网,U是顶点集V的一个非空子集,如果(u, v)是一条具有最小值的边,其中u属于U,v属于V-U,则必定存在一棵包含(u, v)的最小生成树。#include <bits/stdc++.h>u原创 2021-08-18 14:07:01 · 66 阅读 · 0 评论 -
2021-08-17
题目运用线性筛和Nim博弈的相关知识。a=p1x1p2x2p3x3pixipnxna=p_{1}^{x_{1}}p_{2}^{x_{2}}p_{3}^{x_{3}}p_{i}^{x_{i}}p_{n}^{x_{n}}a=p1x1p2x2p3x3pixipnxn,b=p1y1p2y2p3y3piyipnynb=p_{1}^{y_{1}}p_{2}^{y_{2}}p_{3}^{y_{3}}p_{i}^{y_{i}}p_{n}^{y_{n}}b=p1y1p2y2p3y3piy原创 2021-08-17 16:53:17 · 75 阅读 · 0 评论 -
2021-08-17
题目利用字符串哈希的板子。说实话,看赛后的题解,真心看了半天看不懂。随便学习一下字符串哈希的相关知识,现在学了一点皮毛,就是当成进制。注意:p一般取131或13331,因为这样可以最大可能降低相同率,避免两个不同的字符串有相同的哈希值(虽然我也不明白为什么)#include <bits/stdc++.h>using namespace std;typedef unsigned long long ULL;#define T int T; scanf("%d", &T); g原创 2021-08-17 15:27:02 · 63 阅读 · 0 评论 -
2021-08-07
题目比赛的时候,一直写不出来。真的太无语了。一定要相信并且坚信数学公式ave=1n(a1+a2+...+an)ave=\frac{1}{n}(a_{1}+a_{2}+...+a_{n})ave=n1(a1+a2+...+an),求得 aveminave_{min}avemin 和avemaxave_{max}avemax为aveaveave的范围#include <bits/stdc++.h>using namespace std;#define T int T; scan原创 2021-08-07 19:58:43 · 60 阅读 · 0 评论 -
2021-08-05
题目除去输入的效率问题,觉得这个利用双指针(并查集)的解题思路真的是精妙无比。#include <bits/stdc++.h>using namespace std;#define T int T; scanf("%d", &T); while(T--)const int N=5e6+10;int pre[N], nex[N];bool judge[N];int main(){ int n, op, x; scanf("%d", &n); memset(原创 2021-08-05 20:43:54 · 89 阅读 · 0 评论 -
2021-08-05
题目说实话,比赛的时候,一直写不出来。推了规律,当时也忘记了快速幂的板子,所以一直不能AC。简直心态要爆炸。赛后补题还发现了一个坑,就是结果不能为负数,所以取模的时候要注意。谨以此题,纪念不会板子和不懂模数的岁月(虽然现在也没有多懂模数)#include <bits/stdc++.h>using namespace std;#define T int T; scanf("%d", &T); while(T--)typedef long long ll;const int原创 2021-08-05 18:35:31 · 62 阅读 · 0 评论 -
2021-07-28
题目规律不难找,可通过打表看出来,但是比赛的时候,队员通过使用log()函数、ceil()函数和pow()函数,使得运算过程中数据丢失了精度,结果总是WA再一次使用>>右移和<<左移,加深本菜鸡这些运算符的理解。(以前不理解,所以也不使用,最近接触多了,觉得很神奇)#include <bits/stdc++.h>using namespace std;#define T int T; scanf("%d", &T); while(T--)typedef原创 2021-07-28 19:54:50 · 67 阅读 · 0 评论 -
树状数组学习小结
树状数组学习小结树状数组的含义构造lowbit(x)求区间[1, i]所有元素的和(前缀和)及单点查询单点更新(影响多个C元素)求逆序对数单点查询和区间查询以及区间修改单点查询区间修改(单点查询的情况下)区间查询区间修改(区间查询的情况下)树状数组的优缺点树状数组的含义C[i]代表子树的叶子结点的权值之和1=(001) C[1]=A[1];2=(010) C[2]=A[1]+A[2];3=(011) C[3]=A[3];4=(100) C[4]=A[1]+A[2]原创 2021-07-28 13:43:39 · 97 阅读 · 0 评论 -
2021-07-27
题目通过这道题,明白十六进制可以这样使用(可见C语言没学好,对不起法爷),而且这样的题目应该使用前缀和来优化时间复杂度。以及按位与&和右移>>的含义(这几次训练,让本菜鸡更加明白这些符号的含义)& bitwise_and 按位与| bitwise_or 按位或^ bitwise_xor 按位异或(不同为true)#include <bits/stdc++.h>using namespace std;#define T int T; scanf(原创 2021-07-27 20:40:38 · 67 阅读 · 0 评论 -
2021-06-25
题目以前觉得学习学校的课程,除了了解皮毛,就是应付期末考试。做过这道题才发现,自己的专业素养太差了。现在的目标,就是成为一名专业人!!!可图性判定1.度序列:若把图G所有顶点的度数排成一个序列S,则称S为图G的度序列2.序列是可图的:一个非负整数组成的有限序列如果是某个无向图的度序列,则称该序列是可图的。Havel-Hakimi定理(握手定理)由非负整数组成的非增序列S: d1, d2,…, dn (n>=2, d1>=1)是可图的,当且仅当序列S1: d2-1, d3-1,原创 2021-06-25 19:28:47 · 71 阅读 · 0 评论 -
2021-06-24
题目将函数进行求导,根据得到的导数可判断其导数的单调性为单调递增。当F’(x)=0时,可得到min(F(x))。此时可利用二分查找(binary search)。利用三分查找之前,可判断凸包的位置,求导是其中的一个方法。之前刷CF时,看到有人用三分查找(ternary search),今天第一次接触和学习这个算法。也对二分查找有了新的认识。#include <cstdio>#include <cmath>#define T int T; scanf("%d", &T原创 2021-06-24 21:09:49 · 105 阅读 · 0 评论