自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 小知识点(持续更新中...)

1.lower_bound函数与upper_bound函数头文件是algorithm,它们返回的是一个iteratorlower_bound函数返回的是第一个大于等于value的位置,它的函数参数为(数组名,数组名加数组内元素的个数,要查找的数)其写法为:lower_bound(a,a+n,value)-a;//这里只有减去a数组的位置才返回的是一个数。upper_bound函数返回的...

2020-02-17 06:12:08 87

原创 1002 A+B for Polynomials(多项式相加问题)

题意:一定要理解题意!!样例中每行代表一个多项式,每行的第一个数代表该多项式有几项,然后每两个数字分别代表第几项以及它对应的系数。左后将给出的两个多项式相加。#include<iostream>#include<cstdio>using namespace std;int main( ){ float c[1010]={0}; int k; scanf("%d",&k); for(int i=1;i<=k;i++) .

2020-10-20 18:40:19 859

原创 A+B(知识点 将数字转换为字符串)

#include<iostream>#include<string>using namespace std;int main( ){ int a,b; cin>>a>>b; string s=to_string(a+b); int len=s.size(); for(int i=0;i<len;i++) { cout<<s[i]; if(s.

2020-10-20 18:15:50 228

原创 The Festive Evening(思维)

题意:一共有A到Z 26个门,给每个顾客的人数,以及每个人从哪个门进,同时给守卫的人数,每个守卫只有在这道门的最后一个顾客进去之后才能去别的门,问对给出的顾客情况,一共需要多少个守卫,如果需要的守卫人数多于实际的人数则输出YES,否则输出NO 。题解:记录下来每个门第一个顾客到达的时间以及最后一个顾客到达的时间,暴力:当第一个顾客来的时候就加一,最后一个顾客来的时候就减一,中间每次判断一下。#include<iostream>#include<string>#incl...

2020-09-23 22:04:13 177

原创 Lottery Coprimes

代码:#include<iostream>#include<string>#include<cstdio>using namespace std;int n;int flag;string s,s1,s2;int a,b;int gcd(int a,int b){ if(b==0) return a; return gcd(b,a%b);}int main( ){ cin>>n; for(int i=1;i<=n...

2020-09-23 10:37:37 114

原创 B. Wheel of Universally Copious Fortune

样例输出:Word #1: co-chcoachcouchTotal number of candidate words = 2Word #2: -atcatsatTotal number of candidate words = 2Word #3: ---catalisatTotal number of candidate words = 3Word #4: alialiTotal number of candidate words = 1Word #5: ...

2020-09-23 10:35:42 197

原创 递归实现指数型枚举(DFS)

题解:深搜,pos代表当前已经加了多少个数,st代表从哪个数开始(保证递增),x表示一共选多少个数。#include<iostream>int u[20],a[20];int n;using namespace std;void dfs(int pos,int st,int x){ if(pos==x+1) { for(int i=1;i<=x;i++) cout<<a[i]<<" "; cout&l..

2020-09-17 22:20:04 311

原创 Dijkstra求最短路 I

模板题,代码如下:#include<iostream>#include<algorithm>#include<cstring>using namespace std;const int N=510;int g[N][N];int dist[N];bool st[N];int n,m;int dijkstra( ){ memset(dist,0x3f,sizeof dist); dist[1]=0; for(int i=0;i<n;i++.

2020-09-02 19:39:30 166

原创 Undoubtedly Lucky Numbers (DFS)

题意:给出一个数n,计算不超过n的幸运数字的个数,幸运数字就是由一个数或者两个数组成的数。代码如下:#include<iostream>#include<set>typedef long long ll;using namespace std;set<ll> a;int n,x,y;void dfs(ll num,ll pos)//num代表数的大小,pos代表位数{ if(num>n||pos>10) return ; a.inse..

2020-09-01 19:10:54 319 1

原创 Dividing Orange(思维)

题意:一共有nk个橙子,一共有k个人,每个人都有一个最想要的橙子,确保他们都能得到他们最想要的那一个,剩下的平分。题解:首先把每个人想要的那个橙子编号存起来,然后每个人还要再分(nk-k)/k即n-1个橙子,只要特判一下就可以了。代码如下:#include<iostream>using namespace std;int n,k,cnt,op=1;int a[1000],b[1000];int main( ){ cin>>n>>k; for(in...

