摘要:
【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 添加两个y坐标0和h 然后从这n+2个y坐标中任选两个坐标,作为矩形的上下界。 然后看看哪些点在这个上下界中。 定义为坐标集合S S中的点的相邻x坐标差和上下界的差的较小值是这个矩形能够构成的最大正方形。 枚举所有情况就好。 【 阅读全文
摘要:
【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 用单调队列求出l[i]和r[i] 分别表示i的左边最近的大于a[i]的数的位置以及i右边最近的大于a[i]的数的位置。 则l[i]+1..r[i] 1就是a[i]这个数作为最小数的最大管辖区间了。 写个前缀和就好。 然后取a[i 阅读全文
摘要:
【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 尺取法。 考虑一个1..i的窗口。 里面在到达了i位置的时候恰好有1..k这些数字了。 为了更接近答案。 显然可以试着让左端点变成2.(如果还能有1..k这些数字的话。 所以有1..k这些数字之后。就让左端点尽可能往右。 然后尝 阅读全文
摘要:
【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 枚举N[q]和N[r]的位置 因为N[q]是最大值,且N[r]是最小值。 且它们是中间的两个。 枚举这两个可以做到不重复枚举。 然后假设我们枚举了q和r的位置分别为i和j (a[i] a[j] 那么我们接下来需要得到两个东西。 阅读全文
摘要:
【链接】 "我是链接,点我呀:)" 【题意】 让你在树上找一个序列。 这个序列中a[1]=R 然后a[2],a[3]..a[d]它们满足a[2]是a[1]的祖先,a[3]是a[2]的祖先。。。 且w[a[1]] 【题解】 考虑一个naive的思路。 定义一个next[i]数组,表示i往上最近的权值大 阅读全文
摘要:
【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 p[i] = p[p[i]]一直进行下去 在1..n的排列下肯定会回到原位置的。 即最后会形成若干个环。 g[i]显然等于那个环的大小。 即让你形成若干个环。 每个环的大小只能为A或B 则相当于问A x+B y=n是否有解。 可 阅读全文
摘要:
【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 写个记忆化搜索。 接近O(n)的复杂度吧 【代码】 cpp include using namespace std; const int N = 1e6; int g[N+10]; int pre[N+10][20]; int 阅读全文
【ICM Technex 2018 and Codeforces Round #463 (Div. 1 + Div. 2, combined) A】 Palindromic Supersequence
摘要:
【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 字符串倒着加到原串右边就好 【代码】 cpp include using namespace std; int main(){ ifdef LOCAL_DEFINE freopen("rush_in.txt", "r", std 阅读全文
摘要:
【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 设$设f(x)=a_d x^{d}+a_{d 1} x^{d 1}+...+a_1 x+a_0$ 用它去除x+k 用多项式除法除一下就好。 会发现余数等于 $∑_0^{d}( k)^{i} a_i$ 这是一个十进制数转成负k进制 阅读全文
摘要:
【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 ans初值值为a[1..n]中1的个数。 接下来考虑以2为结尾的最长上升子序列的个数。 枚举中间点i. 计算1..i 1中1的个数cnt1。 计算i..n中2的个数cnt2。 ans = max(ans,cnt1+cnt2) 写 阅读全文