AcWing每日一题
文章平均质量分 50
。。。
Froshine
加油!
展开
-
AcWing 每日一题 3800. 奇数还是偶数(CF1110A)
原题链接数据范围1≤T≤10,2≤b≤100,1≤k≤105,0≤ai<b,同一测试点内所有 k 的和不超过 105。输入样例:413 33 2 710 91 2 3 4 5 6 7 8 999 532 92 85 74 42 21 0输出样例:evenoddoddeven分类讨论就好,首先如果b(b进制)是偶数的话,我们只需要根据最后一位的奇偶性来判断就好如果b是奇数的话,奇数加奇数等于偶数我们去找那些该位不为偶数(a[i]不为偶数)的个数即可,也原创 2021-08-13 18:55:57 · 90 阅读 · 0 评论 -
AcWing 每日一题 3799. 送糖果 ( CF811A )
原题链接数据范围1≤T≤10,1≤a,b≤109输入样例:21 17 6输出样例:ValeraVladik注意,每个人都只能送给对方自己事先准备的糖果。自己收到的糖果不得再送还给对方。只能送自己的糖果,那么就是两个等差数列了一个送k次要n*n个,一个送k次要( n + 1 ) * ( n + 1 )个枚举次数下就好#include<cstdio>#include<cstring>#include<algorithm>#includ原创 2021-08-13 18:50:22 · 70 阅读 · 0 评论 -
AcWing 每日一题 3798. 幸运年份( CF808A )
原题链接数据范围1≤T≤100,1≤n≤109。输入样例1:342014000输出样例1:1991000由于不为0的数不超过1,也就是要么只有一个,要么没有,为0只有一个的话显然就是最高位了,在原来的数最高位上加一减去原来的数就好了AC代码:#include<cstdio>#include<cstring>#include<algorithm>#include<iostream>#include<map>原创 2021-08-13 18:44:53 · 88 阅读 · 0 评论 -
AcWing 每日一题 3794. 构造字符串( CF805B )
原题链接数据范围1≤n≤2×105。输入样例1:2输出样例1:aa输入样例2:3输出样例2:bba这道题其实挺好玩的,题目中是字符串不出现长度为3的回文串,长度为1,长度为2等等等都是可以的那么我们就会发现,只要aabbaabb的循环就好了这样回文串长度不可能为3AC代码:#include<cstdio>#include<cstring>#include<algorithm>#include<iostream>#incl原创 2021-08-13 18:41:30 · 82 阅读 · 0 评论 -
AcWing 每日一题 3784. 交换相邻元素( CF920C )
原题链接数据范围2≤n≤2×105,1≤ai≤n,ai 两两不同。输入样例1:61 2 5 3 4 601110输出样例1:YES输入样例2:61 2 5 3 4 601010输出样例2:NO首先我们可以知道,在连续的1的区间内,肯定是可以通过交换使其变得升序的所以我们只需要找出所有的连续的1区间,把区间内的数排序即可最后判断下整个数组是否升序AC代码:#include<bits/stdc++.h>#define ll long long usin原创 2021-08-08 10:01:26 · 107 阅读 · 0 评论 -
AcWing 每日一题 3773. 兔子跳(O(n),贪心)
原题链接数据范围1≤T≤1000,1≤n≤105,1≤x≤109,1≤ai≤109,ai 各不相同。保证同一测试点内所有 n 的和不超过 105。输入样例:42 41 33 123 4 51 552 1015 4输出样例:2312首先要注意的一个点是,兔子可以跳到非整数点上,而且不是一定要在x轴上跳。所以我们可以通过两次长的跳跃来达到在x轴上的短距离跳跃效果maxx是最大的跳跃距离当maxx>=x,我们找出有没有与x相等的跳跃距离,有的话跳一下就好原创 2021-07-21 09:24:17 · 175 阅读 · 0 评论 -
AcWing 每日一题 3763. 数字矩阵
原题链接数据范围1≤T≤100,2≤n,m≤10,−100≤aij≤100输入样例:22 2-1 11 13 40 -1 -2 -3-1 -2 -3 -4-2 -3 -4 -5输出样例:230首先我们能知道,题目中虽然说的是相邻两个数同时变号,但是可以通过不断的传递,使不相邻的两个数同时变号题目中的相邻也就变成了任意所以我们只需要记录下矩阵中所有数的绝对值之和、绝对值最小值、负数个数。如果有奇数个负数,说明必须留下一个数是负数,我们留最小的那个,由于所有数绝对值之原创 2021-07-19 10:16:50 · 113 阅读 · 0 评论 -
AcWing 每日一题 3775. 数组补全(CF1283C )
原题链接数据范围1≤T≤100,2≤n≤2×105,0≤fi≤n,至少两个 fi 为 0。同一测试点内所有 n 的和不超过 2×105。数据保证有解。输入样例:355 0 0 2 477 0 0 1 4 0 677 4 0 3 0 5 1输出样例:5 3 1 2 47 3 2 1 4 5 67 4 2 3 6 5 1将缺少的数倒放,这样最多会出现一个a[ i ] == i的情况,这时再去找另一个要填的数(原本为0的数)交换即可,因为a[ i ] == i,与i匹配的只原创 2021-08-07 14:15:58 · 91 阅读 · 0 评论 -
AcWing 每日一题 3783. 第 k 个除数( CF762A )
原题链接数据范围1≤n≤1015,1≤k≤109。输入样例1:4 2输出样例1:2输入样例2:5 3输出样例2:-1数据范围不是特别大,直接处理出所有的因子,先算出sqrt(n)内所有的因子,再用这些因子推出后面的因子,时间复杂度O(sqrt(n)),注意开long long !AC代码:#include<bits/stdc++.h>#define ll long long using namespace std;ll a[10000007];int ma原创 2021-08-07 23:11:06 · 67 阅读 · 0 评论 -
AcWing 每日一题 3761. 唯一最小数
给定一个长度为 n 的整数数组 a1,a2,…,an。请你找到数组中只出现过一次的数当中最小的那个数。输出找到的数的索引编号。a1 的索引编号为 1,a2 的索引编号为 2,…,an 的索引编号为 n。输入格式第一行包含整数 T,表示共有 T 组测试数据。每组数据第一行包含整数 n。第二行包含 n 个整数 a1,a2,…,an。输出格式每组数据输出一行结果,即满足条件的数的索引编号,如果不存在满足条件的数,则输出 −1。数据范围1≤T≤2×104,1≤n≤2×105,1≤ai.原创 2021-07-09 15:45:09 · 313 阅读 · 0 评论 -
AcWing 每日一题 3793. 最大分数( CF34B )
原题链接数据范围1≤T≤20,1≤m≤n≤100,−1000≤ai≤1000输入样例:55 3-6 0 35 -2 44 27 0 0 -76 6756 -611 251 -66 572 -8185 5976 437 937 788 5185 3-2 -2 -2 -2 -2输出样例:87149506从小到大排个序,在前m个数中选所有负数,题目说最多选m个,可以不选满,正数就没有必要选了,扣分AC代码:#include<cstdio>#inc原创 2021-08-13 17:07:02 · 72 阅读 · 0 评论 -
AcWing 每日一题 3776. 水果拼盘(CF1271A)
原题链接数据范围1≤T≤10。1≤a,b,c,d≤105,1≤e,f≤103。输入样例:34 5 6 3 1 212 11 13 20 4 617 14 5 21 15 17输出样例:6102325判断e,f的大小,e大就优先做拼盘1,否则优先做拼盘2AC代码:#include<bits/stdc++.h>using namespace std;const int maxn = 2e5 + 3;int main(){ int T; scanf("%d原创 2021-08-07 14:23:51 · 221 阅读 · 0 评论 -
AcWing 每日一题 3769. 移动石子
原题链接数据范围1≤T≤100,1≤n,d≤100,0≤ai≤100输入样例:34 51 0 3 22 2100 11 80输出样例:31010贪心,因为每次只能移动一个石子,并不是一堆,所以每次移动最近的AC代码:#include<bits/stdc++.h>#define ll long long using namespace std;int main(){ int T; scanf("%d",&T); while(T--){原创 2021-07-21 08:46:22 · 73 阅读 · 0 评论 -
AcWing 每日一题 3792. 质数问题(CF17A)
原题链接数据范围1≤T≤30,2≤n≤1000,0≤k≤1000输入样例:527 245 72 015 117 1输出样例:YESNOYESYESYES先用质数筛筛出质数,然后枚举一遍求前缀和就好#include<cstdio>#include<cstring>#include<map>#define ll long long #define ri register int using namespace std;co原创 2021-08-13 16:55:22 · 104 阅读 · 0 评论 -
AcWing 每日一题 3777. 砖块( CF1271B )
原题链接数据范围1≤T≤10,2≤n≤200。输入样例:48BWWWWWWB4BWBB5WWWWW3BWB输出样例:36 2 4-1022 1翻成全为黑色和翻成全为白色都计算一下,取最小值即可对于翻成某种颜色,只需要每次碰到非这种颜色都翻一下(当前和下一个)这样会一直翻到最后一个,保证前面都是目标颜色,如果最后一个与目标颜色不同,则不能翻成该颜色AC代码:#include<bits/stdc++.h>using namespace std;原创 2021-08-07 14:47:41 · 299 阅读 · 0 评论 -
AcWing 每日一题 3774. 亮灯时长
原题链接数据范围1≤T≤30,1≤n≤105,2≤M≤109,0<a1<a2<…<an<M。同一测试点内所有 n 的和不超过 105。输入样例:33 104 6 72 121 102 73 4输出样例:896对于每一次的修改,都会使后面所有的灯的亮灭情况翻转对于每个时间段(共有n+1个),我们枚举在每一个时间段进行操作,将后面所有亮灭情况翻转,为了便于查询,我们采取前缀和来进行O(1)查询那么对于每次操作,其亮灯时间为该时间段i,后原创 2021-07-21 10:23:17 · 91 阅读 · 0 评论 -
AcWing 每日一题 3767. 最小的值
原题链接数据范围1≤n≤100,0≤ai,bi≤1输入样例1:51 1 1 0 00 1 1 1 1输出样例1:3输入样例2:30 0 00 0 0输出样例2:-1输入样例3:41 1 1 11 1 1 1输出样例3:-1输入样例4:91 0 0 0 0 0 0 0 10 1 1 0 1 1 1 1 0输出样例4:4贪心题,因为p元素是正整数,不能为0所以,对于a[i]<=b[i],p[i]=1对于a[i]==b[i]的情况,我们p[i]原创 2021-07-19 12:00:49 · 70 阅读 · 0 评论 -
AcWing 每日一题 3764. 三元数异或
原题链接数据范围1≤T≤104,1≤n≤5×104,同一测试点所有 n 的和不超过 5×104。输入样例:4522222521211129220222021输出样例:1111111111110001021111110111011110111010为使两个数a,b的最大值最小,首先考虑的当然是平均分摊。但是会出现一个问题,分不平,假如x一位上是1,那么就会出现分不平的情况,这时为保证最小,我们要将1分给a,然后后面的所有分给b(反过来当然也可以)AC代码:原创 2021-07-19 11:32:50 · 75 阅读 · 0 评论 -
AcWing 每日一题 AcWing 3785. 战舰 (CF965B )
原题链接数据范围1≤k≤n≤100由于数据比较小,直接暴力算出所有位置的投放指数,再取最大值即可AC代码:#include<bits/stdc++.h>#define ll long long using namespace std;const int maxn = 107;int a[maxn][maxn];int ans[maxn][maxn];int main(){ int n, k; scanf("%d %d\n", &n, &k); fo原创 2021-08-08 10:37:48 · 81 阅读 · 0 评论 -
AcWing 每日一题 3790. 录入单词( CF716A )
添加链接描述数据范围1≤n≤105,1≤c≤109,1≤t1<t2<…<tn≤109。输入样例1:6 51 3 8 14 19 20输出样例1:3输入样例2:6 11 3 5 7 9 10输出样例2:2直接模拟即可AC代码:#include<bits/stdc++.h>using namespace std;int main(){ int n, m; scanf("%d %d", &n, &m); int pre;原创 2021-08-13 16:51:33 · 81 阅读 · 0 评论 -
AcWing 每日一题 3782. 点( CF76E)
原题链接数据范围1≤N≤105,−10000≤X,Y≤10000。输入样例:41 1-1 -11 -1-1 1输出样例:32将式子拆开,化简可以得到答案等于∑i=1nn∗(xi∗xi+yi∗yi)−(∑xi)2−(∑yi)2\sum_{i = 1}^{n} n*(x_i*x_i+y_i*y_i) - (\sum x_i)^2-(\sum y_i)^2i=1∑nn∗(xi∗xi+yi∗yi)−(∑xi)2−(∑yi)2AC代码:#include<原创 2021-08-07 16:39:10 · 92 阅读 · 0 评论 -
AcWing 每日一题 3781. 乘车问题 ( CF435A )
原题链接数据范围1≤T≤30,1≤n,m≤100,1≤ai≤m输入样例:24 32 3 2 13 41 2 1输出样例:31注意!同一个班的小朋友必须被安排在同一辆车内。这就意味着每个班不能被拆开,而且,只能按顺序来,在安排乘车时,必须按照 1 班,2 班,…,n 班的顺序,依次安排每个班的小朋友。这样就简单很多了,每次计算每个班需要多少辆车,且最后一辆车空出多少个座位,还能再塞几个完整的班AC代码:#include<bits/stdc++.h>usin原创 2021-08-07 15:43:52 · 73 阅读 · 0 评论 -
AcWing 每日一题 AcWing 3768. 字符串删减
原题链接输出格式输出最少需要删掉的字母个数。数据范围3≤n≤100输入样例1:6xxxiii输出样例1:1输入样例2:5xxoxx输出样例2:0输入样例3:10xxxxxxxxxx输出样例3:8水题,没什么好说的AC代码:#include<bits/stdc++.h>#define ll long long using namespace std;int main(){ int n; scanf("%d\n",&n); int原创 2021-07-21 08:29:59 · 149 阅读 · 0 评论 -
AcWing 每日一题 3791. 解码(CF746B)
原题链接数据范围1≤n≤2000输入样例1:5logva输出样例1:volga输入样例2:2no输出样例2:no输入样例3:4abba输出样例3:baba首先我们可以确定整个字符串的中心位置当n是奇数时 这个位置mid = n / 2当n是偶数时 这个位置mid = ( n - 1) / 2然后剩下的数只要填在mid两边就可以了,因为每次都是取中心值多试几组数据我们能发现以下规律当n是奇数时先填左边再右边当n是偶数时先填右边再左边,因为当n是偶数时,右边明原创 2021-08-08 11:08:31 · 70 阅读 · 0 评论 -
AcWing 每日一题 3762. 二进制矩阵
原题链接数据范围1≤t≤5000,2≤n,m≤100,保证将同一测试点内的每组数据的 nm 相加一定不超过 20000。输入样例:52 210113 30111011104 411110110011011115 501011110010001011011100002 3011101输出样例:11 1 2 1 2 222 1 3 1 3 21 2 1 3 2 341 1 1 2 2 21 3 1 4 2 33 2 4 1 4 23原创 2021-07-19 10:01:43 · 81 阅读 · 0 评论 -
AcWing 每日一题 3646. 分水果
原题链接数据范围1≤t≤500,0≤a,b,c≤10输入样例:71 2 10 0 09 1 72 2 32 3 23 2 24 4 4输出样例:3045557注意:每种水果最多一个!不要想复杂了QWQ(不要像我一样,早点看样例不好吗 )这样最多只能有7种情况,也就是最多只能有7个小朋友分到水果(水果管够的情况下)1 0 00 1 00 0 11 1 01 0 10 1 11 1 1都判断一下就好了AC代码:#include<bits/原创 2021-07-21 11:23:40 · 100 阅读 · 0 评论 -
AcWing 每日一题 3730. 寻找序列(CF1408A)
原题链接数据范围1≤T≤100,3≤n≤100,1≤ai,bi,ci≤100,保证对于任意 i,满足 ai≠bi,ai≠ci,bi≠ci。输入样例:531 1 12 2 23 3 341 2 1 22 1 2 13 4 3 471 3 3 1 1 1 12 4 4 3 2 2 44 2 2 2 4 4 231 2 12 3 33 1 2101 1 1 2 2 2 3 3 3 12 2 2 3 3 3 1 1 1 23 3 3 1 1 1 2 2 2 3原创 2021-07-23 19:50:43 · 82 阅读 · 0 评论 -
AcWing每日一题 3583. 整数分组
原题链接给定 n 个整数 a1,a2,…,an。现在,请你从中挑选一些数,并将选出的数进行分组。要求:选出的数最多划分为 k 组(至少 1 组)。 同一组内,任意两数之差的绝对值不超过 5。 所选出的数尽可能多。请问,最多可以选出多少个数进行分组?数据范围 1≤k≤n≤5000, 1≤ai≤109输入格式第一行包含两个整数 n 和 k。第二行包含 n 个整数 a1,a2,…,an。输出格式输出一个整数,表示可以选出的最大整数数量。输入样例1:5 21 2 15 15 15输原创 2021-07-01 11:27:28 · 168 阅读 · 0 评论 -
AcWing 每日一题 3664. 数组补全(思维)
原题链接数据范围1≤n≤999,n 是奇数。0≤k<n,1≤p≤1000,n≤x≤np,1≤y≤p输入样例1:5 3 5 18 43 5 4输出样例1:4 1输入样例2:5 3 5 16 45 5 5输出样例2:-1在一个数组中,大于等与中位数的数的个数一定大于等于这个数组大小的一半我们在输入是计算一下有多少个数大于等于y(即为cnt)对于不够一半的,我们用y来补够了之后只要在前面补上若干个1就行AC代码:#include<bits/stdc++.原创 2021-07-21 16:52:04 · 68 阅读 · 0 评论 -
AcWing 每日一题 3730. 寻找序列(CF1435A)
原题链接数据范围1≤T≤1000,2≤n≤100,|ai|≤100,ai≠0,|bi|≤100,bi≠0输入样例:221 10041 2 3 6输出样例:加粗样式-100 11 1 1 -1由于n是偶数,将数组倒序,一半正,一半负即可原创 2021-07-23 20:07:34 · 77 阅读 · 0 评论 -
AcWing每日一题 3617. 子矩形计数(后缀和)
原题链接给定一个长度为 n 的数组 a 和一个长度为 m 的数组 b。两个数组均只包含 0 和 1。利用两个给定数组生成一个 n×m 的矩阵 c,其中 cij=ai×bj。显然,矩阵 c 中也只包含 0 和 1。请问,矩阵 c 中有多少个大小(面积)恰好为 k 且只包含 1 的子矩形?子矩形是指矩阵中连续若干行和连续若干列的交集。例如,考虑四个整数 x1,x2,y1,y2(1≤x1≤x2≤n,1≤y1≤y2≤m),子矩形 c[x1…x2][y1…y2] 即为行x1,x1+1,…,x2 和列原创 2021-07-01 15:43:56 · 226 阅读 · 0 评论 -
AcWing每日一题 3580.整数配对
原题链接给定 n 个整数 a1,a2,…,an,n 为偶数。现在要将它们两两配对,组成 n2 个数对。ai 和 aj 能够配对,当且仅当 ai=aj。每次增加操作可以使其中的任意一个数 ai 加一。请问,要使得 n 个整数能够成功组成 n2 个数对,至少要进行多少次增加操作。数据范围1≤n≤105,1≤ai≤104输入格式第一行包含整数 n。第二行包含 n 个整数 a1,a2,…,an。输出格式一个整数,表示所需最少操作次数。输入样例1:65 10 2 3 14 5输出原创 2021-07-01 09:43:05 · 270 阅读 · 0 评论 -
AcWing 每日一题 3663. 打印数字菱形
原题链接数据范围2≤n≤9输入样例1:2输出样例1:00 1 00 1 2 1 00 1 00输入样例2:3输出样例2:00 1 00 1 2 1 00 1 2 3 2 1 00 1 2 1 00 1 00模拟,水题,被迫水博客可还行QWQAC代码:#include<bits/stdc++.h>using namespace std;int n;int main(){ cin>>n; for(int i=0;i原创 2021-07-21 11:42:20 · 61 阅读 · 0 评论 -
AcWing每日一题 3483.2的幂次方(递归)
2的幂次方原题链接每个正数都可以用指数形式表示。例如,137=27+23+20。让我们用 a(b) 来表示 ab。那么 137 可以表示为 2(7)+2(3)+2(0)。因为 7=22+2+20,3=2+20,所以 137 最终可以表示为 2(2(2)+2+2(0))+2(2+2(0))+2(0)。给定一个正数 n,请你将 n 表示为只包含 0 和 2 的指数形式。数据范围1≤n≤20000,每个输入最多包含 100 组数据。输入格式输入包含多组数据。每组数据占一行,一个正数原创 2021-05-19 20:25:58 · 171 阅读 · 1 评论 -
AcWing每日一题 3636. 数组延伸
原题链接给定一个初始长度为 n 的数组 a 以及一个整数 x。我们现在要对数组 a 进行延伸,具体方法如下:我们从数组中的第一个元素开始,逐个遍历数组中的每个元素。当遍历到数组中的元素 q 时,如果 q 能够被 x 整除,则在数组的末尾添加 x 个整数 qx,并开始遍历下一个元素。否则,停止遍历,数组延伸结束。注意,后面新增的元素也要被考虑在内,加以处理和判断。请计算,在数组延伸结束后,数组中所有元素的和。数据范围 1≤T≤100, 1≤n≤105, 2≤x≤109, 1≤ai≤109原创 2021-07-03 09:50:03 · 95 阅读 · 0 评论 -
AcWing 每日一题 3720. 数组重排(CF1445A)
原题链接数据范围1≤T≤100,1≤n≤50,1≤x≤1000,1≤a1≤a2≤…≤an≤x,1≤b1≤b2≤…≤bn≤x输入样例:43 41 2 31 1 22 61 42 54 41 2 3 41 2 3 41 555输出样例:YesYesNoNo感觉难度应该标错了,要使ai+bi<=xa_i+b_i<=xai+bi<=x两个数组中的数最优组合(使和最小)就是一个从小到大,一个从大到小,题目中都声明了a和b数组非降序。只原创 2021-07-23 10:07:04 · 81 阅读 · 0 评论 -
AcWing 每日一题 3679. 素数矩阵
原题链接数据范围1≤T≤10,2≤n≤100输入样例:242输出样例:4 6 8 14 9 9 94 10 10 651 4 4 41 11 1要求每行每列和都是素数,每个数都是合数,让我们构造一个矩阵,往简单方面想,我们尽量让每行每列都只有2个合数相加,其余都是0那么只要这两个合数相加等于质数就行,至于矩阵大概是什么样的就得自己想了下面给出一种可行方案4 1 0 0 0 0 0 0 0 00 4 1 0 0 0 0 0 0 00 0 4 1 0 0 0 0 0原创 2021-07-22 10:36:02 · 146 阅读 · 0 评论 -
AcWing 每日一题 3732. 矩阵复原(CF1435B)
原题链接数据范围1≤T≤105,1≤n,m≤500,一个测试点的所有测试数据的 n×m 之和不超过 250000。矩阵中包含 1∼n×m 中的每个数恰好一次。矩阵的每一行和每一列的信息都保证恰好给出一次。输入样例:22 36 5 41 2 31 62 53 43 12313 1 2输出样例:1 2 36 5 4312虽然行和列的顺序乱了,但是在输入每行的信息时,是从左往右的,列的顺序没乱,输入列时同理所以每次输入行时,我们记录列输入列时记录行就原创 2021-07-23 20:23:23 · 81 阅读 · 0 评论 -
AcWing 每日一题 3705. 子集mex值
原题链接数据范围1≤T≤100,1≤n≤100,0≤ai≤100输入样例:460 2 1 5 0 130 1 240 2 0 161 2 3 4 5 6输出样例:5340样例解释在第一个测试用例中,A={0,1,2},B={0,1,5} 是一个可能的选择。在第二个测试用例中,A={0,1,2},B=∅ 是一个可能的选择。在第三个测试用例中,A={0,1,2},B={0} 是一个可能的选择。在第四个测试用例中,A={1,3,5},B={2,4,6} 是一个可能原创 2021-07-22 12:04:36 · 189 阅读 · 0 评论 -
AcWing 每日一题 3672. 数组重排
原题链接数据范围1≤T≤100,1≤n≤100,1≤ai≤100,保证数据一定有解。输入样例:31741 1 3 563 2 1 5 6 4输出样例:71 5 1 32 4 6 1 3 5i<ji<ji<j需要满足的是j−a[j]!=i−a[i]j-a[j]!=i-a[i]j−a[j]!=i−a[i]我们移下项j−i!=a[j]−a[i]j-i!=a[j]-a[i]j−i!=a[j]−a[i]因为i是小于j的所以左边一定是个正值,原创 2021-07-21 18:19:13 · 64 阅读 · 0 评论