2020-09-01 18:49:11 188

原创 C - Hot Bath(暴力)

代码:#include<iostream>#include<string>#include<algorithm>int a,b,c;using namespace std;string check(int d){ string str,s; while(d) { if(d%10==4||d%10==7) { s+=((d%10)+'0'); } d=d/10; } reverse(s.begin(),s.end()); ..

2020-08-15 20:01:42 311

原创 B - Permutations(dfs)

题意:就是有k位数,然后进行全排列,将给出的n个数都按照这种全排列的位次进行交换,然后找出最大值与最小值,输出所有全排列情况下差值最小的那个。题解:使用dfs找出所有全排列的方式,然后进行判断。#include<iostream>#include<cstring>#include<cmath>using namespace std;int n,k;char s[100][100];int used[100],a[100];int cnt,minn,m..

2020-08-12 20:27:47 139

原创 猴子吃包子

#include<iostream>#include<cmath>#include<cstdio>using namespace std;int main( ){ double x,y,z,x1,y1,z1; int p; cin>>x>>y>>z>>x1>>y1>>z1>>p; double ans=0; ans=x1/x+y1/y+z1/z; printf("..

2020-08-10 22:50:18 177

原创 The Crime-solving Plan of Groundhog(高精度乘法)

题意:给出几个数,将这几个数组合成两个不为0的数,使这两个数的乘积最小,并且输出这个乘积。题解:找到这几个数中不为0的最小的那个数,剩下的数组合成另外一个尽量小的数,在进行乘法运算的时候使用高精度的乘法。代码如下:#include<iostream>#include<cmath>#include<algorithm>#include<vector>#include<string>using namespace std;con...

2020-08-08 20:53:21 217

原创 Red and Black(DFS经典题)

题意:在一个长方形的区域,有黑色和红色两种方块,一个人站在一块黑色的方块上,他可以向四个方向移动,但是每次移动只能移动到另一个黑色的方块上,问共有多少黑色的方块。#include<iostream>#include<cmath>#include<cstring>using namespace std;int dx[]={0,1,0,-1};int dy[]={1,0,-1,0};int vis[21][21];int ans;char ch[21]...

2020-08-01 10:03:14 485

原创 Fractal(递归输出图形)

题解:就是根据输入的n值来递归输出图形,我们不难发现在n的情况下,图形的宽度为3^(n-1),假设起始坐标为x,y,我们可以发现当k为上一级图形的宽度时,我们递归该图形的五个部分,则分别为(n-1,x,y+2k),(n-1,x+k,y+k),(n-1,x+2k,y),(n-1,x+2k,y+2k)。由于n的范围很小,所以我们可以预处理出图案。#include<iostream>#include<cmath>#include<cstring>using na...

2020-08-01 09:34:40 481

原创 放苹果

题解:首先分类讨论,找到递归的边界和公式。1.当m<=1或者n=1的时候,这时候只有一种放法,答案为1。2.当m<n的时候,其结果与check(m,n)是一样的。3.当m>=n的时候,考虑如果这个时候保留一个空的盘子,那么,答案为check(m,n-1)如果每个盘子都有苹果,那么首先我们拿出n个苹果放在n个盘子上,这个时候还有m-n个苹果还没有被分配,那么最后结果其实就与这m-n个苹果的放法一样。所以在第三种情况下结果为check(m,n-1)+check(m-n,n)。特别.

2020-07-29 21:49:50 117

原创 单调栈和单调队列

什么是单调栈?单调栈是一种先进后出并且栈中数据有序的一种数据结构。分享一个很详细的博客:传送门单调队列分享博客:传送门例题:#include<iostream>#include<cmath>using namespace std;const int N=5010;typedef long long ll;int row[N][N],a[N],c[N],q[N],w[N][N];int n,m,k;int gcd(int a,int b){ return

2020-07-24 22:50:13 121

转载 差分

