BUPT 2022 Summer Training #6
作者:互联网
题目链接:https://vjudge.net/contest/504104
D - It's a Mod, Mod, Mod, Mod World
是以前都没听说过的类欧几里得算法,呜
G - Intersecting Rectangles
题意
给定n个矩形,判断是否存在两个矩形相交,即边框有交点,保证所有的横坐标互不相同,所有纵坐标互不相同。
主席树做法
把每个矩形拆成四条线段,然后把横向线段的横坐标作为数组下标,纵坐标作为线段树下标存到主席树里,然后枚举纵向线段,查询主席树看是否有相交的横向线段。由于保证所有的横坐标互不相同,所有纵坐标互不相同,可以不判定线段的两端,这样就不需要担心同一个矩形拆出的横向线段和纵向线段会判定为相交了。
线段树扫描线做法
选取矩形的左右边或上下边做扫描线,扫描到下边时在线段两段两个点打标记,扫描到上边时删去,如果加入一条线段前这一区间内有标记,则说明相交,坐标互不相同保证了这样做是对的。
J - Subsequences in Substrings
题意
给定a,b两个字符串(b的长度≤100),求b是a的多少个子串的子序列。
思路
设dp[i][j]为以a[i]为结尾的与b[1~j]相同的子序列的最大起始位置,则每个位置贡献的答案为dp[i][len(b)],dp第一维可省略。
标签:Summer,Training,相同,线段,BUPT,互不,矩形,dp,Mod 来源: https://www.cnblogs.com/teralem/p/16488190.html