cf搬题

rand 题基本上是CD吧,AB不想做,E太难了233~

+ 看别人代码 - 自己写的 * 看题解的

315D +

给定两个string a b,以及他们出现的次数c,d 求找到一个最大p,使得整个b串为a的子串。

我们对于b的每一位都找到a串的结束的位置nxt数组,然后如果匹配了,把b串的cnt++,最后统计答案,就是根据nxt的跳跃统计cnt就可以了,

254C +

给定两个串,求改变a串最少的顺序,使得a中的每一个字符出现的次数等同于b出现的次数,并输出字典序最小的方案。

- naive的做法:我们用两个指针分别从后向前扫一遍,更新比他大或者比他小的

错误原因:由于是字典序最小,第一个字母小比什么都好。

+ 机智的做法,从前往后扫,如果比他小,那么就填上,否则如果后面没有这个字符了,那么就必须填上

152C -

(怎么rand都是string啊、、)

给定n个串,你可以交换每一个串对应的位置,求出现不同方案的数量mod1e9+7

对于每一位,统计一下不同的字符出现了多少次,乘一下就好了。

时间: 2024-12-13 13:16:35

cf搬题的相关文章

【CF刷题】14-05-12

Round 236 div.1 A:只需要每个点连接所有比他大的点,知道边用完为止. //By BLADEVIL #include <cmath> #include <cstdio> #define maxn 25; using namespace std; int main() { int task; scanf("%d",&task); while (task--) { int n,p; scanf("%d%d",&n,&

一道cf水题再加两道紫薯题的感悟

1. 遇到一个很大的数除以另一个数时,可以尝试把这个很大的数进行,素数因子分解. 2. 遇到多个数的乘积与另一个数的除法时,求是否能整除,可以先求每一个数与分母的最大公约数,最后若分母数字为1,则证明可整除.或者把分子上的每个数进行素数因子分解,分母上的数也进行素数因子分解,若分子上的与分母上相同素数因子进行比较,分子上的素数因子指数大于分母位置上的,则证明可整除. 3. 遇到乘法的时候注意越界问题. 4. 遇到求某一个区间内,满足某一特征的数的个数,而这个特征与因子,约数有关,尝试用埃筛的方法

多校+CF简单题

A - The Unsolvable Problem Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u Submit Status Description There are many unsolvable problem in the world.It could be about one or about zero.But this time it is about bigger numb

某5道CF水题

1.PolandBall and Hypothesis 题面在这里! 大意就是让你找一个m使得n*m+1是一个合数. 首先对于1和2可以特判,是1输出3,是2输出4. 然后对于其他所有的n,我们都可以非常快的找到一个最小的与它互质的质数p(考虑反证法),并且满足p<n. 这样就相当与解一个同余方程 n*m = p-1 (mod p) , 解出的m可以保证 n*m+1 是 p 的倍数,也就是合数了. 又因为gcd(p,n)==1,所以这个方程肯定有解,直接求一个 n 在mod p意义下的逆元然后乘

CF补题

  过题数/总题数 A B C D E F G H Educational Codeforces Round 64 (Rated for Div. 2) 1/7 AC WA           ** Codeforces Round #556 (Div. 2) 3/5 AC AC AC     ** ** ** Codeforces Round #550 (Div. 3)  3/7 AC AC AC         ** Codeforces Round #547 (Div. 3) 5/8 AC

bzoj搬题

只讲解题方法,不讲题目题意 代码风格为个人喜好,请体谅 bzoj 1879 状态压缩dp - 设g[i][j]表示匹配到i位该位字符选j的集合 设f[i][j]为匹配打i位,集合位j的方案数 枚举每一位的字符得出g[i][j] f[i][j]->f[i+1][j&g[i][ch]] 答案即为 sigma{f[len][set(popcount1==k)]} 复杂度为 o(set*n*len)=o(2^15*15*50) #include<bits/stdc++.h> using

几道cf水题

题意:给你包含n个元素的数组和k种元素,要求k种元素要用完,并且每种颜色至少用一次,n个元素,如果某几个元素的值相同,这些个元素也不能染成同一种元素. 思路:如果元素个数n小于k或者值相同的元素的个数大于k,那么一定无解,输出-1.用一个num[a[i]]记录每种相同值的元素出现次数,若大于k,无解.这道题的关键在于如何处理值相同的这些元素,可以用一个二维数组f[i][j]来表示状态,其中i表示对应元素值,j代表颜色.只要对于相同的i,j值不同就可以了.每个元素用什么颜色记录在一个数组ans[i

一道cf水题

题意:输入数字n表示字符串中元素个数,字符串中只含有RGB三个字符,现在要求任意两个相同的字符他们的下标之差能整除3. 思路:任意两个相同的字符的下标能整除3,也就是任意三个为一组的字符串当中的字符不能相同,那么只要某一组字符确定了,那么字符串中所有字符也就确定了,我们不妨来枚举前三个字符可能的排列,只要第一组确定了,后面也就全部确定了(当时自己去字符串里面找第一个不重复的三个字符组不就是这个意思么).接下来第一组确定后,由于后面所有的字符都和它相同,所以我们只需要遍历一遍统计后面与他不对应的字

E. Magic Stones CF 思维题

E. Magic Stones time limit per test 1 second memory limit per test 256 megabytes input standard input output standard output Grigory has nn magic stones, conveniently numbered from 11 to nn . The charge of the ii -th stone is equal to cici . Sometime