自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(14)
  • 收藏
  • 关注

原创 裴蜀定理题解

思路:本题可以使用裴蜀定理,对任意x、y,A*x+b*y等于x、y的最小公倍数的倍数。与定理不同的是,本题需要的不是两组数,而是n组。所以我们可以求出全部数的最小公倍数,便可知道S的最小值。代码:#include<bits/stdc++.h>using namespace std;long long gcd(long long a,long long b){return b?gcd(b,a%b):a;}//辗转相除求最小公倍数int main(){int an

2022-05-24 21:12:09 162

原创 裴蜀定理题解

思路:本题可以使用裴蜀定理,对任意x、y,A*x+b*y等于x、y的最小公倍数的倍数。与定理不同的是,本题需要的不是两组数,而是n组。所以我们可以求出全部数的最小公倍数,便可知道S的最小值。代码:#include<bits/stdc++.h>using namespace std;long long gcd(long long a,long long b){return b?gcd(b,a%b):a;}//辗转相除求最小公倍数int main(){int an

2022-05-24 21:06:10 276

原创 裴蜀定理题解

思路:本题可以使用裴蜀定理,对任意x、y,A*x+b*y等于x、y的最小公倍数的倍数。与定理不同的是,本题需要的不是两组数,而是n组。所以我们可以求出全部数的最小公倍数,便可知道S的最小值。代码:#include<bits/stdc++.h>using namespace std;long long gcd(long long a,long long b){return b?gcd(b,a%b):a;}//辗转相除求最小公倍数int main(){int an

2022-05-24 21:01:56 155

原创 忠诚的题解

思路:这是一道求区间最值的题。可以用ST表求解。ST表是数组st[i][j]代表从i开始,2 的j次方个数里的最小值,这样我们就可以得到状态转移方程为st[i][j]=min(st[i][j-1],st[i+(1<<(j-1))][j-1]);代码:#include<bits/stdc++.h>using namespace std;const int N=1e5+5;int n,m;int a[N];int st[N][20];int Lo...

2022-05-22 11:34:02 143

原创 互换奇偶位题解

思路:交换奇偶位,需要先求出奇偶位上的数。接着进行交换并合并。因为计算机是用2进制存储的,所以2进制时间更快。分离时比较简单所以可以用位运算来做。合并:偶数位右移,奇数位左移,进行或运算。代码:#include<iostream>using namespace std;int main(){int n;cin>>n;int m1=n&0xaaaaaaaa;//16进制的101010……偶数位int m2=n&0x555555..

2022-04-23 20:45:28 1086

原创 《彩色弹珠》题解

思路:本题要选择一个区间并要判断弹珠的数量是否符合要求(颜色1的弹珠有k1个,颜色2的弹珠有k2个,...,颜色m的弹珠有km个)。因此要用尺取法来做。先移动右指针,直到满足条件停止,这时移动左指针。找到最小区间长度的值。代码:#include<bits/stdc++.h>using namespace std;const int N=2e5+5;int a[N],k[N],cnt[N],sum=0;bool flag[N];int main(){..

2022-04-17 13:58:26 125

原创 《彩色弹珠》题解

思路:本题要选择一个区间并要判断弹珠的数量是否符合要求(颜色1的弹珠有k1个,颜色2的弹珠有k2个,...,颜色m的弹珠有km个)。因此要用尺取法来做。先移动右指针,直到满足条件停止,这时移动左指针。找到最小区间长度的值。代码:#include<bits/stdc++.h>using namespace std;const int N=2e5+5;int a[N],k[N],cnt[N],sum=0;bool flag[N];int main(){in

2022-04-17 13:57:01 1170

原创 逛画展的题解

思路:因为画家只有2000个,所以可以用哈希来做,记录区域内每个画家有几幅画。先定义l,r代表a,b,不断向右移动,并通过统计新画家的画,减去左边画家的画来计算是否看到了所有画家的画。记录(l-r+1)最少值。输出。代码:#include<bits/stdc++.h>using namespace std;const int N=1e6+5;int n,m;int a[N];int num[2005],cnt;//cnt:统计画家数量int main(){

2022-04-05 19:53:50 1251

原创 地毯的题解

地毯题解思路:设置B,SUM两个二维数组。然后边输入毯子位置一边用函数处理(函数见代码注解)。接下来用二维数组来计算前缀和,并输出。代码:#include <bits/stdc++.h>using namespace std;const int N=1e3+5;int b[N][N],s[N][N];int n,m;void add(int xa,int ya,int xb,int yb){b[xa][ya]+=1;//地毯左上角加一b[xa][yb+

2022-04-03 15:22:48 1064

原创 Karen and coffee

思路:先记录温度前缀和:如果是开头温度,b【l】+1,如果是结尾,b【r】+1。然后用a数组统计前缀和。接着用sum数组记录温度对应的咖啡数量前缀和。最后不断输出要求范围内的咖啡数量。代码:#include<iostream>using namespace std;int sum[200005];Int a[200005],b[200005];int l,r,n,k,q;int main(){cin>>n>>k>>q;f

2022-03-26 19:10:09 396

原创 买T恤题解

思路:先输入T恤正反两面的颜色,因为只有3种颜色,所以可以用哈希来做。在颜色的优先队列中存放价格,便宜的在前面。然后边输入客人需要的颜色,边处理。找到这种颜色对应的队列,如果有一个T恤对应的价格,输出价格,并弹出价格。如果没有输出-1。代码:#include<iostream>#include<queue>using namespace std;struct node{int id,p,a,b;friend bool operator<(no

2022-03-19 19:11:15 99

原创 买T恤题解

思路:先输入T恤正反两面的颜色,因为只有3种颜色,所以可以用哈希来做。在颜色的优先队列中存放价格,便宜的在前面。然后边输入客人需要的颜色,边处理。找到这种颜色对应的队列,如果有一个T恤对应的价格,输出价格,并弹出价格。如果没有输出-1。代码:#include<iostream>#include<queue>using namespace std;struct node{int id,p,a,b;friend bool operator<(no

2022-03-19 19:07:01 983

原创 Consecutive Subsequence

边循环边输入,用map记录,当前长度等于上一个的长度加一。记录最后一个和最大长度。先输出长度,在输出连续的序号。代码:#include<iostream>#include<string>#include<map>using namespace std;map<int,int> sum;int a[2000005];int main(){int n,x,maxl=0,last=0;cin>>n;for(in

2022-03-12 19:03:17 347

原创 P1978《集合》题解

这个k-集合没有两个元素有k倍的关系。要用set来做。不断尝试添加新元素:符合条件就把他放到set中。最后输出set的长度。

2022-03-06 09:29:40 306

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除