摘要:
#include<iostream> using namespace std; const int N=20; int n; char g[N][N]; bool gs[N],unp[N],np[N]; void bhh(int u){ if(u==n){ for(int i=0;i<n;i++) 阅读全文
摘要:
#include<iostream> #include<cstring> #include<algorithm> using namespace std; const int N=1e5+10; int n,m; int h[N],e[N],ne[N],idx; int d[N];//入线 int 阅读全文
摘要:
#include<bits/stdc++.h> using namespace std; typedef long long LL; LL exgcd(LL a, LL b, LL &x, LL &y) { if (!b) { x = 1, y = 0; return a; } LL d = exg 阅读全文
摘要:
#include<iostream> using namespace std; const int N=100010; int p[N]; int find(int x){ if(p[x]!=x) p[x]=find(p[x]); return p[x]; } int main(){ int n,m 阅读全文
摘要:
#include<bits/stdc++.h> using namespace std; const int N=2010,mod=1e9+7; int c[N][N]; void inti(){ for(int i=0;i<N;i++){ for(int j=0;j<=i;j++){ if(j== 阅读全文
摘要:
1.首先要想到排序问题中的归并排序来解决此问题; 其次我们要看逆序数的定义是i<j&&a[i]>a[j] ; 下面就来模拟一下; 1 3 2 4 7 8 9 5 6 7 #include<bits/stdc++.h> using namespace std; const int N=1e5+10; 阅读全文
摘要:
1.快速排序 思想:分治算法 三步骤:1.找一个分界值x; 2.将小于等于x的放在左边,将大于等于x的放在右边; 3。递归左右两边; #include<iostream> using namespace std; const int N=1e5+10; void quick_sort(int q[] 阅读全文