07 2020 档案

摘要: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 阅读(76) 评论(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 阅读(160) 评论(0) 推荐(0)
摘要:看题解前毫无思路,看完之后怎么这么傻逼一题。自己还是太菜了。 考虑dp[l][r]为l-r区间内合并完剩的最小个数。那么考虑只有两个相邻区间都能合并成一个相同数字的情况,才能对合并结果有影响,要不然两个区间内的个数直接相加即可。 此时还需一个a数组记录l,r合并成的一个数字时的值。 //#pragm 阅读全文
posted @ 2020-07-27 15:39 Ketchum 阅读(143) 评论(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 阅读(93) 评论(0) 推荐(0)
摘要:首先,明显的网络流。那么如何建边,对于每个二次函数在[1,m]里挑n个函数值最小的点, 这样子一共n^2个点,注意还要去重。这n^2个点其实就能使得n个二次函数(a, b, c)完全匹配。 那么流量全部设为1,费用是对应的函数值。超级源点和终点费用为0;但是,跑n次费用流时间不允许,但是你仔细想每次 阅读全文
posted @ 2020-07-27 11:59 Ketchum 阅读(177) 评论(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 阅读(122) 评论(0) 推荐(0)
摘要:考虑朴素思想,每次把一个最大连通图所有的点减去最小值,然后分裂成若干子图继续下去。但是又不好写又容易t, 那么考虑反着来如何在保证正确的情况通过加点的方式来找答案。 首先,最后删的一定都是原先最大的那些点,那么考虑从大到小排序。每次进来一个点,判断他的相邻点是否已经进来,如果有就合并(dsu)。每次 阅读全文
posted @ 2020-07-24 18:16 Ketchum 阅读(183) 评论(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 阅读(206) 评论(0) 推荐(0)
摘要:与此题几乎一样。(https://blog.csdn.net/acdreamers/article/details/23039571) 不过注意,好像出题人赛后加强数据了,在枚举0-k的时候,里面最多只能有一个快速幂,其他的都尽量用变量迭代代替。要不然t飞。 #include<bits/stdc++ 阅读全文
posted @ 2020-07-22 17:07 Ketchum 阅读(197) 评论(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 阅读(124) 评论(0) 推荐(0)
摘要:首先,考虑一辆车能追上另一辆车的前提是前者加速度大于后者并且初始位置小于后者。那么按照加速度从大到小排序,加速度相同则按照初始位置从大到小排序。然后顺序遍历,按照初始位置递增的方式取出若干车子。我们现在保证了后面的车子一定能追上前面的车子,即车b一定能追上车a,而这时候如果进来一辆车c,如果车c追上 阅读全文
posted @ 2020-07-22 13:33 Ketchum 阅读(301) 评论(0) 推荐(0)
摘要:#pragma GCC optimize(2) #include<bits/stdc++.h> //#define int long long using namespace std; const int inf=0x3f3f3f3f; const int N=5010,M=2e5+10; int 阅读全文
posted @ 2020-07-16 15:29 Ketchum 阅读(91) 评论(0) 推荐(0)
摘要:#include<bits/stdc++.h> #define ll long long #define PB push_back #define endl '\n' #define INF 0x3f3f3f3f #define LINF 0x3f3f3f3f3f3f3f3f #define ull 阅读全文
posted @ 2020-07-13 18:21 Ketchum 阅读(100) 评论(0) 推荐(0)
摘要:#include<bits/stdc++.h> #define ll long long #define PB push_back #define endl '\n' #define INF 0x3f3f3f3f #define LINF 0x3f3f3f3f3f3f3f3f #define ull 阅读全文
posted @ 2020-07-13 18:00 Ketchum 阅读(94) 评论(0) 推荐(0)
摘要:题目链接:https://ac.nowcoder.com/acm/contest/5666/H 题意:给你一个n个点m条边的图,q次询问每次给出u和v,每条边的容量都为u/v, 初始流量为1,询问满流时候的最小费用。 首先将每条边的容量设为1跑一遍费用流 。那么对于某次询问容量变为u/v,只要将起始 阅读全文
posted @ 2020-07-13 16:59 Ketchum 阅读(194) 评论(0) 推荐(0)