首先分享一个我看到过的关于差分数组讲解很详细的博客:传送门 超详细!!!

2020-07-21 20:55:04 131

原创 牛客—— Basic Gcd Problem(质因子分解+快速幂)

质因子分解算法 (摘自《算法笔记》)算法原理:对一个正整数n来说,如果它存在1和它本身之外的因子,那么一定在sqrt(n)的左右成对出现。 但是对于质因子来说:对一个正整数n来说,如果它存在[2,n]范围内的质因子,要么这些质因子全部小于等于sqrt(n),要么只存在一个大于sqrt(n)的质因子,而其他质因子全部小于等于sqrt(n)。思路:1.枚举1~sqrt(n)范围内的所有质因子p,判断p是否为n的因子。如果p是n的因子,那么给fac数组中增加质因子p,并且初始化其个数为0。然后只

2020-07-21 20:45:20 278

原创 A - Sequence with Digits(模拟,剪枝)

题意:给出t组测试数据,每组数据给出a1和k,假设前一个值为ai,每次操作后的值为ai+ai各位中最小值*ai各位中最大值,输出ak。思路:模拟题意的过程,通过给出的公式可知如果在某次模拟过程中发现ai各位中的最小值为0,那么以后每次模拟所得到的值就不会变了,就可以终止模拟。特判k=1的时候。#include<iostream>#include<cmath>#include<algorithm>typedef long long ll;using namesp

2020-05-18 20:15:18 275

转载 荷马史诗(哈夫曼编码扩展)

详解

2020-05-13 23:41:14 1032

原创 智乃与无意义的题目(线段树)

(代码来自机房大佬lyj)#include<bits/stdc++.h>using namespace std;typedef long long ll;const int maxn = 100000+200;ll p[4]={2,3,5,7};class tree{ public: ll l,r,val[4];} tree[maxn<<2];ll...

2020-05-03 21:35:25 205

原创 张经理的员工(前缀和,思维)

#include<iostream>#include<algorithm>#include<cmath>const int maxn=1e5+10;typedef long long ll;int n,m,a,b,ans;struct node{ ll s,k;}f[maxn];int ff[maxn],t[maxn];int main...

2020-05-02 13:51:37 179

转载 转换成3NF既有无损连接性又保持函数依赖的分解

转载

2020-04-30 22:23:29 1308

原创 A - Wizards' Duel

题意:给出总路程l。以及A,B的速度分别为p,q,计算在相遇的时候A走了多远。题解:(p+q)t=l,A的路程=pt。#include<iostream>#include<cmath>using namespace std;int main( ){ double l,p,q; cin>>l>>p>>q; doubl...

2020-04-30 20:40:28 161

原创 龟兔赛跑预测(模拟)

#include<iostream>using namespace std;int main( ){ int v,v2,t,s,l; cin>>v>>v2>>t>>s>>l; int tim1=0; int tim2=0; int l1=0; int l2=0; while(l1!=l&&...

2020-04-10 00:20:19 169

原创 回型取数(思维,模拟)

#include<iostream>using namespace std;int main( ){ int m,n; cin>>m>>n; int a[m][n]; for(int i=0;i<m;i++) for(int j=0;j<n;j++) cin>>a[i][j]; int d,u; int cnt...

2020-04-09 23:49:14 95

转载 Eggfruit Cake(尺取法)

题目:Today is Jaime’s birthday and, to celebrate, his friends ordered a cake decorated with eggfruits and persimmons. When the cake arrived, to their surprise, they noticed that the bakery didn’t use eq...

2020-04-09 16:55:08 513

原创 Vestigium (7pts)

题意:计算从左上到右下对角线的数值之和,然后计算含有重复数字的行数和列数。#include<iostream>#include<cstring>using namespace std;int used[110];int main( ){ int t; cin>>t; for(int q=1;q<=t;q++) { int n; ...

2020-04-04 22:36:53 185

原创 Nesting Depth (5pts, 11pts) (思维)

题意:数字是几就代表有几个括号。思维:比较一个数字与下一个数字的大小#include<cstdio>#include<iostream>using namespace std;int t;int main(){ scanf("%d",&t); for(int k=1;k<=t;k++){ string a,b; cin>>a...

