冲刺省选
文章平均质量分 62
Freopen
这个作者很懒,什么都没留下…
展开
-
魔王的消失Day2
良心Day2T1:大学uni\texttt{uni}uni现有一无标号 N 个节点 N 条边的无重边连通无向图,每个点可以染成 M 种颜色中的一种,问本质不同的染色方案数。我们称两个染色方案是本质不同的当且仅当不存在一种给节点编号的方案令两种染色方案形成的邻接矩阵以及对应节点的颜色完全一致。答案对 998244353998244353998244353 取模。对于 5%的数据,有 N...原创 2019-07-22 19:31:32 · 191 阅读 · 0 评论 -
拉格朗日乘数法
对于只有一个自变量的单峰函数我们可以三分解决。当然我们也可以求导数然后二分也行(只要你导得出来)但是对于多个自变量,莫非三分套三分?套两三个或许可以。但是我们可以用偏导一次解方程(其实也是二分答案)求出最值(前提是只有一个极值点且你能求偏导)这就是拉格朗日乘数法。具体来讲就是你需要求最值的函数是一个山峰,这个山峰的高度即为函数值,我们可以画出等高线(所以地理在某种程度上算理科)而这个函数中自变量之...原创 2018-03-26 19:37:15 · 630 阅读 · 0 评论 -
[AHOI2007]密码箱
Description在一次偶然的情况下,小可可得到了一个密码箱,听说里面藏着一份古代流传下来的藏宝图,只要能破解密码就能打开箱子,而箱子背面刻着的古代图标,就是对密码的提示。经过艰苦的破译,小可可发现,这些图标表示一个数以及这个数与密码的关系。假设这个数是n,密码为x,那么可以得到如下表述: 密码x大于等于0,且小于n,而x的平方除以n,得到的余数为1。 小可可知道满足上述条件的x可能不止一个,...原创 2018-03-22 10:51:49 · 825 阅读 · 0 评论 -
UOJ#77. A+B Problem
#77. A+B Problem统计描述 提交 自定义测试题目名称是吸引你点进来的。从前有个nn个方格排成一行,从左至右依此编号为1,2,⋯,n1,2,⋯,n。有一天思考熊想给这nn个方格染上黑白两色。第ii个方格上有66个属性:ai,bi,wi,li,ri,piai,bi,wi,li,ri,pi。如果方格ii染成黑色就会获得bibi...原创 2018-03-21 20:02:25 · 679 阅读 · 0 评论 -
POJ-2826 An Easy Problem?!(线段交点模板)
An Easy Problem?!Time Limit: 1000MS Memory Limit: 65536KTotal Submissions: 14877 Accepted: 2272DescriptionIt's raining outside. Farmer Johnson's bull Ben wants some rain to water his flowers. Ben nail...原创 2018-04-08 14:36:55 · 407 阅读 · 0 评论 -
最小割连边模型
1.对于两个都有S方面的边和T方面的边的点,在他们之间连inf表示这两个点要么全割S方面的边要么都割T方面的边。最小割的一种数学建模:$01$变量建模连边:对于一个$01$变量$a$,它在图中的点的编号我们也记作$a$边$(S,a,b)$表示$a=1$时要花费$b$的代价。边$(a,T,b)$表示$a=0$时要花费$b$的代价。边$(a,c,b)$表示$a=0,c=1$时要...原创 2018-03-30 19:25:30 · 186 阅读 · 0 评论 -
[CQOI2015]任务查询系统
这个主席树也太裸了吧。操作是两倍所以蜜汁RE#include<cstdio>#include<cstring>#include<cctype>#include<algorithm>#include<vector>#define LL long long#define maxn 100005#define maxnum 100...原创 2018-04-07 15:03:30 · 186 阅读 · 0 评论 -
最大流的板
以前的有小漏洞。。。。。。。#include<cstdio>#include<cstring>#include<cctype>#include<algorithm>#define inf 0x3f3f3f3f#define maxn 205#define maxm maxn*maxnusing namespace std;int n...原创 2018-03-20 15:14:12 · 153 阅读 · 0 评论 -
Number HYSBZ - 3275
有N个正整数,需要从中选出一些数,使这些数的和最大。若两个数a,b同时满足以下条件,则a,b不能同时被选1:存在正整数C,使a*a+b*b=c*c2:gcd(a,b)=1Input第一行一个正整数n,表示数的个数。n<=3000第二行n个正整数a1,a2,...anOutput最大的和Sample Input53 4 5 6 7Sample Output22二分图最小割模型中,考虑这样一个...原创 2018-03-20 11:21:07 · 201 阅读 · 0 评论 -
分治最小割树
https://blog.csdn.net/oi_Konnyaku/article/details/84927936https://blog.csdn.net/qq_33229466/article/details/53290996http://hzwer.com/6248.html最小割不会互相跨立所以可以分治。理论复杂度O(n^4),Dinic写得好可以看做O(n^2l...原创 2018-03-19 22:14:41 · 181 阅读 · 0 评论 -
CQOI2014 危桥
危桥 这题告诉我们人有多大胆,乱搞是标算。乱猜一下交换一对源汇后仍然可以成立才是Yes然后。。。。就这样反直觉的证出来了,对于每一个a1->b2,b1->a2的路径可以交换一对源汇(a1,a2),然后之前每一个a1->b2,b1->a2的路径就会对应变成了a2->a1,b1->b2的一条路径新产生的a2->b2,b1->a1的路径对应之前的a1-&g...原创 2018-03-19 20:12:25 · 223 阅读 · 0 评论 -
CQOI2012 交换棋子 网络流棋盘模型
交换棋子 网络流棋盘模型,白点流到白点因为是对点的限制,我们考虑拆点。为A1,A2形象的看来就是两个平面,一个在上,另一个在下。然后我们考虑交换次数这个东西如何用流量限制。当一个点A到另一个点B时。不仅B1到B2的流量要减,A1到A2的也要减。然后我们发现,除了起点和终点,别的点只要进来了白点,这个白点一定会出去。所以我们让这个白点预付款,让他耗费的流量翻倍,实际上让边的流量减半就行。然后起点终点...原创 2018-03-19 18:54:16 · 226 阅读 · 0 评论 -
BZOJ 4552: [Tjoi2016&Heoi2016]排序
Description在2016年,佳媛姐姐喜欢上了数字序列。因而他经常研究关于序列的一些奇奇怪怪的问题,现在他在研究一个难题,需要你来帮助他。这个难题是这样子的:给出一个1到n的全排列,现在对这个全排列序列进行m次局部排序,排序分为两种:1:(0,l,r)表示将区间[l,r]的数字升序排序2:(1,l,r)表示将区间[l,r]的数字降序排序最后询问第q位置上的数字。Input输入数据的第一行为两...原创 2018-03-13 12:08:21 · 209 阅读 · 0 评论 -
线段树合并
表示完全无法理解,码了一个超水模板题后感觉是主席树的逆运算?(楼主又在瞎BB了)BZOJ 2212DescriptionByteasar the gardener is growing a rare tree called Rotatus Informatikus. It has some interesting features: The tree consists of straight br...原创 2018-03-13 11:23:59 · 374 阅读 · 0 评论 -
51Nod 1514美妙的序列
生成函数+多项式求逆。。。。。。套路:一般都是一个很简单的题目,输入不超过3个数字的那种,然后生成函数然后求逆。。。。。。。。当模板题吧。ACcode:#include<cstdio>#include<cstring>#include<cctype>#include<algorithm>#define maxn 400005using na...原创 2018-03-05 21:52:06 · 368 阅读 · 0 评论 -
半平面交
法一:暴力判断每个点是否被现在半平面割。但是在强制在线的时候也是唯一的方法了。Code:#include<cstdio>#include<cstring>#include<cmath>#include<cctype>#include<algorithm>using namespace std;int siz,cnt...原创 2018-04-09 12:19:59 · 388 阅读 · 0 评论 -
BSGS算法
主要的思路就是分块,折半搜索。P为质数时,POJ2417:#include<cstdio>#include<cstring>#include<cctype>#include<cmath>#include<algorithm>using namespace std;int P,B,N;struct Hashmap...原创 2018-04-10 09:26:16 · 279 阅读 · 0 评论 -
线段树优化DP
线段树优化DP可以按DP方法(刷表法和填表法)分为2类。如果是填表法那么其实就是一个区间求最值等等的,十分简单。但是如果是刷表法那么就很难让人想到了,因为刷表法DP其实是没有填表法DP那么思路流畅的。刷表法就相当于是区间赋值什么的。线段树优化DP最好的一点在于,即使有O(n^2)个状态吗,如果你只需要求出其中的O(q)个状态,将线段树滚动一下或者直接原地转移,那么空间复杂度是O(n)的,时间复杂度...原创 2018-04-12 08:31:48 · 880 阅读 · 0 评论 -
LG P4331 [BOI2004]Sequence 数字序列(左偏树+贪心)
题目论文题。好难啊。我们先考虑b数组不下降。那么一定是一整条一整条的递增。。。。。。现在如果前半段和后半段的最优决策如此:那么整段的最优决策也就这样了。但是如果是这样的:那么不能直接合并。首先可以证明,整个的最优策略中,左边还是一条直线,右边也是。然后可以证明,这两条直线应该是一个高度(左边的想往上,右边的想往下,合在一起)。然后可以发现,这个高度就是中位数的高度。。。...原创 2019-03-23 12:08:49 · 176 阅读 · 0 评论 -
LOJ #2116. 「HNOI2015」开店(树链剖分+标记永久化主席树 || 动态点分治)
题目解法一:∑i∈[1,n] and x[i]∈[l,r]dis(u,i)=∑idep[u]+dep[i]−2∗dep[lca(u,i)]\sum_{i\in [1,n] \ and \ x[i]\in[l,r]} dis(u,i) = \sum_{i}dep[u]+dep[i]-2*dep[lca(u,i)]i∈[1,n] and x[i]∈[l,r]...原创 2019-03-20 08:48:10 · 194 阅读 · 0 评论 -
LG P5206 [WC2019] 数树
待填原创 2019-03-15 10:51:24 · 190 阅读 · 0 评论 -
Query on a tree IV SPOJ - QTREE4(动态点分治)
对于每一个子树存一个set,每一个点存一个set,然后你就可以以OJ最短的代码长度换来OJ上最长的运行时间。。。#include<bits/stdc++.h>#define maxn 100005#define lim 19using namespace std;char cb[1<<15],*cs=cb,*ct=cb;#define getc() (cs==...原创 2019-03-10 10:24:52 · 228 阅读 · 0 评论 -
BZOJ 3812: 主旋律 (容斥状压+DAG计数理论)
题意: 有多少有向边的子集删去之后整个图仍然强联通。n&lt;=15, m&lt;=n * (n-1)上一次做弱化版:有多少有向边的子集使整个图没有环。当时的做法是。。。。。。...原创 2019-03-02 10:29:42 · 349 阅读 · 0 评论 -
Aizu 2560 Point Distance FFT
一般的FFT重点是找不变量,这里发现如果AB两点,我们把他们标号为 2nx+y2nx+y2nx+y那么通过两个标号相减的值可以反推出横坐标差和纵坐标差,那么直接把所有点按标号放入多项式卷起来即可。AC Code:#include<bits/stdc++.h>#define maxn (1<<23)#define LL long longusing namespac...原创 2018-12-24 09:48:51 · 246 阅读 · 0 评论 -
#6039. 「雅礼集训 2017 Day5」珠宝
题目描述Miranda 准备去市里最有名的珠宝展览会,展览会有可以购买珠宝,但可惜的是只能现金支付,Miranda 十分纠结究竟要带多少的现金,假如现金带多了,就会比较危险,假如带少了,看到想买的右买不到。展览中总共有 N 种珠宝,每种珠宝都只有一个,对于第 i 种珠宝,它的售价为 Ci 万元,对 Miranda 的吸引力为 Vi 。Miranda 总共可以从银行中取出 K万元,现在她想...原创 2018-11-06 19:45:39 · 915 阅读 · 0 评论 -
[bzoj]noip十连测欧贝里斯克的巨神兵(obelisk)——dag图DP,状态压缩
题目大意:有一张n个点,m条边的有向图,有多少个子图(选定一个边集)是没有环的。答案对1e9+7取模。(n≤17)显然求的就是DAG个数,于是考虑一层一层的加点,但是发现显然会算重,因为并不能保证层次分明,可能有两个点为同一层的但是又分两层DP导致算重。然后我就想保存上一层的点,那么选入的新点一定要和上一层的点连边才行,这样虽然不会算重,但是不仅要打恶心的3进制DP还是一个O(4^n)的算法?...原创 2018-10-16 08:53:15 · 650 阅读 · 0 评论 -
状态分块优化转移
如题:题目描述白兔有一颗n个点以1为根的树。树上每个结点有一个权值val。 如果两个点a,b满足a是b的祖先且val[b]|val[a],则白兔可以直接从a跳到b。 现在白云想知道,对于每一个点k,白兔从1号点跳若干步到达k号点的方案数是多少? 两个方案不同为它们经过的点数不同或者某一步到达了不同的点。n<=100000 , val <= 10^18很容易想到n^2的做法,但是数据范围...原创 2018-06-24 17:14:46 · 314 阅读 · 1 评论 -
[ZJOI2008]树的统计Count
被自己蠢哭了。原来LCT即是在一开始的每个点输入一个点权的阶段也不能直接upd啊,还得Splay。。。。。。LCT:#include<cstdio>#include<cstring>#include<cctype>#include<algorithm>#define inf 0x3f3f3f3f#define maxn 30005usin...原创 2018-04-07 12:03:00 · 152 阅读 · 0 评论 -
[SDOI2011]染色
这题主要是来告诫自己,除非写主席树和线段树合并,否则左右儿子都要访问(以下传数据)。#include<cstdio>#include<cstring>#include<cctype>#include<algorithm>#define maxn 100005#define lc now<<1#define rc lc|1us...原创 2018-04-07 10:38:28 · 211 阅读 · 0 评论 -
BZOJ1458士兵占领
Description有一个M * N的棋盘,有的格子是障碍。现在你要选择一些格子来放置一些士兵,一个格子里最多可以放置一个士兵,障碍格里不能放置士兵。我们称这些士兵占领了整个棋盘当满足第i行至少放置了Li个士兵, 第j列至少放置了Cj个士兵。现在你的任务是要求使用最少个数的士兵来占领整个棋盘。Input第一行两个数M, N, K分别表示棋盘的行数,列数以及障碍的个数。 第二行有M个数表示Li。 ...原创 2018-04-12 16:45:21 · 163 阅读 · 0 评论 -
一类关于子集和问题的O(2^n * n)做法
有n个元素,这n个元素的子集我们可以用一个二进制数S表示,并且S和子集是一一对应的。现在我们有一个函数F(S),这个函数的值是已知的。定义G(S)=sigma( F(T) , T & S = S )。现在要求函数G(S)。比较直观的作法就是暴力枚举子集,O(3^n)。比较晦涩的做法就是容斥原理,G(S)=sigma( G(T) * (bitsiz[T]-bitsiz[S] & 1 ...原创 2018-04-05 11:19:36 · 611 阅读 · 0 评论 -
BZOJ 4129: Haruna’s Breakfast
经典题目。分块还是有点用的,可以支持O(1)单点修改,O(sqrt(n))区间查询,我想反之亦然吧。AC code#include<cstdio>#include<cstring>#include<cctype>#include<algorithm>#include<cmath>#define maxn 100005#defi...原创 2018-04-12 10:21:45 · 190 阅读 · 0 评论 -
替罪羊树SCT
照着指针版的打了个数组版的,发现自己上了一节C++语法课。重构什么的,最难在于找出深度最小的需要重构的节点,毕竟多写一个函数不太优雅,数组又不像指针那么方便直接修改。如果你要传回一个变量的地址(因为你直接修改这个地址ch等等就直接跟着改了,十分方便)函数不能写 int&得写int *...............删除还是不要重构,太浪费了。。。。。。#include<cstdio&g...原创 2018-03-12 19:57:50 · 210 阅读 · 0 评论 -
小C的线段树
题目描述输入从文件segment.in中读入数据.一行三个整数n, m, k.输出输出到文件segment.out中.一个整数表示答案对998244353取模的结果.n*m<=100000又是一个关于线段的题,但是这个题的线段并不是特别重要,以至于我们可以直接将他拆成两个端点来考虑(一般只考虑端点比较简单)然后就是愉快的DP了(出题人挖了好多坑,一般人看到(li>li-1 , ri&g...原创 2018-03-05 16:46:29 · 262 阅读 · 0 评论 -
小C饮水记
题目描述小C虽然没有参加NOI2016, 但当他看到"国王饮水记"这题时还是迅速秒掉了.小C认为这题太水了,于是他决定对这题进行加强.现在小C桌上有n杯水排成一行,第i杯水中有wi 单位体积的水. 他会选择一个区间[l, r],并拿一个初始为空的杯子(杯子的容积无限大),他可以重复无限次以下操作:• 选定任意一杯水i,i ∈ [l, r].• 使i和它拿着的杯子里的水的体积变为它们的平均值.小C希...原创 2018-03-05 16:31:52 · 273 阅读 · 0 评论 -
省选模拟赛Day4T2 攻略
Problem Problem Problem Problem Problem Problem Problem Problem 2 攻略 (game)(game)(game)(game)(game)(game)【题目描述】 【题目描述】一款游戏有 n个场景 (scene) (scene) ,某些场 景可以通过不同的选择支到达其他景。所有场和选择支构成树状结:开始游戏时在根节点 景。所有场和选择支构...原创 2018-03-07 17:06:25 · 334 阅读 · 0 评论 -
省选模拟赛Day4T3迂回
Problem Problem Problem Problem Problem Problem Problem Problem 3 迂回 (tour)(tour)(tour)(tour)(tour)(tour)【题目描述】 【题目描述】给定一有向图,边长均为 1,求 长度 小于 k的环个数 mod m 。保证 有向图中 无自环 (即 g[i,i]='N') 。什么样的环属于不同 的解, 详见样例解...原创 2018-03-07 17:02:43 · 351 阅读 · 0 评论 -
树的点分治
CodeForces 150E 通过点分治以及合并子树检查二分的答案用深度从小到大的方式可以剪枝,达到nlog^2(n)的复杂度(不离散化常数巨大,离散化常数依然巨大)#include<cstdio>#include<cstring>#include<cctype>#include<vector>#include<algo...原创 2018-02-14 20:11:41 · 221 阅读 · 0 评论 -
矩阵乘法套线段树(动态最大子段和问题)
一个新套路,利用矩阵能将一些复杂的线性关系转换为一次矩阵乘法。求解只需求区间积。采用线段树(所以需要满足结合律)更奇特的是你可以重载矩阵乘法时内部单个元素的乘法和加法(比如说改成取max之类的)只要重载之后仍然满足结合律我自己想了一个判断方法。要A*(B*C)=(A*B)*C令A*(B*C)=D,(A*B)*C=E有D=EDij=Eijsigma(sig...原创 2018-02-27 16:22:25 · 579 阅读 · 0 评论 -
SG函数
有些(很多)博弈问题可以转换为Nim游戏SG[某个游戏+状态]的值的意义就是将这个游戏改为Nim游戏中的一堆石子,石子的个数。只有一堆石子的Nim游戏显然石子个数为0是输,其他都是赢多堆石子的就把石子个数xor。那么他们之间的关系就是:Nim游戏中先手胜负与石子xor和相关SG函数能将一个游戏转换为一堆石子...原创 2018-02-26 22:18:31 · 226 阅读 · 0 评论