
ACM
北逸
这个作者很懒,什么都没留下…
展开
-
莫队算法
莫队算法机房的众神犇都在搞这个东西,本SB也掺和一下下吧。莫队算法可用于解决一类可离线且在得到区间[l,r]的答案后,能在O(1)或O(log2n)得到区间[l,r+1]或[l−1,r]的答案的问题先看这样一个问题:给出n个数字,m次询问,每次询问在区间[li,ri]之间任选两个数字相等的概率是多少。(n,q(小z的袜子)在区间[l,r]中,这个概率是:转载 2017-09-12 17:43:10 · 381 阅读 · 0 评论 -
牛客网多校联赛第五场D
#include<bits/stdc++.h>using namespace std;typedef long long ll;const int MAX_N = 2e5 + 5;int bit[MAX_N], a[MAX_N];int n;void add(int i) { for (; i <= n; i += i&(-i)) { bit[i...原创 2018-08-03 20:18:46 · 190 阅读 · 0 评论 -
[HDU6268]Master of Subgraph 树分治+bitset
bitset用法bitset<B_Length> array[A_SIZE] 创建一个长度为B_Length,大小为A_SIZE的数组bitset<B> a(n) 初始化一个值为n的bitset.reset() 将...原创 2018-09-09 11:22:02 · 668 阅读 · 0 评论 -
wannafly25 E 01串
思路:对于每个线段树区间维护一个矩阵,(i,j)表示从后面进位j,向前进位i 的最小更新次数矩阵的转移方程为 dp[i][j] = min(dp[i][0]+dp[0][j], dp[i][1]+dp[1][j])此时线段树的更新就显而易见了。 之前的想法是连续1的串长大于1的串可以用2次操作消除,但是形如1110111中间只有一个0的少用1次操作消除,维护左右端点1的个数以及...原创 2018-10-01 10:45:40 · 350 阅读 · 0 评论 -
蒙特卡洛树 2017 EC-Final L.SOS
蒙特卡洛树 2017 EC-Final L.SOS最近看AlphaZero论文学习了蒙特卡洛树,隐约记得很久以前EC-Final上有人说可以利用MTC打表,决定练练手。从构建到完成耗时两天。蒙特卡洛树的学习可以参考:https://blog.youkuaiyun.com/ljyt2/article/details/78332802题目可以参考:https://vjudge.net/problem...原创 2019-03-19 23:58:00 · 568 阅读 · 0 评论 -
codeforces 1146E 线段树
codeforces 1146E 线段树思路: 可以发现有(<,>)*(P,N)4种情况,分别对应一下四种情况以下,x为输入的绝对值><Positive(−∞-\infty−∞,x),(x, +∞+\infty+∞)强制转负(−∞-\infty−∞,x],[x, +∞+\infty+∞)强制转正 (-x,x)反转Negative(−∞...原创 2019-04-28 17:43:19 · 237 阅读 · 0 评论 -
codeforces 1156F Card Bag
题解: dp[i][j] 表示第i次使用j个数的方案数, 在求总数的时候不要忘记补充win后的方案代码如下:#include<bits/stdc++.h>using namespace std;const int MAX_N = 5e3 + 5;typedef long long ll;ll a[MAX_N], dp[MAX_N][MAX_N], r[MAX_N], rf[...原创 2019-05-07 16:55:15 · 300 阅读 · 0 评论 -
codeforces 1167F Scalar Queries
思路容易想到对于每个位置考虑包含这个位置的贡献因为贡献中i代表的是一段区间中顺序第i位的故可以考虑从小到大枚举以下计算a[s]对ans的贡献contibutes/a[s]=∑1<=j<=s∑s<=k<=n(prek−prej−1+1)=s∗(n−s+1)+s∗∑s<=k<=nprek−(n−s+1)∗∑1...原创 2019-05-20 21:39:19 · 335 阅读 · 0 评论 -
HDU 6284 Longest Increasing Subsequence
思路:设原数列的LIS = l因为0的取值只能使原数列的LIS∈[l,l+1]故考虑什么时候0可以使得LIS为l+1即可考虑0的前后部分LIS之和为l且前部分结尾的数<后部分开始的数于是想到处理出以每个数开始或者结尾的LIS设b[i],e[i]分别代表以i开始和i结尾的最长LIS对于每个位置i,j 如果b[i]+e[j] = l & val[i]<v...原创 2019-05-12 10:59:13 · 184 阅读 · 0 评论 -
codeforces 1153F Serval and Bonus Problem
思路将原线段缩成1, 因为线段长度不影响结果2n个点将线段分成了2n+1条线段, 我们有理由认为这2n+12n+12n+1条子线段的期望等长。证明:第一条线段大于等于x的概率 (1−x)2n(1-x)^{2n}(1−x)2n对上式求导,得等于x的概率 2n(1−x)2n−12n(1-x)^{2n-1}2n(1−x)2n−1第一段的长度期望为 E1=2n∫01x(1−x)2n−1dx=1...原创 2019-05-25 15:45:45 · 293 阅读 · 0 评论 -
HDU1540 Tunnel Warfare 线段树区间合并
线段树的区间合并基础题。#include<bits/stdc++.h>using namespace std;const int MAX_N = 5e4 + 5;int lx[MAX_N * 4], rx[MAX_N * 4], mx[MAX_N*4];int n, q;stack<int> s;void init(int l, int r, int k)...原创 2018-05-29 17:22:26 · 192 阅读 · 0 评论 -
Codeforces 980E
题意: 给n个节点的树, indexed by 1~n, 各节点权值为2^index, 要求你去除k个节点, 使得剩下的为连通图且权值之和最大思路: 转换一下, 即保留n-k个节点使得权值之和最大。 由于权值存在特点, 即只要尽量贪心的从权值大的开始取即可。 倍增一下, 就可以O(nlogn)的解决问题#include<bits/stdc++.h>using namespace st...原创 2018-05-13 16:09:01 · 395 阅读 · 0 评论 -
2015上海区域赛D题 左偏树+树形DP
花费大约半星期时间终于做出来了. 这道题细节很多. 注释和思路之类的之后补充,现在太累辣!题目链接:点击打开链接代码如下:#include<iostream>#include<algorithm>#include<cmath>#include<vector>#include<queue>#include<iomanip&g...原创 2018-03-20 17:15:45 · 311 阅读 · 0 评论 -
SPOJ DQUERY D-query 莫队算法
D-query 莫队算法Given a sequence of n numbers a1, a2, ..., an and a number of d-queries. A d-query is a pair (i, j) (1 ≤ i ≤ j ≤ n). For each d-query (i, j), you have to return the number of distinc原创 2017-09-15 15:45:56 · 395 阅读 · 0 评论 -
ZOJ 3687 The Review Plan I(禁位棋盘+dfs)
The Review Plan I题目链接:点击打开链接禁位棋盘知识: 点击打开链接题意: 有N个方块, Teemo每天只能取一块, 但Teemo在有些天不能取有些块, 问N天将方块取完的方案总数.题解: 禁位棋盘的横轴纵轴分别表示天数和块数, dfs搜索记录禁位棋盘多项式中不同禁位数量的可能数. 根据公式 N = w(0) - w(原创 2017-09-30 12:10:49 · 325 阅读 · 0 评论 -
HDU 1695 GCD 容斥+约数枚举
Given 5 integers: a, b, c, d, k, you're to find x in a...b, y in c...d that GCD(x, y) = k. GCD(x, y) means the greatest common divisor of x and y. Since the number of choices may be very large, you're原创 2017-10-09 16:29:49 · 501 阅读 · 0 评论 -
HDU 2204 Eddy's爱好(容斥)
Eddy's爱好 Ignatius 喜欢收集蝴蝶标本和邮票,但是Eddy的爱好很特别,他对数字比较感兴趣,他曾经一度沉迷于素数,而现在他对于一些新的特殊数比较有兴趣。 这些特殊数是这样的:这些数都能表示成M^K,M和K是正整数且K>1。 正当他再度沉迷的时候,他发现不知道什么时候才能知道这样的数字的数量,因此他又求助于你这位聪明的程序员,请你帮他用程序解决这个问题。原创 2017-09-30 19:09:27 · 366 阅读 · 0 评论 -
POJ-1141 Brackets Sequence 区间dp
DescriptionLet us define a regular brackets sequence in the following way: 1. Empty sequence is a regular sequence. 2. If S is a regular sequence, then (S) and [S] are both regular sequences原创 2017-12-08 14:42:33 · 491 阅读 · 0 评论 -
HDU 1671 字典树
Phone ListTime Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 22044 Accepted Submission(s): 7479Problem DescriptionGiven a list o原创 2017-11-16 16:36:36 · 255 阅读 · 0 评论 -
POJ 2955- Brackets[区间dp]
We give the following inductive definition of a “regular brackets” sequence:the empty sequence is a regular brackets sequence,if s is a regular brackets sequence, then (s) and [s] are regular brac原创 2017-11-30 18:20:02 · 379 阅读 · 0 评论 -
New Distinct Substrings SPOJ - SUBST1(求字符串不重复子串的个数)
求字符串不重复子串的个数 New Distinct Substrings SPOJ - SUBST1Given a string, we need to find the total number of its distinct substrings.原创 2018-01-19 23:22:48 · 554 阅读 · 0 评论 -
HDU 1402 大数乘法(FFT)
A * B Problem Plus HDU - 1402原创 2018-02-04 19:10:40 · 297 阅读 · 0 评论 -
codeforces 1163E Magical Permutation
思路:可以构造出0 ~ 2x2^x2x-1 的充要条件是有x个异或运算线性无关的数在0~2x2^x2x-1之间, 原因是k个线性无关可以构造2k2^k2k-1个不同的数。于是求得尽量大的x对数构造即可, 求得时候可以考虑高斯消元法,就是线性基的构造方法假设基内的数为s1s_1s1,s2s_2s2,…,sns_nsn 新加入数k, 让k取得尽可能小的数,在线性基中就是不断异或取小值。构...原创 2019-05-12 17:43:41 · 336 阅读 · 0 评论