上一页 1 ··· 17 18 19 20 21 22 23 24 25 ··· 29 下一页
摘要: 参考:https://blog.csdn.net/aarongzk/article/details/48883741 没想到吧.jpg 来自题解: “如果用sum[i]表示前i个杯子底球的总数,那么知道一个c[i][j],等于是知道了sum[j]和sum[i 1]的差的奇偶性。而sum[0]的奇偶性 阅读全文
posted @ 2018-04-26 11:25 lokiii 阅读(123) 评论(0) 推荐(0) 编辑
摘要: 参考:https://blog.csdn.net/clove_unique/article/details/57405845 死活不过样例看了题解才发现要用double.... $$ a_j \leq a_i+p \sqrt{abs(i j)} $$ $$ p\geq a_j+\sqrt{abs(i 阅读全文
posted @ 2018-04-26 10:59 lokiii 阅读(105) 评论(0) 推荐(0) 编辑
摘要: 首先处理处理出来哪些边能连——能把羊分成两个偶数部分的,实现是在凸包上枚举极点,极角排序,枚举凸包上点对判断两边羊的个数的奇偶即可,设可以连边为v[i][j]=1 然后设f[i][j]为从i到j个凸包上点的方案数,初始状态是相邻点f[i][i+1]=1,转移是 $$ f[i][j]=\sum_{k= 阅读全文
posted @ 2018-04-26 09:26 lokiii 阅读(237) 评论(0) 推荐(0) 编辑
摘要: 参考:https://blog.csdn.net/zqh_wz/article/details/52953516 妙啊 看成分段问题,因为火车只能一批一批的走(易证= =)设f[i]为到i为止的车都走完来回了,转移显然是 $$ f[i]=min{max(f[j]+i j 1,a[i])+i j 1+ 阅读全文
posted @ 2018-04-25 21:15 lokiii 阅读(159) 评论(0) 推荐(0) 编辑
摘要: 参考:https://www.cnblogs.com/iwtwiioi/p/4986316.html 注意区间长度为1e5级别。 则假设n个数不全相同,那么他们的gcd小于最大数 最小数,证明:则gcdk2−gcdk1=gcd(k2−k1) d 所以特判一下全相等的情况就行利润 然后把区间除以k,这 阅读全文
posted @ 2018-04-25 19:35 lokiii 阅读(121) 评论(0) 推荐(0) 编辑
摘要: 就是后缀自动机的板子嘛..构造完自动机之后拓扑一下,记录size,对于size大于k的点和ans取max cpp include include include include using namespace std; const int N=100005; int n,m,a[N],cur=1,c 阅读全文
posted @ 2018-04-25 17:26 lokiii 阅读(124) 评论(0) 推荐(0) 编辑
摘要: 二分答案,然后把边权大于二分值的的边赋值为1,其他边赋值为0,然后跑spfa最短路看是否满足小于等于k条边在最短路上 阅读全文
posted @ 2018-04-25 14:19 lokiii 阅读(140) 评论(0) 推荐(0) 编辑
摘要: 注意输出是80字符个一行!! 首先贪心很显然,就是两头尽量拿小的。 然后需要处理两头一样的情况,显然是选字典序小的一串,把数组反着接在原数组后面,然后跑sa,判断的时候直接比较rk数组 cpp include include include using namespace std; const in 阅读全文
posted @ 2018-04-25 11:40 lokiii 阅读(126) 评论(0) 推荐(0) 编辑
摘要: floyd传递关系,一个牛能确定排名的条件是能和所有牛确定关系 cpp include include using namespace std; const int N=105; int n,m,a[N][N],ans; int main() { scanf("%d%d",&n,&m); for(i 阅读全文
posted @ 2018-04-25 10:06 lokiii 阅读(200) 评论(0) 推荐(0) 编辑
摘要: 要求三边和大于第四边,所以任意一条边的长度都是小于n/2 设f[i][j]为前i条长为j,转移的时候用n/2限制 cpp include include using namespace std; int n,mx,f[5][2505]; int main() { f[0][0]=1; scanf(" 阅读全文
posted @ 2018-04-25 09:37 lokiii 阅读(126) 评论(0) 推荐(0) 编辑
摘要: 在线段树上记录长度、区间01翻转标记、当前1个数。传递tag的时候用长度 1个数即可 cpp include include using namespace std; const int N=100005; int n,m; struct qwe { int l,r,len,v,tg; }t[N'9 阅读全文
posted @ 2018-04-25 08:53 lokiii 阅读(128) 评论(0) 推荐(0) 编辑
摘要: 设f[i][j]为第i分钟疲劳j,从三种情况转移,记得休息的时候判断从i开始休息到n能不能恢复到疲劳0 cpp include include using namespace std; const int N=10005,M=505; int n,m,a[N],f[N][M]; int main() 阅读全文
posted @ 2018-04-25 08:16 lokiii 阅读(132) 评论(0) 推荐(0) 编辑
摘要: 裸的01背包 阅读全文
posted @ 2018-04-25 07:51 lokiii 阅读(89) 评论(0) 推荐(0) 编辑
摘要: 要求区间取min和max,可以用st表或线段树维护 st表 cpp include include using namespace std; const int N=100005; int n,q,b[N],mn[N][20],mx[N][20]; int read() { int r=0,f=1; 阅读全文
posted @ 2018-04-25 07:47 lokiii 阅读(162) 评论(0) 推荐(0) 编辑
摘要: 设up[i][j]为第i位升序为j的最小修改数,down为降序 cpp include include using namespace std; int n,a[30005],up[30005][4],down[30005][4]; int main() { scanf("%d",&n); for( 阅读全文
posted @ 2018-04-25 07:21 lokiii 阅读(92) 评论(0) 推荐(0) 编辑
摘要: 在洛谷上被卡常了一个点! 就是裸的01背包咯 ~~为啥我在刷水题啊~~ 阅读全文
posted @ 2018-04-24 21:57 lokiii 阅读(118) 评论(0) 推荐(0) 编辑
摘要: 阴沟翻船.jpg 居然忘了除0的情况 枚举两两之间的线,把斜率装起来排个序去个重就好了 ~~真是水的一晚上呢~~ cpp include include include using namespace std; const int N=205; int n,tot,ans; double x[N], 阅读全文
posted @ 2018-04-24 21:51 lokiii 阅读(108) 评论(0) 推荐(0) 编辑
摘要: 本来想爆手速写个树剖,然而快下课了就手残写了了个n方的短小…… 暴力把查询的两个点中深的一个跳上来,加上边权,然后一起跳加边权就行了 阅读全文
posted @ 2018-04-24 21:37 lokiii 阅读(131) 评论(0) 推荐(0) 编辑
摘要: 挺有意思的思路 如果不能自己打井,那么就是MST裸题了,考虑转换一下,自己打井就相当于连接一口虚拟的井(地下水?),所有井i到这口井的距离是w[i],这样把所有边排个序跑MST即可 cpp include include include using namespace std; const int 阅读全文
posted @ 2018-04-24 21:24 lokiii 阅读(168) 评论(0) 推荐(0) 编辑
摘要: 某种意义上真毒瘤?我没看懂题啊...~~于是看了题解~~ 就是筛约数的那种方法,复杂度调和级数保证O(nlogn) ~~所以这题啥意思啊~~ cpp include include include using namespace std; const int N=1000005; int n,mx, 阅读全文
posted @ 2018-04-24 21:07 lokiii 阅读(136) 评论(0) 推荐(0) 编辑
摘要: 按xy降序排序,把能被完全包含的去掉 然后就得到了x升序y降序的一个数组 然后方程就显然了:f[i]=min(f[j]+y[j+1]x[i]) 斜率优化转移 ~~说起来我还不会斜率优化呢是不是该学一下了~~ 阅读全文
posted @ 2018-04-24 20:44 lokiii 阅读(103) 评论(0) 推荐(0) 编辑
摘要: 参考:https://blog.csdn.net/herobrine_tkj/article/details/78404426?locationNum=8&fps=1 为什么从1开始存就挂了,这是个未解之谜... 把两个人条件转换为二维平面内的点,零件生产公司是左下角,零件消费公司是右上角,求最大矩 阅读全文
posted @ 2018-04-24 19:49 lokiii 阅读(172) 评论(0) 推荐(0) 编辑
摘要: 枚举从大到小s1,二分s2(越大越有可能符合),2 SAT判断,ans取min 思路倒是挺简单的,就是二分的时候出了比较诡异的问题,只能二分s2的值,不能在数组上二分... 有个优化,就是当不是二分图的时候退出枚举,这个用并查集染色维护 cpp include include include inc 阅读全文
posted @ 2018-04-24 16:27 lokiii 阅读(315) 评论(0) 推荐(0) 编辑
摘要: 参考:https://blog.csdn.net/YihAN_Z/article/details/73380387 一点都不想写正解.jpg random_shuffle一下然后贪心的加点,和ans取max即可。biutset非常方便 正解好像是最大团还是二分图最大独立集来着? cpp includ 阅读全文
posted @ 2018-04-24 12:00 lokiii 阅读(262) 评论(0) 推荐(0) 编辑
摘要: 参考:https://www.cnblogs.com/ccz181078/p/5622200.html 非常服气.jpg 就是random_shuffle几次然后顺着找,ans取min... cpp include include include include using namespace st 阅读全文
posted @ 2018-04-24 11:41 lokiii 阅读(231) 评论(0) 推荐(0) 编辑
摘要: 参考:https://blog.csdn.net/Quack_quack/article/details/50554032 神建图系列 首先把问题转为全填上,最少扣下来几个能符合条件 先考虑第2个条件,枚举f为一个每行/列最大剩几个,然后记录一下每行列的零件个数(包括填上的) 然后建图 s向所有行连 阅读全文
posted @ 2018-04-24 11:06 lokiii 阅读(169) 评论(0) 推荐(0) 编辑
摘要: 参考:https://www.cnblogs.com/CQzhangyu/p/6952371.html 费用流很简单,考虑但是会T。 考虑费用流的本质,流一次需要要找一个能够从当前点到达的距离最小的点x,然后进行增广,然后把c[x] 1,并且会出现一些反向边。 考虑二叉树的性质,任何一条两点之间路径 阅读全文
posted @ 2018-04-23 22:01 lokiii 阅读(285) 评论(0) 推荐(0) 编辑
摘要: 妙啊 首先暴力建图跑最大流非常简单,s向每个i连流量为p[i]的边,每个i向t连流量为s[i]的边,每个i向j连流量为c的边(i include using namespace std; const int N=10005; int n,c,p[N],s[N]; long long f[2][N], 阅读全文
posted @ 2018-04-23 19:46 lokiii 阅读(299) 评论(0) 推荐(0) 编辑
摘要: 参考:https://blog.csdn.net/wxh010910/article/details/55806735 以下课件,可并堆部分写的左偏树 cpp include include using namespace std; const int N=600005; int n,m,tot,f 阅读全文
posted @ 2018-04-23 17:06 lokiii 阅读(224) 评论(0) 推荐(0) 编辑
摘要: 参考:https://www.cnblogs.com/lcf 2000/p/6809085.html 设f[i][j][k]为第i个学校派出的赛艇数量在区间j内,并且区间j内共有k个学校的方案数 把数量区间离散化,转移是: 当k==1 $$ f_{i,j,k}=\sum_{i'=1}^{i 1}\s 阅读全文
posted @ 2018-04-21 17:26 lokiii 阅读(90) 评论(0) 推荐(0) 编辑
上一页 1 ··· 17 18 19 20 21 22 23 24 25 ··· 29 下一页