自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(41)
  • 收藏
  • 关注

原创 【CF1965A】Everything Nim

首先考虑如何简化问题,由于是从所有非空堆拿走石头,所以重复数量石头堆可以去重。然后最少的石头堆只有一个石头的情况下只有一种操作,即所有石头堆都取走一个石头,直到没有石头或最少数量大于1的情况。在新的情况下,考虑从所有石子堆中取出一颗石子的新状态为。的后继状态集合包含在当前状态的后继状态集合中!这样,当前状态的后继集合中必然存在必败态,当前状态就是必胜态。每一轮玩家从所有非空堆中拿走相同数量的石子,不能行动的失败。的后继状态中必然存在必败态,记为。为必败态,则当前状态为必胜态。

2024-05-15 21:27:06 669

原创 【CF1946E】Girl Permutation

的排列,分别给出这个排列的前缀最大值和后缀最大值位置,求合法的排列个数。然后有个很巧妙的思想,把序列想成一个树,排列个数就是树的拓扑序,树上的边就是题目给定限制,在本题中就是若。的拓扑序计数:只需要加上一个超级源点并与每个有根树的根结点连边即可转化为单棵有根树的问题。,注意这里的更新不是真正的更新,只是为了计算dp[v],实际代码用变量存结果就是了。回到本题,这题要求给定一个长度为。注意一点通过费马小定理可以推得。的拓扑序计数:树形dp,的拓扑序计数:换根dp,跑完dfs后更新回来。

2024-04-24 11:02:59 926

原创 [BIT]智慧社区综合管理云平台需求文档

智慧社区综合管理云平台需求文档目录:智慧社区综合管理云平台需求文档 一、引言1.1 目的1.2 文档约定1.3 读者对象1.4 项目范围1.4.1 被开发的软件产品:1.4.2 预期功能:1.4.3 产品应用:1.5 参考文献 二、总体描述2.1 产品前景2.2 产品特性2.2.1 安全监控2.2.2 社区服务2.2.3 电子化文档2.3 用户类及其特征2.4 运行环境2.5 设计和实现上的约束2.6 用户文档三、系统特性3.1 安全监控系统特性3.1.1 描述和优先级3.1.2 刺激/响应序列

2024-04-21 13:41:43 761

原创 Moco伪代码

【代码】Moco伪代码。

2024-04-09 11:29:26 309

原创 [学习笔记]MIT 6.031: Software Construction Reading 1: Static Checking

用Java来计算。

2024-03-25 21:02:31 770

原创 [BIT]智慧社区综合管理云平台需求文档V1

该平台将以互联网思维为核心,通过设施层、资源池、感知层、网络层等基础框架,结合各部门子平台,构建智慧社区综合管理服务云平台、物业管理云平台、大数据分析云平台三大应用云计算平台板块,为社区居民、物业公司、居民和便民服务企业提供全方位的智慧化服务。然而,令人鼓舞的是,绝大多数受访者(90%以上)认为智慧社区带来了生活便利性的提升,以及工作效率和与居民互动的增强,这表明智慧社区的建设在一定程度上得到了认可,并且对社区生活产生了积极的影响。86%的受访者了解智慧社区,但只有52%的受访者参与到智慧社区中;

2024-03-24 23:11:46 1197

原创 树剖入门题 洛谷P3313 [SDOI2014]旅行

题目描述S国有N个城市,编号从1到N。城市间用N-1条双向道路连接,满足从一个城市出发可以到达其它所有城市。每个城市信仰不同的宗教,如飞天面条神教、隐形独角兽教、绝地教都是常见的信仰。为了方便,我们用不同的正整数代表各种宗教, S国的居民常常旅行。旅行时他们总会走最短路,并且为了避免麻烦,只在信仰和他们相同的城市留宿。当然旅程的终点也是信仰与他相同的城市。S国政府为每个城市标定了不同的旅行评级,旅行者们常会记下途中(包括起点和终点)留宿过的城市的评级总和或最大值。在S国的历史上常会发生以下几种事件:

