模拟
文章平均质量分 64
2020linweitong
这个作者很懒,什么都没留下…
展开
-
2020.08.07【NOIP提高组】模拟:回文子序列 总结
2020.08.07【NOIP提高组】模拟:回文子序列 总结Description回文序列是指左右对称的序列。例如1 2 3 2 1是回文序列,但是1 2 3 2 2就不是。我们会给定一个N×MN\times MN×M的矩阵,你需要从这个矩阵中找出一个P×PP\times PP×P的子矩阵,使得这个子矩阵的每一列和每一行都是回文序列。Input第一行有两个正整数N,MN, MN,M。接下来是NNN行,代表一个N×MN\times MN×M的矩阵,矩阵的每个元素都是值不超过3141592631415原创 2020-08-07 14:49:04 · 246 阅读 · 0 评论 -
2020.08.06【NOIP提高组】模拟:刷题计划 总结
2020.08.06【NOIP提高组】模拟:刷题计划 总结DescriptionInputOutputSample Input10000 122 132 999931 132 132 1000032 99993Sample Output19999 19999999910000 99999999 10000Data Constraint总结比赛思路&正解: 暴力模拟,用hashhashhash或者离散化进行判重,时间复杂度为O(m2)O(m原创 2020-08-06 14:22:19 · 257 阅读 · 0 评论 -
WING 题解
第四题:WINGWINGWING解题方法这道题目是标记数组。我们设ai,ja_{i,j}ai,j表示第iii种字符在第jjj个位置的答案。分两种情况:为111我们只要发现这个字符串的某个字符的位置的数组aaa为000,就说明没有出现过,输出−1-1−1。否则就取答案最大的——因为必须满足所有的字符。为000我们看一下这一位是否是的aaa为000,如果为000,就更新。否则不更新。总的时间复杂度为O(nc)O(nc)O(nc)。...原创 2020-07-16 18:28:22 · 98 阅读 · 0 评论 -
二项式展开式 题解
二项式展开式 题解题目在这里。解题方法本题的提示写了:(a+b)n(a+b)^n(a+b)n展开式的第i+1i+1i+1项为an−ibia^{n-i}b^ian−ibi,前面的系数为CniC^{i}_{n}Cni。注:0≤i≤n0\leq{i}\leq{n}0≤i≤n。什么是CniC^{i}_{n}Cni呢?其实就是第i+1i+1i+1行的杨辉三角。杨辉三角如下:其中ai,j=ai−1,j+ai−1,j−1a_{i,j}=a_{i-1,j}+a_{i-1,j-1}ai,j=ai−1原创 2020-07-12 12:41:10 · 763 阅读 · 0 评论 -
奶牛的声音 题解
奶牛的声音解题方法转化此题,可以发现最难求的地方是判断这个声音由多少个奶牛组成。其实是一个背包问题。设fif_ifi表示声音iii由多少个奶牛组成。则fi=minj=1Bfi−Vj+1\begin{aligned}f_i=\min_{j=1}^{B}{f_{i-V_j}+1}\end{aligned}fi=j=1minBfi−Vj+1。其实是一个完全背包。最后只要按题意模拟即可。...原创 2020-07-04 15:42:07 · 287 阅读 · 0 评论 -
懒惰的奶牛[s] 题解
懒惰的奶牛[s][s][s]解题方法这题是菱形的前缀和数组。可以发现将菱形倒转过来后,(i,j)(i,j)(i,j)应该变成(i+j−1,n−i+j)(i+j-1,n-i+j)(i+j−1,n−i+j)。然后就是简单的前缀和了。直接O(n2)O(n^2)O(n2)可以过。类似差分。...原创 2020-07-04 15:41:28 · 243 阅读 · 0 评论 -
懒惰的奶牛[b] 题解
第一题:懒惰的奶牛[b][b][b]解题方法这道题目我们直接用前缀和数组(a)(a)(a)就行了。直接枚举右端点,然后求出左端点。l=r−2k−1l=r-2k-1l=r−2k−1我们首先把kkk赋值为2k+12k+12k+1。然后设qqq表示max(maxi=1nxi,k)\begin{aligned}\max(\max_{i=1}^{n}{x_i},k)\end{aligned}max(i=1maxnxi,k)。那么答案就是用maxi=k+1qai−ai−k−1\begin{al原创 2020-07-04 15:39:11 · 298 阅读 · 0 评论 -
圆圈 题解
圆圈 题解题目在这里。解题方法首先这道题目要求有多少个点在半径为rrr的圆里面。将其转述为,判断一个点(x,y)(x,y)(x,y)是否在半径为rrr的圆里面。怎么判断呢?如下图我们知道点(x,y)(x,y)(x,y)处于绿色线和红色线交错的位置。则红色线的长度是x2+y2\sqrt{x^2+y^2}x2+y2。因为红色线的长度等于黑色线的长度,所以我们只需要判断黑色线的长度是否小于等于圆的半径即可,如果满足,就代表此点在圆中。也就是判断x2+y2≤r2x^2+y^2\leq{r^原创 2020-06-24 22:09:09 · 701 阅读 · 0 评论 -
打牌 题解
打牌 题解题目在这里。解题方法这道题的方法是贪心。我们在第一次出一个最小的牌,然后每一次按规则出牌,当不能出了就出一个最小的。原创 2020-06-07 15:04:12 · 411 阅读 · 0 评论 -
sequence 题解
sequencesequencesequence 题解题目这里。解题方法算法111可以发现答案就是∑i=1n∑j=in∑k=ijakj−i+1>A\begin{aligned}\sum_{i=1}^{n}{\sum_{j=i}^{n}{\frac{\sum_{k=i}^{j}{a_k}}{j-i+1}>A}}\end{aligned}i=1∑nj=i∑nj−i+1∑k=ijak>A。因为除法是乘法的逆运算,所以可将上式转化为∑i=1n∑j=in∑k=ijak>原创 2020-06-06 14:33:26 · 641 阅读 · 0 评论 -
star 题解
starstarstar 题解题目在这里。题目大意有一张图。将大小相同的连通块合并成一个连通块,并求出最多有多少块连通块和最大的连通块有多大。解题方法每一次如果没走过bfsbfsbfs或dfsdfsdfs一次,然后用桶,最后看一下哪个最大即可。代码#include<bits/stdc++.h>#define N 1501#define M 2500001#define K 100001using namespace std;int n,m,a[N][N],bz[N][N原创 2020-05-30 10:15:44 · 348 阅读 · 0 评论 -
save 题解
savesavesave 题解题目在这里。题目大意有nnn个字符串,求每一个字符串包含多少个sossossos,并求出包含最多个数的字符串。解题方法直接模拟,可以先求出最大的次数,再与每个次数进行比较,如果相同,就输出这个。代码#include<bits/stdc++.h>using namespace std;int n,c[101],la[101],lb[101],ans=0;char a[101][201],b[101][201];int main(){ scan原创 2020-05-30 10:13:45 · 319 阅读 · 3 评论 -
kettle 题解
kettlekettlekettle 题解题目在这里。题目大意有一个长度为nnn序列aaa,可以做kkk个操作,每次操作时选择一个i(1≤i≤n−1)i(1\leq i\leq n-1)i(1≤i≤n−1),将第i+1i+1i+1个数加上第iii个数,并将第iii个数清000。解题方法这道题的解题方法是贪心。其实我们可以发现每一次选择一段进行操作就行了,也就是求maxi=k+1n∑j=i−kiaj\begin{aligned}\max_{i=k+1}^{n}{\sum_{j=i-k}^{i}{原创 2020-05-30 10:11:56 · 1537 阅读 · 0 评论 -
read 题解
读书 题解题目解题方法这道题目的解题方法是直接模拟。题目要求出mini=1n∑j=1i86400−aj≥t\begin{aligned}\min_{i=1}^n{\sum_{j=1}^{i}{86400-a_j}\geq t}\end{aligned}i=1minnj=1∑i86400−aj≥t。我们直接每一次减去86400−aj86400-a_j86400−aj就行了。或者可以设sis_isi表示∑j=1i86400−aj\begin{aligned}\sum_{j=1}^{i原创 2020-05-23 14:46:26 · 441 阅读 · 0 评论 -
house 题解
househousehouse 题解题目解题方法我们可以发现第iii和第jjj的的房子的距离是li+lj+∣pi−pj∣l_i+l_j+|p_i-p_j|li+lj+∣pi−pj∣。对于上面有绝对值的式子,我们可以先把lll排序,就可以把绝对值去掉,得li+lj+pi−pjl_i+l_j+p_i-p_jli+lj+pi−pj。我们可以把下标为iii合并,下标为jjj的合并,得li+pi+(lj−pj)l_i+p_i+(l_j-p_j)li+pi+(lj−pj)。那么就原创 2020-05-16 15:19:03 · 370 阅读 · 0 评论 -
mobitel 题解
mobitelmobitelmobitel 题解题目解题方法这道题直接暴力。没啥可讲。原创 2020-05-16 15:14:14 · 198 阅读 · 0 评论 -
sequence 题解
sequencesequencesequence 题解这道题的解题方法是数学。我们其实可以找规律(当然如果你学过就不用找了),发现gcd(fi,fj)=fgcd(i,j)gcd(f_i,f_j)=f_{gcd(i,j)}gcd(fi,fj)=fgcd(i,j),那么就可以直接预处理出任意两项的最大公约数,然后直接输出就行了,时间复杂度为O(n2logn2+q)O(n^2\log_{n}^{2}+q)O(n2logn2+q)。还可以在循环里面求最大公约数,时间复杂度为O(∑logmin(u原创 2020-05-16 11:52:00 · 399 阅读 · 0 评论 -
fly 题解
flyflyfly 题解这道题目的解题方法是搜索。我们直接每一次枚举1−m1-m1−m的所有整数,判断一下和是否大于nnn如果不大于,就继续搜索。如果已经枚举了nnn项,那么就输出方案,任一方案都可行。...原创 2020-05-16 11:52:06 · 365 阅读 · 0 评论 -
matrix 题解
matrixmatrixmatrix 题解这道题的解题方法是标记+++暴力。对于606060分的方法我们直接按题意暴力求解就行了。时间复杂度为O(q×max(n,m))O(q\times\max(n,m))O(q×max(n,m))。对于满分的方法我们可以用gig_igi表示第iii行此时变成了第几行,hih_ihi表示第iii列此时变成了第几列。初始化gi=ig_i=igi=i,hi=ih_i=ihi=i。操作111直接将glg_lgl和grg_rgr交换。操作222直原创 2020-05-16 11:52:20 · 786 阅读 · 0 评论 -
number 题解
numbernumbernumber题解这道题目的解题思路是循环+++桶。我们设fif_ifi表示数字iii出现的次数,每一次读入一个字符xxx,我们就将fx−′0′f_{x-'0'}fx−′0′加上111,最后输出f0f_0f0到f9f_9f9的值就行了。...原创 2020-05-16 11:52:26 · 237 阅读 · 0 评论 -
Jam的计数法 题解
JamJamJam的计数法 题解题目题目描述Jam是个喜欢标新立异的科学怪人。他不使用阿拉伯数字计数,而是使用小写英文字母计数,他觉得这样做,会使世界更加丰富多彩。在他的计数法中,每个数字的位数都是相同的(使用相同个数的字母),英文字母按原先的顺序,排在前面的字母小于排在它后面的字母。我们把这样的“数字”称为Jam数字。在Jam数字中,每个字母互不相同,而且从左到右是严格递增的。每次,Ja...原创 2020-05-04 09:30:28 · 503 阅读 · 0 评论 -
数列 题解
数列 题解题目题目描述给定一个正整数k(3≤k≤15),把所有k的方幂及所有有限个互不相等的k的方幂之和构成一个递增的序列,例如,当k=3时,这个序列是: 1,3,4,9,10,12,13,…(该序列实际上就是:3^0,3^1,3^0+3^1,3^2,3^0+3^2,3^1+3^2,3^0+3^1+3^2,…)请你求出这个序列的第N项的值(用10进制数表示)。例如,对于k=3,N=1...原创 2020-05-04 09:29:07 · 887 阅读 · 0 评论 -
笨小猴 题解
笨小猴 题解题目题目描述笨小猴的词汇量很小,所以每次做英语选择题的时候都很头疼。但是他找到了一种方法,经试验证明,用这种方法去选择选项的时候选对的几率非常大!这种方法的具体描述如下:假设maxn是单词中出现次数最多的字母的出现次数,minn是单词中出现次数最少的字母的出现次数,如果maxn-minn是一个质数,那么笨小猴就认为这是个Lucky Word,这样的单词很可能就是正确的答案。...原创 2020-05-04 09:27:53 · 1297 阅读 · 0 评论 -
Back and Forth 题解
BackBackBack andandand ForthForthForth 题解题目题目描述Farmer John有两个挤奶棚,每个挤奶棚里各有一个奶罐和一个装有10个各种尺寸的桶的储物柜。他喜欢将在两个挤奶棚之间来回运送牛奶作为一种锻炼方式。周一,Farmer John量了恰好1000加仑的牛奶放在第一个挤奶棚的奶罐里,又量了恰好1000加仑的牛奶放在第二个挤奶棚的奶罐里。周二,他从...原创 2020-04-18 12:20:19 · 889 阅读 · 0 评论 -
The Bucket List 题解
TheTheThe BucketBucketBucket ListListList 题解题目题目描述Farmer John正在考虑改变他给奶牛挤奶的时候分配牛奶桶的方式。他认为这最终能使得他使用数量更少的桶,然而他不清楚具体是多少。请帮助他!Farmer John有N头奶牛(1≤N≤100),方便起见编号为1…N。第i头奶牛需要从时间si到时间ti之间挤奶,并且挤奶过程中需要用到bi个桶。...原创 2020-04-18 12:19:04 · 2345 阅读 · 1 评论 -
Mixing Milk 题解
MixingMixingMixing MilkMilkMilk 题解题目题目描述农业,尤其是生产牛奶,是一个竞争激烈的行业。Farmer John发现如果他不在牛奶生产工艺上有所创新,他的乳制品生意可能就会受到重创!幸运的是,Farmer John想出了一个好主意。他的三头获奖的乳牛,Bessie、Elsie和Mildred,各自产奶的口味有些许不同,他打算混合这三种牛奶调制出完美的口味。...原创 2020-04-18 12:17:15 · 841 阅读 · 0 评论