Codeforces 931F - Teodor is not a liar!】的更多相关文章

931F - Teodor is not a liar! 思路: 最长上升子序列 先差分数组染色 如果存在一个点,被所有区间包含,那么这张图一定是山峰状,如下图: 那么只要分别从前和从后找一个最长非严格上升子序列,然后从前往后更新就可以找出最大的山峰序列的长度,这个就是答案 代码: #include<bits/stdc++.h> using namespace std; #define ll long long #define pb push_back #define mem(a,b) mem…
F. Teodor is not a liar! time limit per test 1 second memory limit per test 256 megabytes input standard input output standard output Young Teodor enjoys drawing. His favourite hobby is drawing segments with integer borders inside his huge [1;m] segm…
E. Liar     The first semester ended. You know, after the end of the first semester the holidays begin. On holidays Noora decided to return to Vičkopolis. As a modest souvenir for Leha, she brought a sausage of length m from Pavlopolis. Everyone know…
题意:给你两个串s,p,问你把s分开顺序不变,能不能用最多k段合成p. 题解:dp[i][j]表示s到了前i项,用了j段的最多能合成p的前缀是哪里,那么转移就是两种,\(dp[i+1][j]=dp[i][j],dp[i+lcp][j+1]=dp[i][j]+lcp\),这里的lcp是dp[i][j]和i的lcp,然后sa预处理一下st表就行了 //#pragma GCC optimize(2) //#pragma GCC optimize(3) //#pragma GCC optimize(4)…
A. Friends Meeting time limit per test 1 second memory limit per test 256 megabytes input standard input output standard output Two friends are on the coordinate axis Ox in points with integer coordinates. One of them is in the point x1 = a, another…
因为太迟了,所以没去打. 后面打了Virtual Contest,没想到拿了个rank 3,如果E题更快还能再高,也是没什么想法. [A]Friends Meeting 题意: 在数轴上有两个整点\(x_1=a,x_2=b\),要取一个整点\(x_3=c\)使得\(1+2+\cdots+|c-a|+1+2+\cdots+|c-b|\)最小. 题解: 取中点即可. #include<bits/stdc++.h> using namespace std; int a,b; int main(){…
A Friends Meeting 题意:有两个人在数轴上的不同位置,现在他们需要到一个位置碰面.每次每人只能向左或向右走1个单位,轮流进行.每个人第一次走时疲劳度+1,第二次走时疲劳度+2,以此类推.问两个人碰面时总的疲劳度最小为多少? 思路:碰面位置为(a+b)/2. #include<iostream> #include<cstdio> #include<cmath> using namespace std; int main() { int a,b; scanf…
Liar 刚开始感觉只要开个dp[ i ][ j ][ 0 / 1 ]表示处理了s的前 i 个用了 k 段, i 是否是最后一段的最后一个字符 的 t串最长匹配长度, 然后wa24, 就gg了.感觉这个转移感觉很对, 但是实际上不对... 比如s = ababcde, t = abcde, x = 1, 转移会出现问题. 我们可以用dp[ i ][ j ]表示处理了 s 串的前 i 个, 用了 j 段的最大匹配长度, 我们转移的时候时候肯定是在后面接lcp, 套个sa就好啦. #include<…
大意: 给定串$s,t$, 给定整数$x$, 求判断$t$是否能划分为至多$x$段, 使这些段在$s$中按顺序,不交叉的出现. 设$dp_{i,j}$表示$s$匹配到$i$位, 划分了$j$段, 匹配到$t$中的最大位置 每次取一个极长的lcp转移即可, lcp可以二分哈希或者用后缀数组+RMQ求 #include <iostream> #include <sstream> #include <algorithm> #include <cstdio> #in…
上一次我们拿学校的URP做了个小小的demo.... 其实我们还可以把每个学生的证件照爬下来做成一个证件照校花校草评比 另外也可以写一个物理实验自动选课... 但是出于多种原因,,还是绕开这些敏感话题.. 今天,我们来扒一下cf的题面! PS:本代码不是我原创 1. 必要的分析 1.1 页面的获取 一般情况CF的每一个 contest 是这样的: 对应的URL是:http://codeforces.com/contest/xxx 还有一个Complete problemset页面,它是这样的:…