2020-11-04 07:50:46 212

原创 C++小技巧——离散化

感觉每次都要忘离散化啊,还是写篇博客记一下。什么是离散化离散化,就是把无限空间中有限的个体映射到有限的空间中去,以此提高算法的时空效率。通俗的说,离散化是在不改变数据相对大小的条件下,对数据进行相应的缩小。什么时候用当所给数据我们只需表示出它们之间的相对大小关系,而不需表示出具体数值时,就可以离散化。然后就代码了const int N=1e5+7;int t[N],a[N];int main(){ cin>>n; for(int i=1;i<=n;i++) cin

2020-11-03 10:10:49 1246 1

原创 NOIP模拟T2 2020.11.02

题意一眼最小生成树,没错吧。只不过这道题用考kruskal只能得40pts。所以考虑优化。又由于kruskal不好优化,所以我们考虑优化另一个耳熟目染的算法:prim。然后呢,我们需要优化的是每次找未加入连通块的最短距离,我们可以考虑建立线段树t3t3t3,用来存两个点都在l-r时最短的转移距离。那么很明显有三种更新方式:x,y,都在l,midl,midl,mid区间。x,y都在mid+1,rmid+1,rmid+1,r区间。x,y跨过了mid。明天再写。...

2020-11-02 22:00:14 86

原创 NOIP模拟day2 2020.10.30

今天这题啊,难度肯定达到了,这真的是NOIP吗?不过质量还是高啊。T1首先,题目看似第一要求边数目,第二才管权值。但我们不能就这样掉坑里了,去先找多少条边。注意到在一个连通块中,当边数最多时一定是n−1n-1n−1,而每次说边数最多是相对每一次操作而言,没有说纵向对比,所以这个条件基本可以不管。这样下来一个明显的暴力做法就有了,每次操作分别找最大生成树,再把边删了继续找,这显然是会TLE的。那么我们就考虑优化,考虑用kkk个并查集来维护每时刻删了的边连通性,而对于权值大的边来说越往前放越佳,假设放t

2020-10-30 21:58:36 163 1

原创 数位dp入门题 洛谷P2657 [SCOI2009] windy 数

题干传送门windy 定义了一种 windy 数。题目描述不含前导零且相邻两个数字之差至少为 2的正整数被称为 windy 数。windy 想知道,在 a 和 b 之间,包括 a 和 b ,总共有多少个 windy 数?输入格式输入只有一行两个整数,分别表示 a 和 b。输出格式输出一行一个整数表示答案。输入输出样例输入 #11 10输出 #19输入 #225 50输出 #220数位dp入门题,考虑记忆化搜索需要几个参量。首先基本必有的limit,判上界,zero,判前

2020-10-29 10:13:03 146

原创 状压好题-洛谷P3959 宝藏 NOIP2017 day2 T2

先上题题目描述参与考古挖掘的小明得到了一份藏宝图,藏宝图上标出了 n 个深埋在地下的宝藏屋, 也给出了这 n 个宝藏屋之间可供开发的m 条道路和它们的长度。小明决心亲自前往挖掘所有宝藏屋中的宝藏。但是,每个宝藏屋距离地面都很远, 也就是说,从地面打通一条到某个宝藏屋的道路是很困难的,而开发宝藏屋之间的道路 则相对容易很多。小明的决心感动了考古挖掘的赞助商,赞助商决定免费赞助他打通一条从地面到某 个宝藏屋的通道,通往哪个宝藏屋则由小明来决定。在此基础上,小明还需要考虑如何开凿宝藏屋之间的道路。已经开

2020-10-29 08:38:30 155

原创 NOIP-模拟(1024day1+1027day2)

前言终于试了试day1和day2都有的NOIP-模拟,共计8题,不过到现在我勉强看懂的也只有4题,就当是一次考试来写博客吧。自认为的4道题难度:day1T1<day1T3<day2T1=day2T2day1T1出题人题解:code:#include<bits/stdc++.h>using namespace std;const int N=1e6+10;int n,pre[N],x,prime[N],tot;bool isprime[N];long lon

2020-10-28 20:31:32 112

原创 NOIP模拟day1 2020.10.28

不得不说,今天考的4道题感觉质量可以,就是T3数据有点水纯搜索86分可还行Problem a如果这道题每个棋子都能是第一个出去的话,那么这道题就简单了,ans便是!n 能骗30多分 ,但是显然受各个位置影响不能这样做。于是乎考虑能使各个点都能这样需要什么,我们便把满足这样的点尽可能紧缩一起,便可以排成1,3,5,7…,因为可以挪位置,所以不影响。但显然每个点不一定能排成这样,比如你已经有i个点呈这样排列,1,3…2×\times× i-1,第i个点位置在2×\times×i的话便会导致第后面的点无法自

2020-10-28 20:31:05 100

原创 一道不错的状压dp题(洛谷P2704 [NOI2001]炮兵阵地)

很早之前就学习过状压了吧,只不过当时完全没怎么做过题,甚至连这最基础的几道都没做过。今天翻出来做了,做了这道感觉受益匪浅。传送门题目描述司令部的将军们打算在NM的网格地图上部署他们的炮兵部队。一个NM的地图由N行M列组成,地图的每一格可能是山地(用“H” 表示),也可能是平原(用“P”表示),如下图。在每一格平原地形上最多可以布置一支炮兵部队(山地上不能够部署炮兵部队);一支炮兵部队在地图上的攻击范围如图中黑色区域所示:如果在地图中的灰色所标识的平原上部署一支炮兵部队,则图中的黑色的网格表示它能够

2020-10-27 21:22:07 139

原创 小技巧之差分

今天复习了下差分,发现还没写过差分的博客,便来写博客氵时间了.。差分是啥不用多bb了,直接看简单用途吧。差分思想的用途差分数组适用于离线的区间修改问题,如果是在线,应该用线段树或其他数据结构。(1)可以快速处理区间加减操作,并询问操作结束的每个元素的最新值。(2)可以快速处理多次询问区间和问题。利用差分数组求出M次处理后数组a[]每个元素的值,然后用O(N)的复杂度求出数组a[]每个位置的前缀和sum[i],则区间[L,R]的和ans为sum[R]-sum[L-1]。然后我知道的差分就三种,

2020-10-26 20:16:56 191

原创 NOIP模拟day2 2020.10.16

共四道题,只做了三道,T4弃了。其实还有day1的,不过因为其他人考day1时我在上文化课,感觉day1题也没啥想写的,就只把T3那个跟去年csp-jT4差不多的边权为一奇偶最短路贴个吧#include<bits/stdc++.h>using namespace std;const int N=5010;const int inf=0x7fffffff;int tot1,tot2,first1[N],Next1[N*2],to1[N*2],first2[N],Next2[200010]

2020-10-21 21:59:44 173

原创 [HNOI2002]跳蚤

题目描述Z城市居住着很多只跳蚤。在Z城市周六生活频道有一个娱乐节目。一只跳蚤将被请上一个高空钢丝的正中央。钢丝很长,可以看作是无限长。节目主持人会给该跳蚤发一张卡片。卡片上写有N+1个自然数。其中最后一个是M,而前N个数都不超过M,卡片上允许有相同的数字。跳蚤每次可以从卡片上任意选择一个自然数S,然后向左,或向右跳S个单位长度。而他最终的任务是跳到距离他左边一个单位长度的地方,并捡起位于那里的礼物。比如当N=2,M=18时,持有卡片(10, 15, 18)的跳蚤,就可以完成任务:他可以先向左跳10个单位

2020-10-04 16:58:39 223

原创 10月3日NOIP-模拟T3 subset

3.1 题目᧿述一开始你有一个空集,集合可以出现重复元素,然后有Q个操作add s在集合中加入数字s。del s在集合中删除数字s。保证s存在cnt s查询满足a&s=a条件的a的个数3.2 输入Ṭᔿ第一行一个整数Q接下来Q行,每一行都是3个操作中的一个3.3 输出Ṭᔿ对于每个cnt操作输出答案恩…这道题首先暴力很好想,就每加入一个数后从0枚举到216更新答案,查询时O(1)查询就可以了(没试过暴力,这样应该没错吧…)然后很明显要T飞的。然后这种做法明显是通法,也就是说无

2020-10-03 16:03:13 119

原创 [CSP-SJX2019] 多叉堆

话说这道题是本蒟蒻第一道组合数学应用题了吧,调;

2020-10-01 16:26:14 228

原创 莫队算法入门

昨天重温了一下CaptainMo的职业生涯 莫队的模板,看了下别人的博客,把三个板子打了,做练习前先小小总结了一下吧。一. 基础莫队算法莫队算法 = 离线 + 暴力 + 分块,它通常用于不修改只查询的一类区间问题,复杂度为主要就是通过排序过后再处理询问能优化暴力,排序则是利用分块,至于为什么更优,附张别人博客看到的图。这就很显然图二的走法更短,然后 编码时,还可以对排序做一个小优化:奇偶性排序,让奇数块和偶数块的排序相反。例如左端点L都在奇数块,则对R从大到小排序;若L在偶数块,则对R从小到大

2020-09-19 10:55:13 211

原创 C++火车头

做某道题想起的,留个在这#pragma GCC optimize(3)#pragma GCC target("avx")#pragma GCC optimize("Ofast")#pragma GCC optimize("inline")#pragma GCC optimize("-fgcse")#pragma GCC optimize("-fgcse-lm")#pragma GCC optimize("-fipa-sra")#pragma GCC optimize("-ftree-pre"

2020-09-18 19:24:21 1743 1

原创 最佳序列(二分+单调队列) 9月12日NOIP训练T4

暴力分就不说了,直接无脑枚举头和尾,讲一下正解。首先这种求最值问题不难想到二分,然后观察数据需要O(n)的验证。思考如何暴力验证,定义个前缀和数组sum[],那么我们就是要找到满足sum[r] - sum[l] >= x * (r - l) 并且L <= r - l <= R,观察发现我们将a[i]全部减去x,重新求sum数组,就等同于求取满足sum[r] - sum[l] >= 0并且L <= r - l <= R的r和l,我们枚举右端点r,那么可行的l为(r - .

2020-09-12 16:24:37 146

原创 9月11分块专题训练

共三道题,只不过第三题还没做出来。。,先把前2题总结写下吧。教主的魔法 洛谷P2801题目描述:有N个数,有两种操作,区间修改(加)、区间询问。输入:第1行有两个整数n、m。第2行有n个正整数。第3行到第m + 2行,每行是一个操作,有两种操作:(1)第一个字母是“M”,后面三个数字L、R、W,表示对闭区间[L, R]内每个数加上W。(2)第一个字幕是A,后面三个数字L、R、C,询问闭区间[L, R]内有多少数字大于等于C。输出:对每个“A”询问输出一行,包含一个整数,表示大于等于C的数有多少

2020-09-11 21:38:13 120

原创 trie树例题 The xor Largest Pair

题意在给定的 N个整数 中选出两个进行异或运算,得到的结果最大是多少?(1<=N<=1e5)很明显这道题不能用n方暴力做,然后亦或运算是同则为0,不同为1,我们考虑把数转化为二进制之后像字符串一样存进trie树里,对于每一个数字我们要求与它亦或结果最大的那一个,于是我们在trie树上找,比如a数二进制为11001,我们就去找00110,然后为什么直接一位一位找是正确的,因为假设有01001和10110,虽然第一个只有第一位不同,但亦或结果肯定大于后者,于是就能做了。代码#include&

2020-09-05 17:00:39 121

原创 蒟蒻NOIP前的一点计划

啊!!!,貌似没多久就要考联赛了啊,虽说不是专门搞竞赛,今年过了也会退了吧,重心还是在whk上,但好像国庆开始就要停课了,先在这弄好安排吧。做哪些题专题练习+历届NOIP真题专题练习做高手训练上的,评测网站没停课时每天二晚看一个以前会的专题,差不多国庆了就到dp和数学了吧,那里最薄弱趁停课好好弄。然后NOIP真题就在差不多要考试前刷一刷吧。好的,whk和oi都rp++吧!等等,好像化学这些科目这学期很难,停课了刚好错过了,记住提前预习啊!!!...

2020-09-04 21:32:32 105

原创 8月7日NOiP训练

今天教练叫做了3道AtcoderARC90上的题啊,1,2题倒是蛮水的,第3题,呵呵…T1传送门一道最基础的dp,不过貌似这数据暴力也轻松过?#include<bits/stdc++.h>using namespace std;int n,f[3][110],a[3][110];int Read(){ int x=0,f=1; char ch=getchar(); while(!isdigit(ch)){if(ch=='-')f=-1;ch=getchar();} wh

2020-08-07 16:29:23 127

原创 【模板】可持久化并查集

luogu传送门题目描述给定 n 个集合,第 i个集合内初始状态下只有一个数,为 i。有 m 次操作。操作分为 3 种:1 a b 合并 a,b 所在集合;2 k 回到第 k 次操作(执行三种操作中的任意一种都记为一次操作)之后的状态;3 a b 询问 a,b 是否属于同一集合,如果是则输出 1 ,否则输出 0。输入格式第一行两个整数,n,m。接下来 m 行,每行先输入一个数 opt。若 opt=2则再输入一个整数 k,否则再输入两个整数 a,b,描述一次操作。输出格式对每个操作 3,

2020-08-06 17:04:36 240

原创 Count on a tree(主席树)

题目描述给定一棵 n个节点的树,每个点有一个权值。有 m 个询问,每次给你 u,v,k,你需要回答 u^ last 和 v 这两个节点间第 k 小的点权。其中 last 是上一个询问的答案,定义其初始为 0,即第一个询问的 u是明文。输入格式第一行两个整数 n,m。第二行有 n 个整数,其中第 i 个整数表示点 i的权值。后面 n-1 行每行两个整数 x,y,表示点 x 到点 y 有一条边。最后 m 行每行两个整数 u,v,k,表示一组询问。输出格式m 行,每行一个正整数表示每个询问的答案

2020-08-04 21:48:02 241 1

原创 [NOI2015]软件包管理器(树链剖分)

题目传送门读题后发现,install操作实质是将根节点到节点这条链上所有点都赋值为1,uninstall操作是将以x节点为根

2020-08-04 11:27:44 120

原创 基础数据结构及其拓展之树状数组

树状数组均摊修改和查询的复杂度,每个点保存部分和信息的数组特点:实现简单,容易和其它数据结构嵌套常数因子小,复杂度容易分析扩展困难,增加功能的思维难度大树状数组的基本功能单点修改区间查询单次操作复杂度都为O(log n),且常数很小树状数组维护的信息的特点如果我们每次只需要查一个前缀的信息,那么只要维护的信息满足可加性即可如果我们要查区间信息,那么还需要该信息存在逆运算(并且该逆运算比较容易实现)树状数组功能的拓展如何区间修改,单点查询?如何区间修改,区间查询?关于第一个

2020-08-01 14:05:04 117

原创 7月29日NOIP模拟

T1草稿本上算一下就能得到然后就去算,有除法的转换为乘法逆元即可代码#include<bits/stdc++.h>using namespace std;#define int long longconst int p=998244353;int n,m,g,ans,qwe;struct dian{ int x; int y;}q[1000010];int gcdEx(int a,int b,int &X,int &Y)//扩展欧几里得求逆元{

2020-07-30 11:24:05 127

原创 关于乘法逆元

今天考试t1考了乘法逆元,当时对其的了解仅限于名字和大概作用,下来网上学了学,把想留的丢这了。————————————————————————————先来引入求余概念(a + b) % p = (a%p + b%p) %p (对)(a - b) % p = (a%p - b%p) %p (对)(a * b) % p = (a%p * b%p) %p (对)(a / b) % p = (a%p / b%p) %p (错)为什么错我不会证,但仔细想几个例子就能发现是错的了。然后逆元便派上用场了,

2020-07-29 16:10:23 119

原创 HDU4283:You Are the One(区间DP)

题目Problem Description  The TV shows such as You Are the One has been very popular. In order to meet the need of boys who are still single, TJUT hold the show itself. The show is hold in the Small hall, so it attract a lot of boys and girls. Now there are

2020-07-28 20:30:10 105

原创 UVA10635 Prince and Princess(LCS转化成LIS)

Description给你两条路径,对于每条路径上的点各不相同,请你求出两条路径最长公共部分的长度。 Input第一行是数据组数t 每组数据的第一行包含三个数,n,p,q。其中路径上的点的大小不会超过n^2. 第二行包含p+1个数,表示第一条路径 第三行包含q+1个数,表示第二条路径。 Output见样例。输出最长路径长度。将A中元素重新标号,例如,样例中A={1,7,5,4,8,3,9},B={1,4,3,5,6,2,8,9}因此把 A 重新编号为{1,2,3,4,5,6,7} ,则 B 就是

2020-07-28 11:20:16 105

原创 高精加减string模板

做道dp题要用上string来做高精,就丢个在这#include<bits/stdc++.h>using namespace std;typedef long long ll;const int L = 110;string f[110][2];int n,k;string add(string a,string b){ string ans; int na[L]={0},nb[L]={0}; int la=a.size(),lb=b.size();

2020-07-23 14:21:11 77

原创 7月20日基础练习

T1,T2都是蓝书上贪心专题例题,看书就行了T3【题目描述】在一个字符串S上应用以下操作K次,可以得到多少个不同的字符串? 选择一个小写的英文字母并将它插入到S的某个位置答案可能是巨大的,所以输出答案模(1e9+7)的值。【输入格式】string.in第一行输入一个整数K(1≤K≤1e6)。第二行输入1个字符串S。S由小写英文字母组成,并且满足:1≤|S|≤1e6。【输出格式】string.out输出一个整数,即不同的字符串数量模(1e9+7)的值。【输入样例1】5oof【输

2020-07-20 21:28:23 162

原创 6月13日NOIP训练总结

6月13日NOIP训练总结T1T1还是一如既往的水,但有个小技巧值得留意下:在对数据溢出的处理,我们把乘法转除法来处理。 设maxa=1e18 。在判断ab>maxa的过程中,**ab可能溢出long long,转化成a>naxa/b**即可。#include<bits/stdc++.h> using namespace std; const long long maxa=1e18; int n,flag=0; long long ans=1,temp;

2020-06-13 17:05:09 276

原创 5月5日APIO2015测试

蒟蒻再次垫底…共3道题,自认为T2最简单,所以先说T2传送门这道题只要认真想想很容易想出n方建边,再跑一遍spfa暴力直接求。但很明显,这种做法只能得40-50分,然后“机智”的你可能会想,能不能这样建边呢[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Kd5RAITn-1588670533470)(http://1.file.leanote.top/5b9a4...

2020-05-10 14:16:09 165

原创 5月4日NOIP训练

此次共五道题,前两道水题不再多讲(虽说后面3道也就普及左右难度233)先是较简单的T4,本题题意是,给定一棵最多 10000 个结点的树,以及最多 100000 个询问。对于每个询问中要查询的两个结点,输出它们之间路径上的中点;特别地,如果这个中点在某条边上,则输出这条边的两个端点。注意这里说的路径是简单路径,也就是不能经过重复的边和点。于是思路很明显了1:找lca,进而找到两点间距离,len=dep[x]+dep[y]-2*dep[Lca(x,y)]2:我们设计一个 Up(x,len)函数,用来计

2020-05-10 14:15:01 188

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除