06 2018 档案

摘要:题目 分析 凉凉。 答案是所有要经过的点到根所经过的边权和减去最大的边权。 代码 vector好慢啊 #include <cstdio> #include <vector> #include <algorithm> using namespace std; const int maxn=105000 阅读全文
posted @ 2018-06-29 21:23 noble_(noblex) 阅读(238) 评论(0) 推荐(0)
摘要:题目 分析 好神的结论啊 看代码吧(Length只有85) 代码 顺手压了压代码 目前代码长度rk1 vjudge #include <iostream> int n;main(){while(std::cin>>n&&n)printf("%d\n",n<4?1:n==4?2:n);} 正常版: # 阅读全文
posted @ 2018-06-27 11:42 noble_(noblex) 阅读(364) 评论(0) 推荐(1)
摘要:题目 分析 看到$ M<=10 $考虑状压。 然后把每行都压一下,那么每个状态相关的就是上一行和上上行的状态。 然后枚举。 然后复杂度最坏是$ O(100 \times 1024^3) $的 仔细分析一下,有很多状态是无用的,但还是被判断了,比如$ 11111 $,显然不能做到不误伤。 那么我们把所 阅读全文
posted @ 2018-06-26 22:41 noble_(noblex) 阅读(184) 评论(0) 推荐(0)
摘要:题目 分析 题意:给个数列,求有多少五元上升组 考虑简化一下问题:如果题目求二元上升组怎么做。 仿照一下逆序对,用树状数组维护一下就ok了。 三元怎么做呢? 把二元的拓展一位就可以了,即把第三个也扔进树状数组 所以这题就渐渐明朗了: 用$ dp[i][x] $表示以$ A[x] $结尾的$ x $元 阅读全文
posted @ 2018-06-26 15:03 noble_(noblex) 阅读(249) 评论(0) 推荐(0)
摘要:题目 分析 $ n<= 16 $ 显然是状压 然后搞一搞(靠着蓝书yy一下) 代码 #include <bits/stdc++.h> using namespace std; const int maxn=17; int n, P[maxn], cover[1<<maxn], f[1<<maxn]; 阅读全文
posted @ 2018-06-26 11:32 noble_(noblex) 阅读(136) 评论(0) 推荐(0)
摘要:题目 分析 大力dp。用$ dp[i][j] $表示$ [i,j] $A能得到的最高分 我看到博弈论就怂。。。 代码 #include <bits/stdc++.h> using namespace std; const int maxn=110; int S[maxn],A[maxn],vis[m 阅读全文
posted @ 2018-06-26 11:27 noble_(noblex) 阅读(140) 评论(0) 推荐(0)
摘要:题目 分析 水题。$ O(nlogn) $的LCS 代码 #include <bits/stdc++.h> using namespace std; const int maxn=255*260, INF=1e9; int S[maxn], g[maxn], d[maxn]; int num[max 阅读全文
posted @ 2018-06-25 23:56 noble_(noblex) 阅读(145) 评论(0) 推荐(0)
摘要:题目 分析 太喵了~~~~~ 还有中途相遇法这种东西的。 嗯 以后可以优化一些暴力 详情左转蓝书P58 (但可能我OI生涯中都遇不到正解是这个的题把。。。。。。 代码 #include <bits/stdc++.h> using namespace std; const int maxn=25; m 阅读全文
posted @ 2018-06-25 20:16 noble_(noblex) 阅读(188) 评论(0) 推荐(0)
摘要:题目 分析 好喵啊~~~~ 不会做 正解看蓝书P53吧 代码 #include <cstdio> #include <algorithm> using namespace std; inline int read() { int x = 0, f = 1; char ch = getchar(); 阅读全文
posted @ 2018-06-25 17:33 noble_(noblex) 阅读(127) 评论(0) 推荐(0)
摘要:题目 分析 扫描线搞一搞。 按左端点排序,左端点相同时按右端点排序。 如果是左端点就$ cnt++ $,否则$ cnt-- $ 统计一下$ Max $就行了 代码 #include <bits/stdc++.h> using namespace std; void update(int x,int 阅读全文
posted @ 2018-06-25 16:28 noble_(noblex) 阅读(220) 评论(0) 推荐(0)
摘要:题目 分析 一开始没看到都是正整数根本不会做。。。。。。 看到了就是水题了。(但还是sb WA了一发) 尺取法搞一搞 代码 #include <bits/stdc++.h> using namespace std; const int maxn = 100000 + 10; int A[maxn], 阅读全文
posted @ 2018-06-25 16:21 noble_(noblex) 阅读(165) 评论(0) 推荐(0)
摘要:题目 分析 以前见到过差不多的这题。 xhk说是单调栈水题,但我又不会单调栈,于是当时就放下了。 这么久过去了我还是不会用单调栈做这题,用的是悬线法。 非常好写 代码 #include <cstdio> #include <cstring> #include <algorithm> using na 阅读全文
posted @ 2018-06-25 11:24 noble_(noblex) 阅读(180) 评论(0) 推荐(0)
摘要:upd:应该是叫压代码吧。。。。我好蠢啊。 蒟蒻 $ noble $_ 热衷于压行(尤其是在vjudge上) 附一个样例(目前代码长度rk1 vjudge) 记录几个小技巧 1、int main() 可以省略成 main() 2、可以不return 0 3、尽量用for 而不用 while 在for 阅读全文
posted @ 2018-06-19 11:47 noble_(noblex) 阅读(1391) 评论(0) 推荐(1)
摘要:题目 分析 标准的套路题。 枚举第一行,接着根据第一行递推下面的行。 时间复杂度$ O(2^n \times n^2) $ 代码 #include <bits/stdc++.h> using namespace std; const int maxn=20, INF=1e9; int A[maxn] 阅读全文
posted @ 2018-06-19 11:03 noble_(noblex) 阅读(176) 评论(0) 推荐(0)
摘要:题目 分析 在dp分类里做的,然而并不会$ O(n^3) $ 的$ dp $,怒写一发搜索。 看起来是$ O(n^4) $,但仔细分析了一下好像还挺靠谱的? poj挂了,没在poj交,在zoj上交的500ms P.S. 如果要在poj交还要把多数据改成单数据 代码 #include <bits/st 阅读全文
posted @ 2018-06-17 19:23 noble_(noblex) 阅读(195) 评论(0) 推荐(0)
摘要:题目 分析 蒟蒻不会数位dp,又是现学的 用$ dp[i][j][k] $ 表示表示长度为i开头j的所有数字中k的个数 然后预处理出这个数组,再计算答案 代码 #include <bits/stdc++.h> using namespace std; typedef long long ll; ll 阅读全文
posted @ 2018-06-17 15:01 noble_(noblex) 阅读(230) 评论(1) 推荐(0)
摘要:题目 分析 显然是一个资瓷合并的堆 现学了一发左偏树:教程 然后就没了 代码 #include <bits/stdc++.h> #define lc son[x][0] #define rc son[x][1] using namespace std; typedef long long ll; l 阅读全文
posted @ 2018-06-17 00:02 noble_(noblex) 阅读(135) 评论(0) 推荐(0)
摘要:题目 分析 (sb如我写了发不知道什么东西在洛谷上竟然水了84分 嗯咳 设$ i $为双重回文的中心 如果$ j~i $ 可以被算作答案,只有满足如下两式: $ p[j]+j \geq i $ $ 2*(i-j) \leq p[j] $ 计算时我们先做一次马拉车,然后按照 $ p[j]+j \geq 阅读全文
posted @ 2018-06-16 23:54 noble_(noblex) 阅读(192) 评论(0) 推荐(0)
摘要:题目 分析 $ k=1 $ 时显然就是树的直径 $ k=2 $ 时怎么做呢? 做法是把一开始树的直径上的边的边权改成$ -1 $,那么当我们第二次用这些边做环时就抵消了一开始的贡献。 所以答案就是边的数量*2 - 一开始树的直径 - 后来树的直径 P.S. 第二次求树的直径时只能dp 代码 #inc 阅读全文
posted @ 2018-06-16 00:12 noble_(noblex) 阅读(297) 评论(0) 推荐(0)
摘要:题目 分析 用$ dp[i] $ 表示前 i 个人组成的战斗力之和 然后显然$ dp[i]=Max ( dp[j]+a*(sum[i]-sum[j])^2+b*(sum[i]-sum[j])+c ) $ 然后就是斜率优化dp的套路,设个k比j优........... 然后对最后得出的式子搞斜率优化( 阅读全文
posted @ 2018-06-15 00:43 noble_(noblex) 阅读(166) 评论(0) 推荐(0)
摘要:题目 分析 人类智慧题,不会做。。。。。。 详细题解1 详细题解2 总体思路是考虑四边形 讨论凹四边形凸四边形,最后加一个单调性优化省掉个$ O(n) $ 代码 代码感觉好短啊 //https://blog.csdn.net/regina8023/article/details/45556321 # 阅读全文
posted @ 2018-06-14 00:39 noble_(noblex) 阅读(152) 评论(0) 推荐(0)
摘要:题目 分析 两道题目 第一问暴力预处理 用$ a[i][j][k] $和$ s[i][j][k] $ 表示从$ (1,1) $ 到 $ (i,j) $ 这个矩形中比k大的数的个数和这些数的和。 对于询问我们二分k,得出答案(最后还要减掉一些值一样的东西 详见代码) 第二问主席树 r=1时只有一个数列 阅读全文
posted @ 2018-06-12 21:49 noble_(noblex) 阅读(170) 评论(0) 推荐(0)
摘要:题目 分析 左上角是0,右下角是1。那么大概整张图是由0 1构成的。 那么我们要找到0和1的分界线,值就是最小割。 然后变成求原图最小割。 考虑到此题是平面图,那么就转成对偶图跑最短路。 完了。 总结:以后看到数据在$ nlog(n) $范围内的题,给的图是方格图,给的边还方方正正,那么多半是平面图 阅读全文
posted @ 2018-06-09 23:42 noble_(noblex) 阅读(259) 评论(0) 推荐(0)
摘要:题目 分析 在任意两个不相邻的点连一条线,求这条线能穿过几个三角形。 建图比较讲究(详见代码) 求树的直径。 代码 #include <bits/stdc++.h> using namespace std; const int maxn=200005; struct Node{ int x,y,id 阅读全文
posted @ 2018-06-09 23:15 noble_(noblex) 阅读(154) 评论(0) 推荐(0)
摘要:题目 分析 又不会做。。。。。。。 显然很好想到前缀和处理一下。 然后考虑最大化结果,直接上st表。 问题来了,然后呢? 怎么做$ length \in [l,r] $ 呢? 正解是设一个五元组 (i,l,r,val,pos) 。 i是左端点,l,r是右端点范围,val是 i 到 pos的和, po 阅读全文
posted @ 2018-06-06 21:50 noble_(noblex) 阅读(160) 评论(0) 推荐(0)
摘要:题目 分析 仪仗队 呃,看到题后感觉很像上面的仪仗队。 仪仗队求的是$ gcd(a,b)=1 $ 本题求的是$ gcd(a,b)=m $ 其中m是质数 把 $ gcd(a,b)=1 $ 变形成 $ gcd(a,b)*m=m $ 然后在n的范围内枚举一下,使 $ gcd(a,b)*m <= n $ 再 阅读全文
posted @ 2018-06-05 20:46 noble_(noblex) 阅读(229) 评论(0) 推荐(0)
摘要:题目 分析 先敲了个树链剖分,发现无法AC(其实是自己弱,懒得debug、手写栈) 然后去学了学正解 核心挺好理解的,$ query(a) $是$ a $到根的异或和。 答案就是$ lca(x,y) \hat{} query(x) \hat{} query(b) $ 接着维护异或和,很显然线段树挺容 阅读全文
posted @ 2018-06-05 01:53 noble_(noblex) 阅读(195) 评论(1) 推荐(1)
摘要:题目 分析 把行和列分别看做二分图的两个集合 每一个在$ (x,y) $处的1,连接$ G[i]->j $ 然后跑二分图匹配 代码 #include <bits/stdc++.h> using namespace std; const int maxn=300; int s[maxn][maxn]; 阅读全文
posted @ 2018-06-03 00:16 noble_(noblex) 阅读(128) 评论(0) 推荐(0)
摘要:题目 分析 已经凉凉。看错数据范围敲了发莫队........ 和HH的项链差不多,把每种颜色之前的颜色到再之前的颜色这段区间 区间加。 区间加就树状数组特技 代码 #include <bits/stdc++.h> const int maxn=2e6+10; using namespace std; 阅读全文
posted @ 2018-06-02 19:11 noble_(noblex) 阅读(157) 评论(0) 推荐(0)
摘要:题目 分析 看起来就是一个支持link的东西。 但有环,考虑缩点...... 但疯狂Tle。大概是常数卡不过去。 行走的大常数noble_ 代码 #include <bits/stdc++.h> #define lc son[x][0] #define rc son[x][1] using name 阅读全文
posted @ 2018-06-01 20:31 noble_(noblex) 阅读(144) 评论(0) 推荐(0)

/* */