草庐IT

「学习笔记」组合计数与中国剩余定理

「学习笔记」组合计数与中国剩余定理点击查看目录目录「学习笔记」组合计数与中国剩余定理知识点排列错排列组合数式子一些性质卢卡斯定理谔项式定理谔项式反演形式零形式一形式谔小技巧:线性推阶乘逆元中国剩余定理(CRT)做法证明EXCRTExLucas问题拆为CRT构造余数构造函数代码例题排列组合排队题意思路CodeCombination思路Code[SDOI2016]排列计数思路代码[ZJOI2010]排列计数思路代码BZOJ2839集合计数思路代码牡牛和牝牛思路代码序列统计思路代码[SDOI2009]虔诚的墓主人思路代码[SDOI2010]地精部落思路代码[ZJOI2011]看电影思路代码中国剩余定

2022.11.1每日一题

DaimayuanOnlineJudge-网格判断题目描述您将获得一个\(n×n\)的网格,网格中每个正方形的颜色为黑色或白色。如果满足以下所有条件,则网格是正确的:每行的黑色方块数与白色方块数相同。每列的黑色正方形数与白色方块数相同。没有行或列具有\(3\)个及以上相同颜色的连续正方形。给定网格,确定它是否正确。输入格式第一行一个数字\(n\)。接下来\(n\)行,每行包含一个长度为\(n\)的由字符B和W组成的字符串,代表网格正方形的颜色。输出格式如果网格正确,请打印数字\(1\)在一行上。否则,请打印数字\(0\)在一行上。样例输入4WBBWWBWBBWWBBWBW样例输出1数据范围\(

AtCoder Beginner Contest 262 题解

AtCoderBeginnerContest262A-WorldCup题解:循环判断即可#includeusingnamespacestd;voidsolve(){intn;cin>>n;for(inti=n;;i++){if(i%4==2){coutB-Triangle(Easier)题意:给定\(n\)点,\(m\)条边,如果\(a,b,c\)相连,那么\(ans++\),求\(ans\)题解:观察到\(n\)\(\le\)\(100\)可以直接暴力循环判断,然后直接搞#includeusingnamespacestd;constdoublePI=acos(-1.0);typedefpai

CodeTON Round 2 (Div. 1 + Div. 2, Rated, Prizes!) 题解

CodeTONRound2(Div.1+Div.2,Rated,Prizes!)题解A-Two0-1Sequences题意:有两个字符串\(a和b\),都是\(01\)字符串,可以进行一下操作看是否可以将\(a\)变成\(b\),设\(a_1\)和\(a_2\)表示的是字符串\(a\)的第一个字母和字母在满足可以操作的前提下,将\(a_2\)变成\(max(a_1,a_2)\),并将\(a_1\)删去在满足可以操作的前提下,将\(a_2\)变成\(min(a_1,a_2)\),并将\(a_1\)删去,思路:删去的时候肯定不能让字符串\(a\)的大小\(b\)的大小,并且得知后面的字符串一定要相

「学习笔记」树链剖分

「学习笔记」树链剖分点击查看目录目录「学习笔记」树链剖分树链剖分算法实现例题思路代码练习题染色思路代码QTREE思路代码[HAOI2015]树上操作思路代码[NOIP2013提高组]货车运输思路代码[NOIP2015提高组]运输计划思路代码遥远的国度思路代码树链剖分树链剖分就是把一棵树分成多个链,再维护每条链的信息。剖分的方法有很多种,如重链剖分,长链剖分。一般情况下,树链剖分指重链剖分。算法ByOI-Wiki:定义重子节点表示其子节点中子树最大的子结点。如果有多个子树最大的子结点,取其一。如果没有子节点,就无重子节点。定义轻子节点表示剩余的所有子结点。从这个结点到重子节点的边为重边。到其他轻

归并排序详解

时间复杂度为\(O\)\((\)\(n\)\(log\)\(n\)\()\),是一种稳定的排序。思想归并排序是一种基于分治思想的排序算法,总的来说有三个步骤:分解:将\(n\)个元素分为长度为\(\frac{n}{2}\)的子序列。解决:运用合并排序法对两个子序列递归的排序。合并:合并两个已经排好序的子序列已获得排序结果。实现方法(递归法)将序列每相邻两个数字进行归并,形成\(\lfloor\frac{n}{2}\rfloor\)个序列,排序后每个序列包含两个元素。将上述序列再次归并,形成\(\lfloor\frac{n}{4}\rfloor\)个序列,每个序列包含\(4\)个元素。重复步骤\

Self-Attention:初步理解

Self-Attention的基本结构与计算Attention(注意力)实际上就是权重的另一种应用的称呼,其具体结构与初始输入的content\(\vec{x_{1}},\vec{x_{2}},\cdots,\vec{x_{n}}\in\mathcal{X}\)紧密相关。其中,\(\vec{x_{1}},\vec{x_{2}},\cdots,\vec{x_{n}}\)为维度相同(设为\(d\),即\(\vec{x_{i}}\in\mathbb{R}^{d}\)for\(\forall1\leqi\leqn\))的向量。所谓wordembedding,实质是用低维的向量表示物体,但是,表示时需要

数论合集

数论合集\(Part\)\(1\):裴蜀定理定理:对于任意整数\(a,b\),记\(\gcd(a,b)=d\),则对于所有整数\(x,y\),都有\(d|ax+by\),特别的,一定存在整数\(x,y\)使得\(ax+by=d\)。证明:因为\(d=gcd(a,b)\),所以有\(a\equivb\equiv0\pmodd\),所以\(ax+by\equiv0\timesx+0\timesy\equiv0\pmodd\),所以\(d|ax+by\)。记所有\(ax+by\)的集合为\(S\),设\(w=ax_1+by_1\)是\(S\)中的最小正值,则有\(w\ged\);对于所有\(u=ax

「题解报告」[POI2008]PER-Permutation

「题解报告」[POI2008]PER-Permutation点击查看目录目录「题解报告」[POI2008]PER-Permutation思路代码不理解哪里难了,学过扩卢并且推一下式子基本就是两眼切吧。个人感觉顶多上位紫。思路首先设\(f_i\)表示前\(i-1\)位固定,第\(i\)位选一个比原来小的,后面随便排的方案数。显然\((\sum_{i=1}^{n}f_i)+1\)为答案,那么考虑如何快速求出\(f_i\)。考虑用“交换”的思想,即在后\(n-i\)个数中找到比\(a_i\)小的数和它换一下,然后再随便排。然而这里是可重集,所以还要去重乘上\(\dfrac{1}{\prod_{j}(

复杂度分析

复杂度复杂度分析是数据结构与算法的核心精髓,指在不依赖硬件、宿主环境、数据集的情况下,粗略推导,考究出算法的效率和资源消耗情况,包括时间复杂度和空间复杂度时间复杂度首先从CPU的角度看待程序,每行代码执行的操作都包括:读程序,写程序,运算。这里粗略估计,忽略每行代码读程序和写程序的时间假设每行代码执行(运算)的时间都是一样的,为单位时间(即假设程序执行一次均消耗单位时间)大\(O\)记号\[T(n)=O(f(n))\]其中:\(T(n)\):程序执行总时间\(n\):数据规模大小\(f(n)\):程序执行的总次数\(O\):程序执行总时间\(T(n)\)与\(f(n)\)成正比大\(O\)记号