摘要: 给个多边形 计算面积 输出要四舍五入 直接用向量叉乘就好 四舍五入可以+0.5向下取整 阅读全文
posted @ 2017-12-07 16:08 MSPqwq 阅读(166) 评论(0) 推荐(0) 编辑
摘要: 求两直线交点 阅读全文
posted @ 2017-12-07 15:34 MSPqwq 阅读(193) 评论(0) 推荐(0) 编辑
摘要: 题目: 给个n个点的多边形,n个点按顺序给出,给个点m,判断m在不在多边形内部 题解: 网上有两种方法,这里写一种:射线法 大体的思想是:以这个点为端点,做一条平行与x轴的射线(代码中射线指向x轴正方向) 如果交点个数为奇数的话就在内部,如果为偶数(包括0)就在外部 阅读全文
posted @ 2017-12-06 18:36 MSPqwq 阅读(260) 评论(0) 推荐(0) 编辑
摘要: 原题链接 //中文题好感动啊!!! 题解: 比较裸的AC自动机吧,对所有模式串建个AC自动机之后 用网站源码在上面跑匹配. 注意AC自动机建的时候字符集是26就好,遇到源码中别的字符直接回到Root 每个结尾节点记个CNT,我也不知道不记会不会跪 还有!注意这是个多组数据 阅读全文
posted @ 2017-12-05 20:32 MSPqwq 阅读(131) 评论(0) 推荐(0) 编辑
摘要: 题目: 给一个字母矩阵和几个模式串,矩阵中的字符串可以有8个方向 输出每个模式串开头在矩阵中出现的坐标和这个串的方向 题解: 我们可以把模式串搞成AC自动机,然后枚举矩阵最外围一层的每个字母,向八个方向进行匹配 代码中danger标记为判断这个节点是不是一个模式串的结尾, 这道题可以直接字符串反向构 阅读全文
posted @ 2017-12-05 19:21 MSPqwq 阅读(169) 评论(0) 推荐(0) 编辑
摘要: 挖坑 阅读全文
posted @ 2017-12-04 19:22 MSPqwq 阅读(101) 评论(0) 推荐(0) 编辑
摘要: 题目: 给定 n 个长度不超过 10 的数字串,问其中是否存在两个数字串 S, T ,使得 S 是 T 的前缀。多组数据,数据组数不超过 40. 题解: 前缀问题一般都用Trie树解决: 所以跑一个Tire树,记录一下每个节点是不是结尾就好 阅读全文
posted @ 2017-12-04 15:04 MSPqwq 阅读(193) 评论(0) 推荐(0) 编辑
摘要: 给一个字符串,求最长回文字串有多长 阅读全文
posted @ 2017-12-04 14:26 MSPqwq 阅读(134) 评论(0) 推荐(0) 编辑
摘要: 题目: 给个n*n的带正权矩阵,k次从(1,1)走到(n,n),每个格子的权值只能获得一次,每次只能向右或下走 问获得最大权值 题解: 求最大权值可以把权值变成负的求最小 然后考虑怎么约束每个格子的权值, 把格子拆成两个点,连两条边:一条容量为1,花费为-权值,一条容量为INF,花费为0 S到第一个 阅读全文
posted @ 2017-12-02 15:48 MSPqwq 阅读(122) 评论(0) 推荐(0) 编辑
摘要: 给个地图有人和房子 保证人==房子,每个人移动到房子处需要花费曼哈顿距离的代价 问让人都住在房子里最小代价 显然是个带权二分图最大匹配 转化成以一个网络,规定w是容量,c是代价 1.S向人连边,w=1,c=0 2.房子向T连边,w=1,c=0 3.人向房子连边 w=1,c=距离 阅读全文
posted @ 2017-12-02 13:28 MSPqwq 阅读(135) 评论(0) 推荐(0) 编辑
摘要: 题目: 给一个有向带权图,问从0到n-1存不存在两条路径保证不存在公共点 若存在输出最小权值和 题解: 先把点编号都++ S向1连权值为0,容量为2,n向T连权值为0,容量为2的点 原始图中每条边(u,v)从u向v连权值为边权,容量为1的点 如果最大流为2就输出最小费用 否则不存在 阅读全文
posted @ 2017-12-02 12:16 MSPqwq 阅读(364) 评论(0) 推荐(0) 编辑
摘要: 题目: 给n个订单和m个车间,每个车间对于每个订单有一个处理时间,一个车间只能同时且完全处理一个车间 问最小平均时间 题解: 考虑把车间拆点,对于每个时间的车间拆开,这样对于第i个订单来说,他在第j个车间被倒数第k个处理就要花费k*z[i][j]的时间 建图: 1.S向每个任务连w=1,c=0边 2 阅读全文
posted @ 2017-12-02 11:04 MSPqwq 阅读(128) 评论(0) 推荐(0) 编辑
摘要: #include #include #include #include #define N 200100 #define INF 100000000 using namespace std; int ecnt=1,vis[N],dist[N],n,m,S,T,ans,head[N]; deque q; struct adj { int nxt,v,w,c; }e[N]; inline ... 阅读全文
posted @ 2017-12-01 20:20 MSPqwq 阅读(138) 评论(0) 推荐(0) 编辑
摘要: 一个点带权的图,有一些指向关系,删掉一个点他指向的点也不能留下,问子图最大权值 题解: 这是最大权闭合团问题 闭合团:集合内所有点出边指向的点都在集合内 构图方法 1.S到权值为正的点,容量为权值 2.权值为负的点到T,容量为权值绝对值 3.原图所有点容量为INF 4.正权值和-最小割=最大权值 5 阅读全文
posted @ 2017-12-01 18:00 MSPqwq 阅读(248) 评论(0) 推荐(0) 编辑
摘要: 题面: 有两个集合,现在又n个点,第i个点在A集合花费Ai代价,在B集合花费Bi代价 然后又m个限制,每个限制是a,b,c,说a和b如果不在一个集合就会多花费c代价。 现在要让每个点属于一个集合,求最小代价 题解: 相当于把n个点划分为两个集合,我们设A为源点S,B为汇点T,对于每个点向S和T连权值 阅读全文
posted @ 2017-12-01 14:41 MSPqwq 阅读(131) 评论(0) 推荐(0) 编辑
摘要: 将牛拆为两个点. 原点向食物连边,食物向牛1连边,牛1向牛2连边,牛2向饮料连边,跑最大流即可 阅读全文
posted @ 2017-12-01 11:01 MSPqwq 阅读(105) 评论(0) 推荐(0) 编辑
摘要: 1 #include 2 #include 3 #include 4 #include 5 #include 6 #define N 400 7 using namespace std; 8 int t,n,m,dis[N][N],vis[N],dx[5]={1,0,-1,0}; 9 int dy[5]={0,1,0,-1}; 10 int d_cnt,an... 阅读全文
posted @ 2017-11-30 20:28 MSPqwq 阅读(129) 评论(0) 推荐(0) 编辑
摘要: 参考了这个PDF 第一道网络流啊!感动 阅读全文
posted @ 2017-11-30 16:55 MSPqwq 阅读(114) 评论(0) 推荐(0) 编辑
摘要: emmmmm 让你敲个匈牙利 阅读全文
posted @ 2017-11-30 14:43 MSPqwq 阅读(130) 评论(0) 推荐(0) 编辑
摘要: #include #include #include #include #define N 250 #define M 250 #define INF 100000000 using namespace std; int head[N],cur[N],lev[N],ecnt=1,S,T,n,m; queue q; struct adj { int nxt,v,w; }e[2*M]; v... 阅读全文
posted @ 2017-11-29 20:07 MSPqwq 阅读(114) 评论(0) 推荐(0) 编辑