随笔分类 - 算法竞赛-Codeforces
摘要:题意:给你两个串,第一个串里面的字母都是good 字母, 第二个串是模式串,里面除了字母还有?和*(只有一个) ?可以替换所有good字母, *可以替换所有坏字母和空格(可以是多个坏字母!!!这点卡了我很久,也不举一个样例。。。) 然后q次询问,每次给你一个串,问你能否匹配成功,yes or no
阅读全文
摘要:#include<stdio.h>#include<iostream>#include<algorithm>#include<string.h>#include<stdlib.h>#define LL long long using namespace std; //就是给你一个字符串长度,然后要求
阅读全文
摘要:题目大意:如果一个数能被组成他的各个数整除,就成这个数为美丽数字,为l~r之间有多少个美丽数字。 题目思路:S为一个数的每位数字的集合,如果一个数字能整除每位数字上的数,那么这个数字一定能整除LCM(S),S的最大值为LCM(1,2,3,4,5,6,7,8,9)=2520。 所以对于所有美丽数字n有
阅读全文
摘要:题目大意:在num[i][j]==0处填一个数使每行,每列,对角线的和相同,若果有多种答案输出一种。 题目思路:模拟 #include<iostream> #include<algorithm> #include<cstring> #include<vector> #include<stdio.h>
阅读全文
摘要:1 奇数阶幻方构造法 (1) 将1放在第一行中间一列; (2) 从2开始直到n×n止各数依次按下列规则存放:按 45°方向行走,向右上,即每一个数存放的行比前一个数的行数减1,列数加1 (3) 如果行列范围超出矩阵范围,则回绕。例如1在第1行,则2应放在最下一行,列数同样加1; (4) 如果按上面规
阅读全文
摘要:题目大意:给出两个数组,求第一个数组区间内的最大值和第二个区间内的最小值相同的区间有多少种。 题目思路:通过预处理(O(n*Logn))后,每次查询的时间复杂度为O(1),但是如果暴力查询O(n*n)依然会超时,因为最大值,最小值单调性的原因,通过二分来优化查询过程。 首先是预处理,用动态规划(DP
阅读全文
摘要:题目大意:有四个小偷,第一个小偷偷a个巧克力,后面几个小偷依次偷a*k,a*k*k,a*k*k*k个巧克力,现在知道小偷有n中偷法,求在这n种偷法中偷得最多的小偷的所偷的最小值。 题目思路:二分查找偷得最多的小偷所偷的数目,并遍历k获取该数目下的方案数。脑子一抽将最右端初始化做了1e15,wa了n多
阅读全文
摘要:题目大意:给出一个电话号,按出这个电话号需要一定的手指移动,问该种手指移动的方法是否能按出其他电话号,是的话输出NO,否则输出YES。 题目思路:模拟 #include<iostream> #include<algorithm> #include<cstring> #include<vector>
阅读全文
摘要:题目大意:托尔有一部手机可执行三种操作 1.x APP产生一个新消息 2.读取x App已产生的所有消息 3.读取前t个产生的消息 问每次操作后未读取的消息的数量 题目思路: 队列模拟,坑点在于竟然卡内存……详细看代码。 #include<iostream> #include<algorithm>
阅读全文
摘要:题目大意:有n个城市,k个省会,每个城市有一个魅力值,两个城市之间的连线的价值等于两个城市魅力值的乘积。省会城市和每个城市相连,城市i和城市i+1相连,城市n与城市1相连。求所有连线的和。 题目思路:v[k]*v[1]+v[k]*v[2]+……v[k]*v[n]=v[k]*(v[1]+v[2]+……
阅读全文
摘要:题目大意:有一排蟑螂,只有r和b两种颜色,你可以交换任意两只蟑螂的位置,或涂改一个蟑螂的颜色,使其变成r和b交互排列的形式。问做少的操作次数。 题目思路:更改后的队列只有两种形式:长度为n以r开头;长度为n以b开头。与初始串进行比较并统计改变次数记作ans,算出必须进行的涂色操作的次数step,我们
阅读全文
摘要:走过n-1个点,为了使路程更短,那么不走的点只可能第一个点或最后一个点。模拟就行了,比较恶心。
阅读全文
摘要:题目大意:月亮从0到15,15下面是0、循环往复。给出n个数字,如果下一个数字大于第n个数字输出UP,小于输出DOWN,无法确定输出-1. 题目思路:给出0则一定是UP,给出15一定是DOWN,给出其他的一个数字(n==1)无法确定,其他的情况比较后两位。 1 #include<iostream>
阅读全文
摘要:对当前点进行搜索,如果发现可以达到某个已经被查找过的点,且当前点不是由这个点而来,则查找成功。
阅读全文
摘要:分别从四个角向对角打dp表,然后遍历各个点认为该点为相遇的房间,依据该点求四个dp式的和,并找出最大值
阅读全文