摘要: struct point{ double x, y; }; struct line{ double A, B, C;//Ax + By + C = 0; }; line PPL(point a, point b){// 两点确定直线的一般式 if(a.x == b.x) return line{1, 阅读全文
posted @ 2020-07-29 16:34 Ketchum 阅读(68) 评论(0) 推荐(0) 编辑
摘要: 唯一难点应该在于怎么转点吧,直接看代码呗。 //#pragma GCC optimize("-Ofast","-funroll-all-loops") //#pragma GCC optimize(2) //freopen("C://std/a.in","r",stdin); //freopen(" 阅读全文
posted @ 2020-07-29 16:32 Ketchum 阅读(155) 评论(0) 推荐(0) 编辑
摘要: 看题解前毫无思路,看完之后怎么这么傻逼一题。自己还是太菜了。 考虑dp[l][r]为l-r区间内合并完剩的最小个数。那么考虑只有两个相邻区间都能合并成一个相同数字的情况,才能对合并结果有影响,要不然两个区间内的个数直接相加即可。 此时还需一个a数组记录l,r合并成的一个数字时的值。 //#pragm 阅读全文
posted @ 2020-07-27 15:39 Ketchum 阅读(135) 评论(0) 推荐(0) 编辑
摘要: //It is made by jump~ #include <iostream> #include <cstdlib> #include <cstring> #include <cstdio> #include <cmath> #include <algorithm> #include <ctim 阅读全文
posted @ 2020-07-27 14:54 Ketchum 阅读(89) 评论(0) 推荐(0) 编辑
摘要: 首先,明显的网络流。那么如何建边,对于每个二次函数在[1,m]里挑n个函数值最小的点, 这样子一共n^2个点,注意还要去重。这n^2个点其实就能使得n个二次函数(a, b, c)完全匹配。 那么流量全部设为1,费用是对应的函数值。超级源点和终点费用为0;但是,跑n次费用流时间不允许,但是你仔细想每次 阅读全文
posted @ 2020-07-27 11:59 Ketchum 阅读(164) 评论(0) 推荐(0) 编辑
摘要: 不难发现答案即为a[l, r]的长度加上b的长度减去2倍的a[l,r]与b的LCS。 那么难点就在于如何处理出每次询问的lcs了,这里仍然采用dp的思想。对于dp[i][j]代表b串前i个字符串与a[l,r]形成了长度为j的公共子序列时在a串中的最小下标位置。 那么不难得出转移方程1 :dp[i][ 阅读全文
posted @ 2020-07-25 10:33 Ketchum 阅读(110) 评论(0) 推荐(0) 编辑
摘要: 考虑朴素思想,每次把一个最大连通图所有的点减去最小值,然后分裂成若干子图继续下去。但是又不好写又容易t, 那么考虑反着来如何在保证正确的情况通过加点的方式来找答案。 首先,最后删的一定都是原先最大的那些点,那么考虑从大到小排序。每次进来一个点,判断他的相邻点是否已经进来,如果有就合并(dsu)。每次 阅读全文
posted @ 2020-07-24 18:16 Ketchum 阅读(177) 评论(0) 推荐(0) 编辑
摘要: 考虑分块,大于块数的动态开点权值线段树,小于的话暴力修改。 #pragma GCC optimize("-Ofast","-funroll-all-loops") #include<bits/stdc++.h> #define ll long long #define PB push_back #d 阅读全文
posted @ 2020-07-24 16:39 Ketchum 阅读(198) 评论(0) 推荐(0) 编辑
摘要: 与此题几乎一样。(https://blog.csdn.net/acdreamers/article/details/23039571) 不过注意,好像出题人赛后加强数据了,在枚举0-k的时候,里面最多只能有一个快速幂,其他的都尽量用变量迭代代替。要不然t飞。 #include<bits/stdc++ 阅读全文
posted @ 2020-07-22 17:07 Ketchum 阅读(186) 评论(0) 推荐(0) 编辑
摘要: 转载自https://blog.csdn.net/new_ke_2014/article/details/21829921 #include <iostream> using namespace std; #define LL __int64 LL w; struct Point//x + y*sq 阅读全文
posted @ 2020-07-22 14:37 Ketchum 阅读(119) 评论(0) 推荐(0) 编辑