![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法题
strawberry zong
这个作者很懒,什么都没留下…
展开
-
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 · 93 阅读 · 0 评论 -
递归实现指数型枚举(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 · 263 阅读 · 0 评论 -
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 · 148 阅读 · 0 评论 -
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 · 290 阅读 · 1 评论 -
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 · 286 阅读 · 0 评论 -
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 · 120 阅读 · 0 评论 -
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 · 196 阅读 · 0 评论 -
单调栈和单调队列
什么是单调栈?单调栈是一种先进后出并且栈中数据有序的一种数据结构。分享一个很详细的博客:传送门单调队列分享博客:传送门例题:#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 · 100 阅读 · 0 评论 -
差分
首先分享一个我看到过的关于差分数组讲解很详细的博客:传送门 超详细!!!转载 2020-07-21 20:55:04 · 114 阅读 · 0 评论 -
问题 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 · 197 阅读 · 1 评论 -
牛客—— 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 · 235 阅读 · 0 评论 -
荷马史诗(哈夫曼编码扩展)
详解转载 2020-05-13 23:41:14 · 988 阅读 · 0 评论 -
智乃与无意义的题目(线段树)
(代码来自机房大佬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 · 185 阅读 · 0 评论 -
张经理的员工(前缀和,思维)
#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 · 163 阅读 · 0 评论