自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(42)
  • 资源 (1)
  • 收藏
  • 关注

原创 乘法逆元

#include<iostream>#define ll long longll exgcd(ll a,ll b,ll &x,ll &y){ if(b==0){ x=1; y=0; return a; } ll gcd=exgcd(b,a%b,y,x); y-=(a/b)*x; return gcd;}ll inv(ll a,ll p){...

2018-11-21 18:01:31 149

原创 扩展欧几里得

扩展欧几里得:已知a, b,求解一组x,y,使它们满足贝祖等式: ax+by =gcd(a, b)ax1+by1=gcd(a,b)bx2+(a%b)y2=gcd(b,a%b)gcd(a,b)=gcd(b,a%b)ax1+by1 = bx2+(a%b)y2ax1+by1=bx2+(a-a/b*b)y2ax1+by1=ay2+b(x2-a/b*y2)x1=y2; y1=x2...

2018-11-21 14:22:30 137

原创 欧拉函数

求某个数的欧拉函数值#include<iostream>#include<cmath>#define ll long longint main(){ ll n; std::cin>>n; ll res=n; for(ll i=2;i<=sqrt(n);i++) { if(n%i==0) res=res/i*(i-1...

2018-11-20 16:26:09 146

原创 js加减乘除混合运算

function getResult(str){ // var _str=str.repalce('*','×'); // var __str=_str.replace('/','÷'); var str1=str.split(''); var str2=[]; for(var i=0;i<str1.length;i++) { if(!Number(str1[i])&am...

2018-10-27 09:27:55 3257

转载 最近点对(转)

#include <stdio.h>#include <string.h>#include <algorithm>#include <iostream>#include <math.h>using namespace std;const int MAXN = 100010;const double INF = 1e20;...

2018-10-14 11:12:07 125

原创 并查集

int p[maxn];void init(){ for(int i=0;i<maxn;i++) p[i]=i; }int findset(int x){ return p[x]!=x?p[x]=findset(p[x]):x;}void join(int x,int y){ int a=findset(x); int b=findset(y); if(a!=b...

2018-06-08 18:20:06 117

转载 居民集会

蓝桥村的居民都生活在一条公路的边上,公路的长度为L,每户家庭的位置都用这户家庭到公路的起点的距离来计算,第i户家庭距起点的距离为di。每年,蓝桥村都要举行一次集会。今年,由于村里的人口太多,村委会决定要在4个地方举行集会,其中3个位于公路中间,1个位最公路的终点。已知每户家庭都会向着远离公路起点的方向去参加集会,参加集会的路程开销为家庭内的人数ti与距离的乘积。给定每户家庭的位置di和人数ti,请...

2018-05-15 21:55:10 273

原创 已知二叉树的中序和后序遍历排列,求前序遍历

#include<iostream>#include<string>using namespace std;void Preorder(string inorder,string postorder){ if(inorder.size()>0) { char ch=postorder[postorder.size()-1]; cout<&l...

2018-03-20 21:45:45 2905

原创 洛谷p1019 单词接龙

题目描述单词接龙是一个与我们经常玩的成语接龙相类似的游戏,现在我们已知一组单词,且给定一个开头的字母,要求出以这个字母开头的最长的“龙”(每个单词都最多在“龙”中出现两次),在两个单词相连时,其重合部分合为一部分,例如 beast和astonish,如果接成一条龙则变为beastonish,另外相邻的两部分不能存在包含关系,例如at 和 atide 间不能相连。输入输出格式输入格式:输入的第一行为...

2018-03-18 22:43:22 834

原创 最小费用最大流

#include<iostream>#include<cstring>#include<vector>#include<queue>#define maxn 1005#define inf 0x3f3f3f3fusing namespace std;struct Edge{ int from,to,cap,flow,cost; Ed...

2018-03-16 22:01:51 161

原创 最短路SPFA

#include<iostream>#include<vector>#include<queue>#include<cstring>#define inf 0x3f3f3f3f#define maxn 20005using namespace std;int d[maxn],inq[maxn];vector<pair<in...

2018-03-11 16:29:16 145

原创 图(邻接表写法)

#include<stdio.h>#include<stdlib.h>#define max 20typedef struct ArcNode /*ArcNode存放邻接表中的信息,包括顶点的位置和权值,和连接下一个顶点的指针*/ { int adjvex; struct ArcNode *nextarc; int info;...

2018-03-02 19:32:36 1134

原创 二叉树遍历,路径,查看某层(邻接表写法)

#include<stdio.h>#include<stdlib.h>#define OK 1#define OVERFLOW 0#define max 50typedef struct{ char a[max]; int top;}seqstack;seqstack *s=(seqstack *)malloc(sizeof(seqstack)); ...

2018-03-02 19:31:11 740

原创 最小生成树(邻接表写法)

#include<stdio.h>#include<stdlib.h>#define max 20typedef struct ArcNode{ int adjvex; struct ArcNode *nextarc; int info; } ArcNode;typedef struct VertexNode{ char data; ArcNode ...

2018-03-02 19:28:35 3154 1

转载 洛谷 p1004 方格取数

题目描述设有N*N的方格图(N<=9),我们将其中的某些方格中填入正整数,而其他的方格中则放人数字0。如下图所示(见样例):A 0 0 0 0 0 0 0 0 0 0 13 0 0 6 0 0 0 0 0 0 7 0 0 0 0 0 0 14 0 0 0 0 0 21 0 0 0 4 0 0 0 0 15 0 ...

2018-03-02 19:23:41 289

原创 洛谷 1002 过河卒

题目描述棋盘上A点有一个过河卒,需要走到目标B点。卒行走的规则:可以向下、或者向右。同时在棋盘上C点有一个对方的马,该马所在的点和所有跳跃一步可达的点称为对方马的控制点。因此称之为“马拦过河卒”。棋盘用坐标表示,A点(0, 0)、B点(n, m)(n, m为不超过20的整数),同样马的位置坐标是需要给出的。现在要求你计算出卒从A点能够到达B点的路径的条数,假设马的位置是固定不动的,并不是卒走一步马...

2018-03-02 11:24:03 260

原创 快排

#include<stdio.h>int QKpass(int a[],int low,int high){ int x=a[low]; while(low<high) { while(a[high]>x&&low<high) high--; if(low<high) { a[low]=a[high]; lo...

2018-02-26 19:40:43 147

原创 网络流最大流模板dicnic

#include<iostream>#include<vector>#include<queue>#include<cstring>#define inf 0x3f3f3f3f#define MAXN 100using namespace std;struct Edge{ int from,to; int cap; int flo...

2018-02-14 11:51:40 411

原创 最大子段和

#include<iostream>#include<cmath>#include<cstring>using namespace std;int a[50005];long long dp[50005];int main(){ memset(a,0,sizeof(a)); memset(dp,0,sizeof(dp)); int n; s...

2018-02-09 12:23:18 122

原创 51nod 1126 求递推序列的第N项

2018-02-09 10:18:13 154

原创 1133 不重叠的线段

X轴上有N条线段,每条线段有1个起点S和终点E。最多能够选出多少条互不重叠的线段。(注:起点或终点重叠,不算重叠)。例如:[1 5][2 3][3 6],可以选[2 3][3 6],这2条线段互不重叠。Input第1行:1个数N,线段的数量(2 <= N <= 10000)第2 - N + 1行:每行2个数,线段的起点和终点(-10^9 Output

2018-02-06 09:06:44 545

原创 51nod 1428 活动安排问题

有若干个活动,第i个开始时间和结束时间是[Si,fi),同一个教室安排的活动之间不能交叠,求要安排所有活动,最少需要几个教室?Input第一行一个正整数n (n <= 10000)代表活动的个数。第二行到第(n + 1)行包含n个开始时间和结束时间。开始时间严格小于结束时间,并且时间都是非负整数,小于1000000000Output一行包含一个整数表示最少教室的个数

2018-02-04 15:37:06 116

原创 51nod 1649 齐头并进

在一个叫奥斯汀的城市,有n个小镇(从1到n编号),这些小镇通过m条双向火车铁轨相连。当然某些小镇之间也有公路相连。为了保证每两个小镇之间的人可以方便的相互访问,市长就在那些没有铁轨直接相连的小镇之间建造了公路。在两个直接通过公路或者铁路相连的小镇之间移动,要花费一个小时的时间。现在有一辆火车和一辆汽车同时从小镇1出发。他们都要前往小镇n,但是他们中途不能同时停在同一个小镇(但是可以同时停在小镇

2018-02-02 10:09:21 238

原创 51 nod 1001 数组中和等于K的数对

给出一个整数K和一个无序数组A,A的元素为N个互不相同的整数,找出数组A中所有和等于K的数对。例如K = 8,数组A:{-1,6,5,3,4,2,9,0,8},所有和等于8的数对包括(-1,9),(0,8),(2,6),(3,5)。Input第1行:用空格隔开的2个数,K N,N为A数组的长度。(2 <= N <= 50000,-10^9 <= K <= 10^9)第2 - N 

2018-02-01 22:09:40 161

原创 51nod 1080 两个数的平方和

题目链接:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1080用映射记录i,j是否已被找出过遍历i,如果i,j正好是n的的两个答案,则n-i*i开根号应该是整数,即int  j=sqrt(n-i*i)和double  sqrt(n-i*i)相等#include#include#include#incl

2018-02-01 13:53:13 86

转载 51nod 1289 大鱼吃小鱼

#include#includeusing namespace std;int A[100005],B[100005];int C[100005];int main(){ int n; cin>>n; int i; for(i=0;i<n;i++) { cin>>A[i]>>B[i]; } int ans=n; int flag=-1; for(i=0;i<n;i

2018-01-31 13:15:22 291

原创 51nod 1344 走格子

有编号1-n的n个格子,机器人从1号格子顺序向后走,一直走到n号格子,并需要从n号格子走出去。机器人有一个初始能量,每个格子对应一个整数A[i],表示这个格子的能量值。如果A[i] > 0,机器人走到这个格子能够获取A[i]个能量,如果A[i] 例如:n = 5。{1,-2,-1,3,4} 最少需要2个初始能量,才能从1号走到5号格子。途中的能量变化如下3 1 0 3 7。

2018-01-30 20:55:51 157

原创 51nod 1347 旋转字符串

S[0...n-1]是一个长度为n的字符串,定义旋转函数Left(S)=S[1…n-1]+S[0].比如S=”abcd”,Left(S)=”bcda”.一个串是对串当且仅当这个串长度为偶数,前半段和后半段一样。比如”abcabc”是对串,”aabbcc”则不是。现在问题是给定一个字符串,判断他是否可以由一个对串旋转任意次得到。Input第1行:给出一个字符串(字符串非空

2018-01-30 20:07:44 100

原创 51nod 2020 排序相减

“排序相减”操作是指对于任意一个四位数n,将四个数字分别进行顺序排序和逆序排序,得到两个数取相减后结果的绝对值n1,然后继续将n1中的四个数字进行顺序排序和逆序排序,得到两个数取相减后结果的绝对值n2,以此类推,最后总会得到一个数字黑洞,无法跳出。例如:样例2中4176 = 6532 - 2356Input第一行输入一个整数T,表示数据组数(1<T<10000);第二

2018-01-30 19:37:38 201

原创 归并排序

#include#includeint a[50005];int temp[50005];void merge_sort(int l,int r){ if(l<r) { int mid=(l+r)>>1; merge_sort(l,mid); merge_sort(mid+1,r); int i=l,j=mid+1; int t=l; while(i<=mid

2018-01-30 16:02:25 93

转载 最长公共子序列lcs

#include#include#includeusing namespace std;char a[1005],b[1005],s[1005];int dp[1005][1005];int main(){ cin>>a>>b; memset(dp,0,sizeof(dp)); memset(s,0,sizeof(s)); int m=strlen(a); int n=st

2018-01-29 19:58:24 88

转载 N!,求n的阶乘

#includeint ans[50000];int main(){ int n,m,x,i,j; scanf("%d",&n); x=n; i=0; while(n>0) { ans[i]=n%10; n=n/10; i++; } for(m=2;m<x;m++) { int c=0; for(j=0;j<i;j++) { ans[j]=an

2018-01-29 11:06:01 599

转载 manacher(马拉车)求最长回文子串长度

#include#include#includeusing namespace std;char str[100000];char s[200000];int r[200000];int main(){ memset(s,0,sizeof(s)); memset(r,0,sizeof(r)); scanf("%s",str); int len=strlen(str); i

2018-01-28 23:07:46 135

原创 线段树

(1)#include#define N 50000struct node{ int x,y; long long sum;}t[N<<2];int a[N];void Build_Tree(int l,int r,int i){ t[i].x=l; t[i].y=r; if(l==r) { t[i].sum=a[l]; } else { int mid=(l

2018-01-28 11:58:35 89

转载 背包

http://www.jianshu.com/p/48f2dd394608http://blog.csdn.net/kangroger/article/details/38864689

2018-01-28 10:19:45 109

原创 无向图最小生成树Prim(普里姆)算法

#include#include#define inf 0x3f3f3f3f#define N 1000+5int g[N][N];int vis[N];int low[N];int n,m;int Prim(){ int i,j,pos,res=0; pos=1; //选取一个点作为初始点 vis[pos]=1; for(i=1;i<=n;

2018-01-24 18:09:55 1126

原创 二分图最大匹配

#include#include#define N 10int g[N][N];int result[N];int visit[N];int nx,ny,ne; int find(int u){ for(int i=1;i<=ny;i++) { if(g[u][i]==1&&!visit[i]) { visit[i]=1; if(result[i]==0||

2018-01-23 13:27:33 121

原创 c++期末课程设计(单号题)

期末课程设计第1题:设计一个学生学籍管理系统学生信息包括:姓名、学号、性别和英语、数学、程序设计、体育成绩。从键盘输入数据,建立数据文件student.dat。实现对学生或学号查询,显示信息。对所有学生,按照班级计算平均成绩。分别按照英语、数学、程序设计和体育成绩排序生成结果文件。#include&lt;iostream&gt;#include&lt;cstdio&gt;#...

2018-01-11 20:12:41 5177 3

原创 全排列

全排列

2017-12-10 21:55:48 132

转载 求x的第k位数

#includeint len(int x){ if(x<10) return 1; return len(x/10)+1;}int f(int x, int k){ if(len(x)-k==0) return x%10; return f(x/10,k); } int main(){ int x = 23574; printf("%d\n", f(x,4)); r

2017-12-10 17:37:59 381

visual c++ 绿色版,win7,8,,10皆可用

visual c++ 6.0绿色版,Microsoft Visual C++(简称Visual C++、MSVC、VC++或VC)是微软公司的C++开发工具,具有集成开发环境,可提供编辑C语言,C++以及C++/CLI等编程语言。VC++集成了便利的除错工具,特别是集成了微软Windows视窗操作系统应用程序接口(Windows API)、三维动画DirectX API,Microsoft .NET框架。目前最新的版本是Microsoft Visual C++ 2017

2018-01-03

空空如也

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

TA关注的人

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