2020-04-04 22:33:47 264

原创 Parenting Partnering Returns (7pts, 12pts)(贪心)

题意:有好几个活动需要两个人去参加,根据每个活动的时间安排谁去参加哪个活动。#include<cstdio>#include<iostream>#include<algorithm>using namespace std;const int maxn=1100;int t,n;struct node{ int x,y; int id; i...

2020-04-04 22:22:52 287

原创 Computer Science(二分+思维)

题意:给出数列 ai 和 N,K。要求构造出一个 序列 xi,每个 xi 满足 在 [xi,xi+L]中存在有 K 个 ai 中的数,并且包含 ai,求出最小的 L。题解:对答案进行二分,首先把数组从小到大排好序,那么L的取值范围就是从1到a[n]-a[1],每二分一次就进行判断一次该长度时是否满足题意。判断思想:对于每个长度L每次我们只需判断a[i+k-i]-a[i]是否<=mid,...

2020-03-18 16:28:21 160

原创 Beer Barrels(逆元,快速幂)

t题意:给出四个整数:A,B,K,C,A,B,C 都是大于 0 的一位数,问在所有仅由 A 或 B 组成的 K 位数中(K 位数的每一位都是 A 或 B),数字 C 的个数有多少。题解:当A!=C&&B!=C时,直接输出0;当A=B=C时,输出K;一般情况:代码:#include<iostream>typedef long long ll;const ll m...

2020-03-10 08:02:21 150

原创 Lifeform Detector(栈)

题解:类似于括号匹配,这里是看a与b是否匹配,然后c可以跳过,注意特判其他字母。#include<iostream>#include<stack>using namespace std;int main( ){ int n; cin>>n; stack<char> p; for(int i=1;i<=n;i++) { i...

2020-03-10 06:59:04 103

原创 Cutting(思维)

题意:给出一组数和拥有的比特币,在这组数中偶数与奇数的数目相等,每切割一次就要使切割后的两部分各自偶数与奇数数目也想等,假设在i处切割,那么切割后所花费的比特币为a[i+1]-a[i],在不超过所给的比特值得情况下最多切割多少次。题解:由于题目说明刚开始得偶数与奇数就相等,那么这组数得数目必定是偶数,为了使切割后各自偶数与奇数数目相等,那么切割后各部分得数目也必定是偶数,所以我们假设每步为两个数...

2020-03-09 23:06:29 168

原创 问题 D: 大数(思维)

暴力#include<iostream>#include<string>#include<algorithm>using namespace std;string s,s2,s3;int main( ){ cin>>s; int len=s.length(); int cnt=0; int flag; for(int i=0;...

2020-03-09 15:19:07 137

原创 问题 B: 奎奎发红包(贪心)

题解:假设对于两个人i,j,第一种情况我们先取i后取j,那么计算得v[i]t[i]+v[j](ti]+t[j]);第二种情况我们先取j再取i,那么计算得v[j]t[j]+v[i](t[i]+t[j])。这时我们让第一种情况小于第二种化简得v[i]/t[i]>v[j]/t[j]所以我们就按照v[i]/t[i]从大到小的顺序排序。#include<iostream>#inclu...

2020-03-09 14:38:53 235 1

原创 Leftbest (STL容器,set解决)

题目意思:给你一组数,假设当前是第i个数,求前i-1个数中是否有大于第i个数的数,如果有那么总值加上大于它的最小值。题解:set容器可以自动从小到大排序并去重,所以我们可以设置一个set来存这个数,每存这个数之前先找一下是否有比它大的数,由于题目要求要的是比它大的最小值,根据set的特点,所以我们就需要找第一个比它大的数,即upper_bound()函数。#include<iostre...

2020-03-08 14:16:57 202

原创 01字符串

代码:#include<iostream>using namespace std;int main( ){ for(int i=0;i<2;i++) for(int j=0;j<2;j++) for(int k=0;k<2;k++) for(int m=0;m<2;m++) for(int n=0;n<2;n++)...

2020-03-01 16:34:54 177

空空如也

空空如也

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

TA关注的人

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