自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 cf补题记

cf补题这里写目录标题题目:D. Array and Operations#一级##二级###三级

2022-01-14 23:54:43 268

原创 P1627 [CQOI2009]中位数

P1627 [CQOI2009]中位数链接: link.题解:这道题解法就是思维+前缀和,首先将可以将输入的数进行一个转化,大于mmm的记为1,小于mmm的记为-1,等于的记为0并记录mmm的位置,然后前缀和,在pospospos前用mapmapmap记录每种值得出现个数,当mmm出现后,累加的同时,开始进行计数,因为当此时sumsumsum在前面出现过时,就意味着存在构成情况,可以手写sumsumsum的变化理解,ans+=mp[sum]ans+=mp[sum]ans+=mp[sum]才开始读

2021-09-26 23:17:22 79

原创 P2424 约数和

P2424 约数和链接: [link]((https://www.luogu.com.cn/problem/P2424).**题解:**运用了整除分块,将数据进行了分块,再加上差分即可,可以大大化简运算过程。#include<bits/stdc++.h>using namespace std;long long slove(long long n){ long long a=1,b=0,l=1,r=0; for(long long l=1,r=0;l<=n;l=r+1)

2021-09-24 23:06:59 122

原创 P4777 【模板】扩展中国剩余定理(EXCRT)

P4777 【模板】扩展中国剩余定理(EXCRT)链接: link.扩展板子#include<bits/stdc++.h>using namespace std;#define ll long longll n;ll a[100010],b[100010];ll M,ans,x,y;ll exgcd(ll p,ll q,ll &x,ll &y){ if(!q) { x=1; y=0; return

2021-09-24 23:06:48 75

原创 P3152 正整数序列

P3152 正整数序列链接: link.**题解:**才开始自己找规律,看了题解,确实很有意思,因为每个数字都可以写成二进制,可以每次依次减去分成202^020 , 212^121, 232^323…等等.所以,最少次数就会是nnn的二进制位数,#include<bits/stdc++.h>using namespace std;int main(){ int n; cin>>n; if(n==1)cout<<"1"<<endl; el

2021-09-24 23:06:35 156

原创 P1609 最小回文数

P1609 最小回文数链接: link.题解:将前半部分对称到字符串后半部分,就可以得到回文串,如果该回文串小于给出的字符串,从中间碍事加1即可,注意有9的情况,当中间是9时,中间变0同时前后加1。注意特判全为9的情况,需要加位。#include<bits/stdc++.h>using namespace std;char s[1000],a[1000];int main(){ cin>>s; int n=strlen(s)-1; int i,flag=0;

2021-09-24 23:06:12 462

原创 P1495 【模板】中国剩余定理(CRT)/曹冲养猪

P1495 【模板】中国剩余定理(CRT)/曹冲养猪链接: link.纯板子题,太久没写,以至于今天才发现自己存的板子是有bug的,有趣看了一遍。#include<bits/stdc++.h>using namespace std;#define LL long longconst int inf = 0x3f3f3f3f;const int maxn = 1e5 + 5;int n;void ex_gcd(LL a, LL b, LL &d, LL &x,

2021-09-24 23:05:51 49

原创 P3912 素数个数

P3912 素数个数链接: link.一来想到了欧拉筛,写出来T了6个点,看题解发现可以用欧拉筛,开始找问题,结果:注意map耗时,map改数组后不会T,但是会MLE,需要将ststst的intintint改为boolboolbool,最后AC。#include<bits/stdc++.h>using namespace std;const int maxn=1e8+10;bool st[maxn];int prime[maxn];int main(){ int n; s

2021-09-24 23:05:04 84

原创 D. Diane#735DIV2

D. Diane链接: link.题意:给定一个整数 n。 找出任何长度为 n 的字符串 s 仅由英文小写字母组成,使得 s 的每个非空子串在 s 中出现奇数次。em…不知道为什么我的WA了,去看了其他大佬的思路,比我当时想的还要简单一些,然后,get到wa的点了AC代码#include<bits/stdc++.h>using namespace std;int main(){ int t; cin>>t; while(t--) { int n;

2021-08-23 22:43:18 79

原创 B. Cobb#735DIV2

B. Cobb链接: link.嗯,基本就是遍历,在iii的初始值上做一些优化即可。注意要使用long long#include<bits/stdc++.h>using namespace std;typedef long long ll;long long a[200010];int main(){ int t; cin>>t; while(t--) { long long n,k; cin>>n>>k; for(lon

2021-08-23 22:43:06 69

原创 C. Moamen and XOR#737DIV2

C. Moamen and XOR链接: link.哎…至今不太懂为什么n,mn,mn,m用intintint是超时#include<bits/stdc++.h>using namespace std;typedef long long ll;const ll mod=1e9+7; long long Pow(long long a,long long b){ long long ans=1; while(b){ if(b&1ll) ans=(ans*a)%mo

2021-08-23 22:42:50 57

原创 P1077 [NOIP2012 普及组] 摆花

P1077 [NOIP2012 普及组] 摆花链接: link.#include<bits/stdc++.h>using namespace std;int dp[110],a[110];const int mod=1e6+7; int main(){ int n,m; cin>>n>>m; for(int i=1;i<=n;i++) { cin>>a[i]; } dp[0]=1; for(int i=1;i<=n

2021-08-23 22:41:41 53

原创 D. Make a Power of Two(cf#739DIV3)

D. Make a Power of Two链接: link.题意:找出将数字转换为 2 的任意幂的最小移动次数。题解:先将2的xxx次幂的结果以字符串形式保存,输入字符串nnn后,因为存在最后化为2的0次幂的情况,所以需要考虑移动添加形成1的情况,此时ans=字符串长度+1ans=字符串长度+1ans=字符串长度+1,在将所有字符串一一对比求出移动最小值(擦除 ∣a∣−|a|−∣a∣−共有数字+∣b∣−+ |b|−+∣b∣−共有数字,即为需要删除和添加个数)。#include<bit

2021-08-19 22:04:35 235

原创 P1865 A % B Problem

P1865 A % B Problem注意当不在[1,m][1,m][1,m]范围内时,直接输出,所以素数不用找到1e9,注意数组范围,忘记开大了,wa了几发#include<bits/stdc++.h>using namespace std;int cnt=0;const int N=1e6+10;int st[N],prime[N],an[N];int main(){ st[1]=1; int n,m; cin>>n>>m; for(int

2021-08-19 22:04:10 46

原创 P1083 [NOIP2012 提高组] 借教室

P1083 [NOIP2012 提高组] 借教室链接: link.第一种解法:线段树;第二种解法:差分+二分(这种当时看标签没想到怎么写)第一种:第二种:#include<bits/stdc++.h> using namespace std; const int N=1e6+10; int n,m; int a[N],b[N],l[N],r[N],nn[N],d[N];int check(int f){ memset(d,0,sizeof(d)); for

2021-08-17 22:33:43 211

原创 P1082 [NOIP2012 提高组] 同余方程

P1082 [NOIP2012 提高组] 同余方程(扩欧)链接: link.#include<bits/stdc++.h> using namespace std;int a,b;int x,y;void ex_gcd(int a,int b) { if (b==0) { x=1; y=0; return ; } ex_gcd(b,a%b); int tmp=x; x=y; y=tmp-a/b*y;}int main(){ cin>>a

2021-08-17 22:28:26 61

原创 D1. Mocha and Diana (Easy Version)#738

链接: link.#include<bits/stdc++.h>using namespace std;typedef pair<int,int>p;int a[10010];int n = 10005;int father[10005],father1[10005];void init(int n) { for (int i = 1; i <=n; ++i) { father[i] = i; father1[i]=i;

2021-08-17 22:28:14 812

原创 P1045 [NOIP2003 普及组] 麦森数

fill(arr, arr + n, 要填入的内容);copy(a.begin(),a.begin()+3,b.begin()+4);将a[0]到a[2]复制到b[5]到b[7] 并且覆盖掉原来的数据 (主要用于容器之间)#include<bits/stdc++.h>using namespace std;int a[510],b[510],c[510];int n=510;void m(int a[],int b[]){ fill(c,c+n,0); for(int i=1.

2021-08-15 22:07:10 192

原创 P1886滑动窗口 /【模板】单调队列

#include<bits/stdc++.h>using namespace std;#define int long longint a[1000010],q[1000010];int n,k;void minqueue() { int h = 0, t = -1; for (int i = 0; i < n; ++i) { while (h <= t && q[h] + k <= i) h++; while (h &lt..

2021-08-15 22:07:03 56

原创 P4071 [SDOI2016]排列计数

错排问题最开始以为是组合数取余结果样例兜不上去,才发现是错排问题#include<bits/stdc++.h>using namespace std;#define ll long longlong long mod = 1e9+7;ll up[1000010],d[1000010];ll Pow(ll a,ll b){ ll ans=1; while(b){ if(b&1) ans=(ans*a)%mod; a=(a*a)%mod; b>>

2021-08-15 22:06:55 82

原创 OR(牛客暑假第八场)

OR链接: link.题目:题解:当z=x+yz=x+yz=x+y时,有z=x∣y+xz=x|y+xz=x∣y+x&yyy所以aaa&bbb=c−bc-bc−b,将c−bc-bc−b的值赋值给ccc当c−b<0c-b<0c−b<0时,意味着c=0c=0c=0&&b=1b=1b=1,不合理当!xx!xx!xx&&yyyyyy时,意味着xx=0xx=0xx=0&&yy=1yy=1yy=1,不合理当!xx!xx!

2021-08-11 23:06:42 38

原创 Yet Another Problem About Pi(牛客暑假第八场)

Yet Another Problem About Pi链接: link.题目:题意:路线的最大总长度为πππ公里,找出在整个公路旅行中最多能参观多少个不同的地区。题解:可知最开始的起点一定会涉及最少四个区域(以极小极小的距离移动),而后直线行进时一格涉及两个区域(选择短的一边移动),对角线行进时一次涉及三个区域(斜线中以对角线效率最高)。由此可以得到走直线和走对角线的效率,根据效率选择走直线或是对角,此时应当注意,只有在起始或结尾(中间改变无法加大最优解)的状态转换可能能使涉及区域增加(有足够

2021-08-11 22:45:29 90

原创 Ares, Toilet Ares(牛客暑假第八场)

Ares, Toilet Ares链接: link.题目:题解:无关条件真的很多,nnn,mmm,lll属于无关条件。通过给出的x,y,zx,y,zx,y,z可以求出当前xxx行的错误概率,1-错误概率=正确概率。当x=0x=0x=0时不用计算进去,其他情况下求出的正确概率相乘即可。除法需使用到逆元。#include<bits/stdc++.h>using namespace std;#define ll long longll mod=4933; ll quick_po

2021-08-11 22:43:18 51

原创 P3868 [TJOI2009]猜数字

P3868 [TJOI2009]猜数字链接: link.题目:题解:中国剩余定理+快速乘具体后补#include<bits/stdc++.h>using namespace std;//int vis[200010];long long k;long long a[20],b[20];long long exgcd(long long a,long long b,long long &x,long long &y){ if(!b) { x=1;

2021-08-09 22:08:04 31

原创 C. Web of Lies cf#736Div.2

C. Web of Lies链接: link.题目:题意:在一个关系图中,如果某个点有相连的点且相连的点数值大于它,那么他就会面临出局,操作1为连边,操作2为删边,操作三则为输出此时未出局人数。题解:因为如果它有比它数值大的连线点即意为他会面临出局,直至只有孤立节点,所以,计数所有有大于它本身数值的朋友的点的个数,再用总人数相减。#include<bits/stdc++.h>using namespace std;int vis[200010];int main(){

2021-08-09 22:07:50 68

原创 Hamburger Steak(牛客暑假第六场)

Hamburger Steak链接: link题目:题意:贪心。有nnn个汉堡mmm个锅,每个汉堡有他自己所需的烹饪时间a[i]a[i]a[i],一个锅不能同时烹饪多个汉堡,一个汉堡他也不能同时在两个锅里烹饪,但是可以依次在几个锅里烹饪,求最短方法。对于每个锅都有相同的最大的烹饪时间,可能是耗费最长的汉堡对应的时间,也可能是总平均值除以mmm后向上取整。在烹饪每一个汉堡时,如果x<a[i]x<a[i]x<a[i],就需要换锅烹煮,否则,就在一个锅中进行烹饪,当烹饪完当前汉

2021-08-09 22:06:58 62

原创 Boxes(牛客暑假第五场)

Boxes链接: link.题目:题意:有nnn个盒子在你面前。你知道每个盒子都装着白色或黑色的球。每个盒子中为黑(白)色球的概率为二分之一。打开每个盒子都需要对应所需代价 ,打开一个盒子后,你可以看到这个盒子里面的球。当然,除了打开所有盒子,你没有办法知道所有的颜色。但当你支付ccc后,你可以知道尚未打开的所有盒子中的黑球数量。计算出所有颜色的球的最低成本的数学期望是什么?题解:感觉还是需要理解一下,当时看题就完全没有什么头绪。第一种方法,一个一个拆开;第二种,先支付ccc,可以知道

2021-08-06 23:04:00 132 1

原创 King of Range(牛客暑假第五场)

King of Range题目:题意:对nnn个数进行mmm次查询,求区间内最大值−-−最小值>k>k>k的区间数.题解:该问题相当于求最大值−-−最小值<=k<=k<=k的区间数,而后用总数减去该数.调用两个队列,一个用于维护最大值,一个用于维护最小值。每次查询时都要将rrr推入两个队列中,若当前满足最大值−-−最小值<=k<=k<=k,则直接用ansansans减去此时区间数,否则则l++l++l++使不满足的情况出队直至满足最大值−-

2021-08-05 22:49:55 59

原创 Average(牛客暑假训练营第四场)

Average链接: link.大意:求平均值最大的子矩阵,要求第一行长度至少为xxx,第二行长度至少为yyy。题解:(二分+前缀和)该问题相当于求长度至少为xxx(yyy)的最大平均值子区间,sun[i]sun[i]sun[i]累计当前数字与期望平均值(midmidmid)的差值,当差值大于0,则说明存在连续子区间满足平均值大于等于该期望平均值,否则则说明期望值较高,通过二分不断确定,最终求出结果注意:slovesloveslove处应使用无返回值得voidvoidvoid,intin

2021-08-03 21:33:46 67

原创 Photoshop Layers(hdu2021第三场)

Photoshop Layers链接:link.题解:题意为xxx为1时直接覆盖,为2时进行累计(不超过255),并将flagflagflag记为i−1i-1i−1时的情况,然后根据起终点输出信息。在输出时注意判断起终点的覆盖情况,如果l<=flag[r]l<=flag[r]l<=flag[r]则证明在lll到rrr之间完成过至少一次覆盖,所以直接输出最终情况即可;如果不是,则需要用rrr时的结果减去l−1l-1l−1的结果,得到差值即为所求区间内的答案。(cincincin会超

2021-07-31 23:15:00 146 1

原创 Segment Tree with Pruning(hdu2021第三场)

Segment Tree with Pruning链接: link.题目:题意:用nnn,kkk构造线段树,问线段树构造的节点个数。题解:最开始想找规律,一直没有找到,然后发现这个是有公式的!直接带公式就可以了!直接就可以得到最终答案。公式推导博客指路:link代码:#include<bits/stdc++.h>using namespace std;typedef long long ll;map<ll,ll>mp;ll n,k,cnt=0;ll f

2021-07-30 22:10:13 105

原创 Counting Triangles(牛客暑假训练赛第三场)

Counting Triangles题目链接:link.题意:给一个有nnn个顶点的图,每两个顶点的边为黑或白色,求组成的三角形三边颜色相同的个数。题解:因为边的颜色必须为黑色或白色,所以,形成三角形的三边中最少有两个边颜色相同。正难则反,不满足条件的三角形个数即为异色个数的一半,白色边数为n−1−n-1-n−1−黑色边数,所以异色个数等于黑*白。前面的直接复制题目所给代码即可,最后再用形成三角形个数的总数减去总的异色个数即为满足条件三角形个数。#include<bits/stdc++

2021-07-30 00:02:48 69

原创 Math牛客训练营第三场

Math题解:设x2 + y2=k*(xy+1),由韦达定理(固定x)可算出(x,kx-y)为其中一组可行解,打表明显可以得到$(x,x3 ) 也是其中一组解,然后记录排序,最后二分得到答案。注意使用——int128。#include<bits/stdc++.h>using namespace std;typedef long long ll;typedef __int128 ull;vector<ull>v;int main(){ int t; cin

2021-07-27 22:15:49 87

原创 Stack(牛客2021暑假训练赛第二场)

Stack题目:链接: link.题意:有一个长度为nnn的数组bbb,只知道其中的kkk个元素,求排列aaa,数组bbb由排列aaa对应的伪代码生成,根据伪代码推得,当aaaaaa<bbbbbb时不存在符合条件的方案,直接输出“-1”,当栈的元素数目小于a[i]a[i]a[i]时,对栈进行填充,推入新的值,得到每次的ans后删除栈顶元素。AC代码:#include<bits/stdc++.h>using namespace std;int a[1000010],an

2021-07-26 22:39:08 75

原创 Alice and Bob(2021牛客暑假训练营一)

A.Alice and Bob链接: link.题目描述f[k][sk]或f[sk][k]是可以一次性取完的情况,xx=i+x,yy=j+yxx=i+x,yy=j+yxx=i+x,yy=j+y或者yy=i+y,xx=j+xyy=i+y,xx=j+xyy=i+y,xx=j+x也是枚举sss和kkk找先手必胜的情况,swapswapswap减少循环次数。题解:#include<bits/stdc++.h>using namespace std;bool ans[5020][5020

2021-07-26 22:10:14 126

原创 KD-Graph(hdu2021第一场)

KD-Graph题目链接:link.Problem DescriptionLet’s call a weighted connected undirected graph of n vertices and m edges KD-Graph, if thefollowing conditions fulfill:n vertices are strictly divided into K groups, each group contains at least one verticei

2021-07-24 15:46:08 137

原创 Maximal submatrix(hdu2021第一场)

Maximal submatrix(hdu2021第一场)题目链接:![Alt](https://acm.hdu.edu.cn/showproblem.php?pid=6957)Problem DescriptionGiven a matrix of n rows and m columns,find the largest area submatrix which is non decreasing on each columnInputThe first line contains an i

2021-07-23 20:38:54 139

原创 Robberies(反向思考+01背包)

Robberies题目链接:https://vjudge.net/contest/429740#problem/DThe aspiring Roy the Robber has seen a lot of American movies, and knows that the bad guys usually gets caught in the end, often because they become too greedy. He has decided to work in the lucrat

2021-04-05 00:20:46 107

原创 疯狂的采药(完全背包)

疯狂的采药题目链接:https://www.luogu.com.cn/problem/P1616核心代码:for(int i=1;i<=m;i++) { for(int j=weight[i];j<=n;j++) { dp[j]=max(dp[j],dp[j-weight[i]]+value[i]); } }完全背包(每种物品有无限件可以用)代码和01背包很像,但要注意01背包内层循环是逆序,而完全背包则是顺序进行!此处附上01背包代码进行对比。for(int

2021-04-04 23:45:40 103

原创 Bone Collector(基础01背包,板子)

Bone Collector(基础01背包,板子)题目链接:https://vjudge.net/contest/429740#problem/AMany years ago , in Teddy’s hometown there was a man who was called “Bone Collector”. This man like to collect varies of bones , such as dog’s , cow’s , also he went to the grave …

2021-04-04 23:10:46 159

空空如也

空空如也

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

TA关注的人

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