上一页 1 ··· 12 13 14 15 16 17 18 19 20 ··· 36 下一页
摘要: 题目链接 题目思路 用$b[i][j]$表示这个点能经过的所有点 用$bitset$维护,暴力即可 然后滚动下即可 代码 #include<bits/stdc++.h> #define fi first #define se second #define debug cout<<"I AM HERE 阅读全文
posted @ 2021-08-09 20:51 hunxuewangzi 阅读(43) 评论(0) 推荐(0) 编辑
摘要: 题目链接 题目思路 就是一个图上随机游走问题模板 代码 #include<bits/stdc++.h> #define fi first #define se second #define debug cout<<"I AM HERE"<<endl; using namespace std; typ 阅读全文
posted @ 2021-08-08 11:31 hunxuewangzi 阅读(37) 评论(0) 推荐(0) 编辑
摘要: 题目链接 题目思路 一直不太会这种有环的博弈打表,今天学到了新知识 处理出每个点的前驱节点,找出所有必败点,然后转移,确定状态后再放入队列,太秒了 用 \(f[i][j][k][l]\) 表示先手手上的数字是 \(i, j\),后手手上的数字是 \(k, l\) 时,先手的胜负情况。初始先手必败的情 阅读全文
posted @ 2021-08-07 21:56 hunxuewangzi 阅读(51) 评论(0) 推荐(0) 编辑
摘要: 题目链接 题目思路 这种有关全排列的问题大多都是异或前缀和求解 所以我们可以枚举 1的位置。每次向左/右搜,往一个方向搜的时候记录扫到的最大值,当作排列的长度(最大 值),在判断这个子串是否合法就行了。 代码 #include<bits/stdc++.h> #define fi first #def 阅读全文
posted @ 2021-08-07 19:48 hunxuewangzi 阅读(67) 评论(0) 推荐(0) 编辑
摘要: 题目链接 题目思路 设$dp[i][j]$表示$a[i]$走到二进制第$j$位为$1$的数的最近点的在哪里 然后转移求解即可,比较巧妙 代码 #include<bits/stdc++.h> #define fi first #define se second #define debug cout<< 阅读全文
posted @ 2021-08-06 21:01 hunxuewangzi 阅读(43) 评论(0) 推荐(0) 编辑
摘要: 题目链接 题目思路 一个重要结论就是$x$的因子个数最多$\sqrt[ 3]{x }$ 然后再随便容斥下即可 代码 #include<bits/stdc++.h> #define fi first #define se second #define debug cout<<"I AM HERE"<< 阅读全文
posted @ 2021-08-06 17:10 hunxuewangzi 阅读(32) 评论(0) 推荐(0) 编辑
摘要: 题目链接 题目思路 设$dp[i][j]$表示由$i$个$1$和$j$个$-1$组成的前缀和总和 这样可以成立的原因是我们固定地认为每当新加入一个数的时候将该数插入序列的最前方,这种设定仍然保证了动 规涵盖所有可能的排列。 $dp[i][j]=dp[i-1][j]+C(i+j-1,i-1)+dp[i 阅读全文
posted @ 2021-08-06 15:54 hunxuewangzi 阅读(33) 评论(0) 推荐(0) 编辑
摘要: 题目链接 题目思路 比较经典的求贡献问题 求出每个点子树内和子树外和他相距奇数和偶数的点 子数外的有点小细节 然后分类讨论讨论求贡献 代码 #include<bits/stdc++.h> #define fi first #define se second #define debug cout<<" 阅读全文
posted @ 2021-08-06 10:31 hunxuewangzi 阅读(38) 评论(0) 推荐(0) 编辑
摘要: 题目链接 题目思路 如果只考虑非严格单调上升,那么必定所有元素变化完之后必定还是属于原来元素的子集 可以仔细思考下得出 而如果是单调上升,可以让$a[i]=a[i]-i$ 然后$dp$即可 设$dp[i][j]$表示第$i$个元素为$b[j]$的最小答案 代码 #include<bits/stdc+ 阅读全文
posted @ 2021-08-05 19:54 hunxuewangzi 阅读(44) 评论(0) 推荐(0) 编辑
摘要: 题目链接 构造方法比较容易想到 第1列和第m列的颜色种数要相等,中间的列颜色来源于第1列和第m列中的共同颜色 主要的问题是如何解决$n$个元素里面存在$i$个元素,且每个元素至少存在一次的方案数 这是一个经典问题,可以利用dp+容斥去解决 代码 #include<bits/stdc++.h> #de 阅读全文
posted @ 2021-08-05 09:18 hunxuewangzi 阅读(40) 评论(0) 推荐(0) 编辑
上一页 1 ··· 12 13 14 15 16 17 18 19 20 ··· 36 下一页