- 博客(384)
- 收藏
- 关注
原创 【NOI2002】银河英雄传说
题目背景NOI2002DAY1T1题目描述公元5801年,地球居民迁移至金牛座α第二行星,在那里发表银河联邦创立宣言,同年改元为宇宙历元年,并开始向银河系深处拓展。宇宙历七九九年,银河系的两大军事集团在巴米利恩星域爆发战争。泰山压顶集团派宇宙舰队司令莱因哈特率领十万余艘战舰出征,气吞山河集团点名将杨威利组织麾下三万艘战舰迎敌。杨威利擅长排兵布阵,巧妙运用各种战术屡次以少胜多...
2021-01-18 10:45:49
897
3
原创 【BZOJ1040】骑士
题目:BZOJ1040解析: 尝试将每个人痛恨的人向他连一条有向边,容易发现最后整个图是由多个基环外向树组成。对于基环树,常用的方法是断开环中的一条边使其成为一棵树再进行操作。这里也可以将一条边断开,选择这条边的一个端点为根进行树形DP。但注意被删除的边的另一个端点和根不能同时选,所以若要选根进入骑士军团还需更新从该端点到根的路径,详见代码。 所以BZOJ最终还是凉了,唉。代码:#include <bits/stdc++.h>using namespace std;const
2021-01-14 15:02:48
363
原创 树的中心
树的中心问题 给出一棵边带权的树,求树中的一个点,使得此点到树中的其他结点的最过距离最近。分析 令f[i]f[i]f[i]表示以iii为中心,其它点距离iii最远的距离。 对于一个点iii,分两种情况: 1.距离iii最远的点在以iii为根的子树中 2.距离iii最远的点不在以iii为根的子树中 初步得到状态转移方程: 第一次从儿子节点转移给父亲:f[i]=max(f[son]+w[i][son])f[i]=max(f[son]+w[i][son])f[i]=max(f[son
2021-01-14 14:40:34
528
原创 【模板】牛顿迭代法求平方根
算法流程: 1.任找一个点(x0,f(x0))(x_0,f(x_0))(x0,f(x0))。 2.做(x0,f(x0))(x_0,f(x_0))(x0,f(x0))切线L:y=f(x0)+f′(x0)(x−x0)L:y = f(x_0)+f'(x_0)(x-x_0)L:y=f(x0)+f′(x0)(x−x0)。 3.找到该切线的根x1x_1x1 4.重复步骤二迭代公式: 由牛顿迭代的原理xn+1=xn−f(xn)f′(xn)=xn−xn2−a2xn=xn2+a2xn=
2020-10-27 17:10:08
601
原创 L‘Hospital‘s rule 洛必达法则
LHopital′sruleLHopital's ruleLHopital′srule洛必达法则InterminateInterminateInterminate FormFormForm 不定型0/00/00/0 ∞/∞\infty/\infty∞/∞limx→af(x)g(x)=limx→af′(x)g′(x)\lim_{x\rightarrow a} \frac{f(x)}{g(x)}=\lim_{x\rightarrow a}\frac{f\prime(x)}{g\prime(x)}x→
2020-10-16 11:22:02
3951
原创 【托马斯微积分】(12版)阅读笔记2:极限
一.definition and theorem1. average rate of change The average rate of change of y=f(x) with respect to x over the interval [x1,x2] isΔyΔx=f(x2)−f(x1)x2−x1=f(x1+h)−f(x1)h,h≠0.\frac{\Delta y}{\Delta x}=\frac{f(x_2)-f(x_1)}{x_2-x_1}=\frac{f(x_1+h)-f(x_1)}
2020-08-19 12:08:55
1393
原创 【托马斯微积分】(12版)阅读笔记1:函数
一.相关词汇domaindomaindomain 定义域naturalnaturalnatural domaindomaindomain 自然定义域rangerangerange 值域variablevariablevariable quantityquantityquantity 变量independentindependentindependent variablevariablevariable 自变量dependentdependentdependent variablevariable
2020-07-27 21:12:05
1308
原创 【C++STL】map
一.简介 map是STL的一个关联容器,它提供一对一的hashhashhash 第一个可以称为关键字(keykeykey),每个关键字只能在map中出现一次; 第二个可能称为该关键字的值(valuevaluevalue); mapmapmap有一大特点即有序性。其内部是一颗红黑树,将插入,查找,删除的复杂度控制在log2nlog_2^nlog2n级别。二.基本用法2.1插入元素map<int,string>a;//法一:Inserta.insert(pair<i
2020-07-23 16:33:10
337
2
原创 【C++STL】queue and deque
一.queue(队列) 先进先出#include <queue>1.常用函数queue<int>aM.empty() //判断是否为空M.size() //返回元素数量M.front() //返回第一个元素M.back() //返回最后一个元素M.push() //从已有元素后面增加元素M.pop() //清除第一个元素二.deque(双端队列)#include <deque> dequedequedeque可以随机存取元素(用索
2020-07-21 15:20:31
157
原创 【C++STL】vector
一.简介 vector是一种序列式容器,将元素置于一个动态数组中加以管理,可以随机存取元素(用索引直接存取),数组尾部添加或移除元素非常快速。但是在中部或头部安插元素比较费时;二.基本用法首先得有这个#include <vector>1.初始化vector<int>a; //<>内是元素的类型vector<int>b(10,1); //定义具有10个整型元素的向量,且给出的每个元素初值为1vector<a,b> //用向量
2020-07-21 14:47:37
182
原创 【CSP(NOIP)】主要模板
前言: 今年最后一篇博客了TTTTTT 下面都是比较重要的联赛知识点,太简单或难的就不放了一.数学问题1.快速乘/快速幂inline int ksc(int a,int b,int mod){ int ans=0; a%=mod; while(b) { if(b&1) ans=(ans+a)%mod; b>>=1; a=(a+a)%mo...
2019-11-15 00:00:17
875
转载 【NOIP2012提高组】疫情控制
题目背景NOIP2012提高组DAY2试题。题目描述H国有n个城市,这n个城市用n-1条双向道路相互连通构成一棵树,1号城市是首都,也是树中的根节点。H国的首|都爆发了一种危害性极高的传染病。当局为了控制疫情,不让疫情扩散到边境城市(叶子节点所表示的城市),决定动用军队在一些城市建立检查点,使得从首都到边境城市的每一条路径上都至少有一个检查点,边境城市也可以...
2019-11-14 23:32:42
1608
原创 【NOIP模拟】货物运输
题目描述南沙群岛有N个岛屿上驻扎有边防部队。每个岛屿的位置用一个平面坐标(Xi,Yi)来表示,岛屿间的行程费用被认为是两者间的距离。例如,两个点(X1,Y1),(X2,Y2),它们的直线距离为:。军队基地在坐标为(0,0)的岛屿里面,基地存放了常用的生活物资。基地准备给每个岛屿分别送去Qi(1≤Qi≤1000)单位的货物。唯一负责运输的一艘货轮由基地取出货物,按照岛屿编号的先后顺序...
2019-11-14 23:31:09
477
原创 【HDU4325】Flowers
题目解析: 树状数组+离散化代码:#include <iostream>#include <algorithm>#include <cstdio>#include <cstring>#include <cmath>using namespace std;const int Max=100005;int n,m,t...
2019-11-13 00:34:46
148
原创 【NOIP2009提高组】潜伏者
题目描述R国和S国正陷入战火之中,双方都互派间谍,潜入对方内部,伺机行动。历尽艰险后,潜伏于 S 国的R 国间谍小C 终于摸清了S 国军用密码的编码规则:1.S国军方内部欲发送的原信息经过加密后在网络上发送,原信息的内容与加密后所得的内容均由大写字母‘A’-‘Z’构成(无空格等其他字符)。2.S国对于每个字母规定了对应的“密字”。加密的过程就是将原信息中的所有字母替换为其对应的“密字”。3...
2019-08-01 17:04:33
909
原创 【NOIP2012提高组】国王游戏
题目描述恰逢 H 国国庆,国王邀请 n 位大臣来玩一个有奖游戏。首先,他让每个大臣在左、右手上面分别写下一个整数,国王自己也在左、右手上各写一个整数。然后,让这 n 位大臣排成一排,国王站在队伍的最前面。排好队后,所有的大臣都会获得国王奖赏的若干金币,每位大臣获得的金币数分别是:排在该大臣前面的所有人的左手上的数的乘积除以他自己右手上的数,然后向下取整得到的结果。国王不希望某一个大臣获得特别多...
2019-08-01 16:26:24
712
原创 【BZOJ1706】relays 奶牛接力跑
题目:BZOJ1706解析: 矩阵快速幂。 首先将起点终点离散化降至100100100以内。 考虑最裸的状态转移,令f[k][i][j]f[k][i][j]f[k][i][j]表示经过kkk条边从iii到jjj的最短路长度,就有:f[k][i][j]=min{f[k−1][i][mid]+f[k−1][mid][i]}f[k][i][j]=min\{f[k-1][i][mid]+f[...
2018-11-09 09:57:46
308
原创 【BZOJ1965/Ahoi2005】SHUFFLE 洗牌
题目:BZOJ1965解析: 法一:找规律 手玩样例可以发现原位置为ppp的数经过mmm次洗牌后位置变为:p∗2mmod(n−1)p*2^mmod(n-1)p∗2mmod(n−1) 法二:稍微严谨的数学证明 如果当前位置为ppp变化一次后到哪个位置,存在两种情况: 1.p≤n2p\le\frac{n}{2}p≤2n 易知变到第2p2p2p个位置。 2.n2&amp;...
2018-11-08 17:04:58
192
原创 【BZOJ2751/HAOI2012】容易题(easy)
题目:BZOJ2751解析: 当k=0k=0k=0时根据乘法分配律,答案为:∏i=1nn∗(n+1)2\prod _{i=1}^{n}\frac{n*(n+1)}{2} i=1∏n2n∗(n+1) 有了限制后,答案变为∏i=1n−kn∗(n+1)2∗(∏i=1kn∗(n+1)2−sum[i])\prod _{i=1}^{n-k}\frac{n*(n+1)}{2} *(\prod _{...
2018-11-08 07:54:06
214
原创 【BZOJ2212/Poi2011】Tree Rotations
题目:BZOJ2212解析: 线段树合并。 这里的遍历指的是中序遍历。考虑对于一个节点对答案的贡献为左右儿子单独的贡献加上左儿子对右儿子的贡献或交换后左儿子对右儿子的贡献,用线段树合并,从叶子节点合并到根即可。代码:#include &lt;bits/stdc++.h&gt;using namespace std;const int Max=500005;int n,m,to...
2018-11-07 19:58:38
199
原创 【BZOJ1123/POI2008】BLO
题目:BZOJ1123解析: 割点。 对于一个点ppp,分两种情况: 1.ppp不是割点,那么把与它关联的边去掉之后,整个图就分为ppp与其余所有点。 1.ppp是割点,那么把与它关联的边去掉之后,整个图会分为若干个连通块。我们应该求出这些连通块的大小,再两两相乘再相加,为了方便处理,我们将这些连通块分为: 1.节点ppp本身。 2.分别由搜索树上以ppp为根的子树中的节...
2018-11-06 21:51:29
164
原创 【BZOJ3613/Heoi2014】南园满地堆轻絮
题目:BZOJ3613解析: 找规律?结论题? 被大佬点拨后就变成傻逼题了。。。 容易发现 改动最大的为逆序对中差值最大的一般,然后就没有然后了。。。代码:#include &amp;lt;bits/stdc++.h&amp;gt;#define int long longusing namespace std;const int Max=5000005;int n,Sa,Sb,Sc,...
2018-11-05 20:38:06
172
原创 【NOIP模拟】T1+T2+T3
T1解析: 差分约束/并查集/BFS均可。 这道题的弱化版可参见BZOJ1202代码(差分约束):#include &amp;lt;bits/stdc++.h&amp;gt;using namespace std;const int Max=100010;int n,m,size,tag,head,tail=1;int first[Max],dis[Max],q[Max&amp;lt;&amp;lt;
2018-11-05 19:51:37
247
原创 【BZOJ1202/HNOI2005】狡猾的商人
题目:BZOJ1202解析: 并查集/差分约束。 差分约束是很明显的,对于每次记录之间分别建立(s−1,t,v),(t,s,−v)(s-1,t,v),(t,s,-v)(s−1,t,v),(t,s,−v)的有向边,然后SPFA判负环就行了。 为什么可以用并查集呢,是因为存在关系的传递. 一旦已经知道了s[a]−s[b],s[b]−s[c]s[a]-s[b],s[b]-s[c]s[a...
2018-11-04 17:58:14
320
原创 【BZOJ3436】小K的农场
题目:BZOJ3436解析: 差分约束系统。 分析一下三种情况: 1.农场aaa比农场bbb至少多种植了ccc个单位的作物 即a≥b+c−&amp;gt;b≤a−ca\geq b+c-&amp;gt;b\leq a-ca≥b+c−&gt;b≤a−c,aaa向bbb连一条长度为−c-c−c的单向边。 2.农场aaa比农场bbb至多多种植了ccc个单位的作物。 即a≤b+ca...
2018-11-04 15:36:36
357
原创 【BZOJ2748/HAOI2012】音量调节
题目:BZOJ2748解析: 背包DP。 省选题?嗯?怕不是背包入门题吧。。。代码:#include <bits/stdc++.h>using namespace std;int n,m,s,ans=-1;int f[55][1005],w[55];int main(){ scanf("%d%d%d",&n,&s,&m); for...
2018-11-04 13:28:50
217
原创 【BZOJ2287】消失之物
题目:BZOJ2287解析: 背包DP。 算是背包问题中的一个经典问题吧。参见「BZOJ2287」消失之物代码:#include &lt;bits/stdc++.h&gt;using namespace std;const int Max=2005;int n,m;int f[Max],ans[Max][Max],w[Max];inline int get_int()...
2018-11-04 12:36:12
285
原创 【NOI2002/LOJ10215】荒岛野人
题目:LOJ10215解析: 扩展欧几里得。 题目就是要求解:c[i]+k∗p[i]≡c[j]+k∗p[j](modM)c[i]+k*p[i]\equiv c[j]+k*p[j](modM)c[i]+k∗p[i]≡c[j]+k∗p[j](modM) 转化一下:a∗(p[i]−p[j])−b∗m≡c[j]−c[i](modM)a*(p[i]-p[j])-b*m\equiv c[j]-c...
2018-11-04 11:33:15
277
原创 【BZOJ2152/国家集训队】聪聪可可
题目:BZOJ2152解析: 点分治/树形DP。 很明显的点分治,主要说下统计答案的问题。 假设两点的距离记为两点到当前重心的深度之和,那么对于经过重心的合法点对可以表示为: sum[0]∗(sum[0]−1)+sum[0]+sum[1]∗sum[2]∗2sum[0]*(sum[0]-1)+sum[0]+sum[1]*sum[2]*2sum[0]∗(sum[0]−1)+sum[0...
2018-11-03 22:22:58
196
原创 【点分治入门/POJ1741】Tree
题目:Tree解析: 上一次做点分治已经是半年前了。。。 所以点分治其实就是一种树上分治,序列上的分治是取中点,而点分治是取重心,就这么点区别。至于为什么取重心,这样能保证复杂度在O(logN)O(logN)O(logN)级别。 对于这道题的具体做法,先找出重心,计算经过重心且两端点不在同一棵子树中的合法路径,具体做法可以把每个点按照离重心的距离排序,用两个指针L,RL,RL,R分别...
2018-11-03 20:45:21
178
原创 【NOIP模拟】graph
T2解析: 分两种情况:(1)a-b,c-d 的路径不相交,则答案一定是 a-b,c-d 的最短路之和。(2)a-b,c-d 的路径相交,则相交部分一定是连续的一段路径,于是O(N2)O(N^2)O(N2)预处理每对点的最短路,O(N2)O(N^2)O(N2)枚举相交的路径的两端,算一下总长就好了。以上两种情况所有方案取最小值即可。时间复杂度O(N2)O(N^2)O(N2)。代码:#...
2018-11-03 15:47:09
236
原创 【NOIP模拟】地球发动机
T1解析: DP+二分即可。代码:#include &amp;lt;bits/stdc++.h&amp;gt;#define int long long using namespace std;const int Max=100010;int n,m,val;int pos[Max],p[Max],x[Max],f[Max];inline int get_int(){ int x=0...
2018-11-03 15:41:02
283
原创 【NOIP2015提高组】斗地主
题目背景NOIP2015 提高组 Day1 T3题目描述牛牛最近迷上了一种叫斗地主的扑克游戏。斗地主是一种使用黑桃、红心、梅花、方片的A到K加上大小王的共54张牌来进行的扑克牌游戏。在斗地主中,牌的大小关系根据牌的数码表示如下:3<4<5<6<7<8<9<10<J<Q<K<A<2<小王<大王,而花色并不对牌的
2018-11-02 20:13:26
1203
原创 【NOIP模拟】T1+T2+T3
T1解析: 单调栈。 分析题意,我们首先发现一个合法区间的因数一定是这个区间中最小的。其次发现本质是求以每个数作为最小质因子,最大的区间,最后答案就是这些区间长度的最大值。 用单调栈计算每个点的左右端点,具体来说如果当前这个数模栈顶的元素不为000,即不是栈顶的元素不是这个数的因数,那么就弹出栈顶知道合法,并且在弹出的过程中更新弹出元素的左端点/右端点。详见代码。代码:#incl...
2018-11-02 16:55:51
194
原创 【NOIP2007提高组】树网的核
题目背景NOIP2007提高组试题4。题目描述设 T=(V,E,W) 是一个无圈且连通的无向图(也称无根树),每条边带有正整数的权,我们称 T 为树网(treenetwork),其中 V,E 分别表示结点与边的集合,W 表示各边长度的集合,并设 T 有 n 个结点。路径:树网中任何两个结点 a,b 都存在唯一的一条简单路径,用 d(a,b) 表示以 a,b 为端点的路径长度,它是该路径上各...
2018-11-01 21:02:11
582
原创 【NOIP2009提高组】HK的趣味题
题目背景NOIP2009提高组试题2。题目描述Hanks博士是 BT(Bio-Tech,生物技术)领域的知名专家,他的儿子名叫 Hankson。现在,刚刚放学回家的 Hankson 正在思考一个有趣的问题。今天在课堂上,老师讲解了如何求两个正整数 c1 和 c2 的最大公约数和最小公倍数。现在 Hankson 认为自己已经熟练地掌握了这些知识,他开始思考一个“求公约数”和“求公倍数”之类问...
2018-11-01 16:43:56
229
原创 【NOIP2017提高组】列队
题目背景NOIP2017提高组 DAY2 T3题目描述Sylvia 是一个热爱学习的女孩子。前段时间,Sylvia 参加了学校的军训。众所周知,军训的时候需要站方阵。Sylvia 所在的方阵中有 n×m 名学生,方阵的行数为 n,列数为 m 。为了便于管理,教官在训练开始时,按照从前到后,从左到右的顺序给方阵中的学生从 1 到 n×m 编上了号码(参见后面的样例)。即:初始时,第...
2018-11-01 14:09:13
1288
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人