CF1257F Make Them Similar

$solution:$

折半搜索后考虑如何维护两个数组的和,可以将 $A$ 中每个数减 $A_1$ ,$B$ 中每个数被减 $B_1$ ,$map$ 维护一下即可。

  1. #include<iostream>
  2. #include<cstring>
  3. #include<cstdio>
  4. #include<algorithm>
  5. #include<map>
  6. #include<vector>
  7. using namespace std;
  8. inline int read(){
  9. int f=,ans=;char c=getchar();
  10. while(c<''||c>''){if(c=='-')f=-;c=getchar();}
  11. while(c>=''&&c<=''){ans=ans*+c-'';c=getchar();}
  12. return f*ans;
  13. }
  14. const int MAXN=;
  15. int lowbit(int x){return x&-x;}
  16. int cont(int x){int c=;while(x) c++,x-=lowbit(x);return c;}
  17. int N,A[MAXN];
  18. vector<int> sta;
  19. map<vector<int> ,int> M;
  20. int main(){
  21. N=read();for(int i=;i<=N;i++) A[i]=read();
  22. for(int i=;i<(<<)-;i++){
  23. int cur=cont(i^((A[]>>)));sta.clear();
  24. for(int j=;j<=N;j++) sta.push_back(cont(i^(A[j]>>))-cur);
  25. M[sta]=i;
  26. }
  27. int all=((<<)-);
  28. for(int i=;i<(<<)-;i++){
  29. int cur=cont(i^((A[]&all)));sta.clear();
  30. for(int j=;j<=N;j++) sta.push_back(cur-cont(i^(A[j]&all)));
  31. if(M.count(sta)){
  32. printf("%d\n",(M[sta]<<)+i);
  33. return ;
  34. }
  35. }printf("-1\n");return ;
  36. }

CF1257E The Contest

 $solution:$

设 $f_{i,j}$ 表示现在在 $i$ 个数,现在在第 $j$ 段。

  1. #include<iostream>
  2. #include<cstring>
  3. #include<cstdio>
  4. #include<algorithm>
  5. using namespace std;
  6. inline int read(){
  7. int f=,ans=;char c=getchar();
  8. while(c<''||c>''){if(c=='-')f=-;c=getchar();}
  9. while(c>=''&&c<=''){ans=ans*+c-'';c=getchar();}
  10. return f*ans;
  11. }
  12. const int MAXN=;
  13. int col[MAXN],f[MAXN][],k1,k2,k3,N;
  14. int main(){
  15. k1=read(),k2=read(),k3=read();N=k1+k2+k3;
  16. for(int i=;i<=k1;i++) read();
  17. for(int i=;i<=k2;i++) col[read()]=;
  18. for(int i=;i<=k3;i++) col[read()]=;
  19. memset(f,/,sizeof(f));
  20. f[][]=;
  21. for(int i=;i<=N;i++){
  22. for(int j=;j<;j++){
  23. for(int k=;k<=j;k++) f[i][j]=min(f[i][j],f[i-][k]+(col[i]!=j));
  24. }
  25. }
  26. int Minn=min(f[N][],min(f[N][],f[N][]));
  27. printf("%d\n",Minn);return ;
  28. }

CF1268C And Reachability

$solution:$

设 $f_{i,j}$ 表示从 $i$ 点走到离 $i$ 最近并且 $j$ 位上是一的,可以简单递推得到。

时间复杂度 $O(20^2\cdot n)$ 。

  1. #include<iostream>
  2. #include<cstring>
  3. #include<cstdio>
  4. #include<algorithm>
  5. using namespace std;
  6. inline int read(){
  7. int f=,ans=;char c=getchar();
  8. while(c<''||c>''){if(c=='-')f=-;c=getchar();}
  9. while(c>=''&&c<=''){ans=ans*+c-'';c=getchar();}
  10. return f*ans;
  11. }
  12. const int MAXN=;
  13. int f[MAXN][],g[],n,q,A[MAXN];
  14. int main(){
  15. n=read(),q=read();
  16. for(int i=;i<=n;i++) A[i]=read();
  17. for(int i=;i<=n+;i++) for(int j=;j<=;j++) f[i][j]=g[j]=n+;
  18. for(int i=n;i>=;i--){
  19. for(int j=;j<=;j++){
  20. if(A[i]&(<<j)){
  21. for(int k=;k<=;k++) f[i][k]=min(f[i][k],f[g[j]][k]);
  22. f[i][j]=i;g[j]=i;
  23. }
  24. }
  25. }
  26. while(q--){
  27. int x=read(),y=read();bool ok=;
  28. for(int i=;i<=;i++) if(A[y]&(<<i)) ok|=(f[x][i]<=y);
  29. if(ok){printf("Shi\n");continue;}
  30. printf("Fou\n");
  31. }return ;
  32. }/*
  33. 5 5
  34. 0 0 1 3 7
  35. 1 2
  36. 2 2
  37. 3 5
  38. 4 5
  39. 1 5
  40. */

CF1268B Good Triple

$solution:$

因为 $2k\leq 9$ ,所以直接 $r$ 单调性暴力处理就行。时间复杂度 $O(9n)$ 。

  1. #include<iostream>
  2. #include<cstdio>
  3. #include<cstring>
  4. #include<algorithm>
  5. #define int long long
  6. using namespace std;
  7. inline int read(){
  8. int f=,ans=;char c=getchar();
  9. while(c<''||c>''){if(c=='-')f=-;c=getchar();}
  10. while(c>=''&&c<=''){ans=ans*+c-'';c=getchar();}
  11. return f*ans;
  12. }
  13. const int MAXN=;
  14. int L[MAXN],N,A[MAXN];
  15. char str[MAXN];
  16. signed main(){
  17. scanf("%s",str+);N=strlen(str+);
  18. for(int i=;i<=N;i++) A[i]=str[i]-'';
  19. int ll=,Ans=;
  20. for(int r=;r<=N;r++){
  21. for(int i=;r-*i>=;i++){
  22. if(A[r]==A[r-i]&&A[r-i]==A[r-*i]){ll=max(ll,r-*i);break;}
  23. }
  24. Ans+=ll;
  25. }printf("%lld\n",Ans);
  26. }

CSGRound2 逐梦者的初心

$solution:$

考虑将 $S$ 串翻转后1问题就变为了维护多项式系数。$bitset$ 优化即可。

时间复杂度 $O(\dfrac{m^2}{w})$

  1. #include<iostream>
  2. #include<cstring>
  3. #include<cstdio>
  4. #include<algorithm>
  5. #include<vector>
  6. #include<bitset>
  7. using namespace std;
  8. inline int read(){
  9. int x=,f=; char c=getchar();
  10. for(;!isdigit(c);c=getchar()) if(c=='-') f=-;
  11. for(;isdigit(c);c=getchar()) x=x*+c-'';
  12. return x*f;
  13. }
  14. const int N=;
  15. const int MAXN=;
  16. int n,m,A[N],Ans[MAXN];
  17. bitset<MAXN> Bit,ve[],e;
  18. int main(){
  19. n=read(),m=read();
  20. for(int i=;i<=m;i++) A[i]=read();for(int i=;i<=n-m;i++) read();
  21. for(int i=;i<=m;i++) ve[A[i]][m-i+]=;
  22. n=m;
  23. for(int i=;i<=m;i++){
  24. int opt=read(),x=read();
  25. if(opt==) Bit|=(ve[x]<<i);
  26. else{Bit=(Bit<<);Bit|=(ve[x]<<);}
  27. e[m+i]=;printf("%d\n",(Bit.flip()&e).count());
  28. Bit.flip();
  29. }
  30. return ;
  31. }/*
  32. 2 2
  33. 1 2
  34. 1 1
  35. 1 3
  36. */

CSGRound2 开拓者的卓识

$solution:$

考虑每一位 $a_i$ 对答案的贡献,根据插板原理可以得到。

$$S_{k,1,r}=\sum_{i=1}^r A_i\cdot \dbinom{i+k-2}{k-1}\cdot \dbinom{r-i+k-1}{k-1}\\=A_i\cdot\dfrac{(i+k-2)!}{(k-1)!\cdot(i-1)!}\cdot\dfrac{(r-i+k-1)!}{(k-1)!\cdot(r-i)!}\\=A_i\cdot\dfrac{(i+k-2)!\cdot (r-i+k-1)!}{(i-1)!\cdot(r-i)!}\cdot\dfrac{1}{(k-1)!^2}$$

$NTT$ 优化一下即可,而阶乘的预处理可以分段打表。

时间复杂度 $O(n\log n+n\times blo)$

CF1225E Rock Is Push

$solution:$

设 $f_{i,j,0/1}$ 表示从 $(1,1)$ 走到 $(i,j)$,其中最后一步的走向是右还是下。

则 $f_{i,j,0}=\sum_{e=k}^{j-1} f_{i,e,1}$ ,可以记录前缀和得到一段区间的 $dp$ 和。

而 $k$ 的得到可以因为实现不同,故时间复杂度为 $O(nm\log n)$ 或 $O(nm)$ 。

  1. #include<iostream>
  2. #include<cstdio>
  3. #include<cstring>
  4. #include<algorithm>
  5. #define int long long
  6. #define mod 1000000007
  7. using namespace std;
  8. inline int read(){
  9. int f=,ans=;char c=getchar();
  10. while(c<''||c>''){if(c=='-')f=-;c=getchar();}
  11. while(c>=''&&c<=''){ans=ans*+c-'';c=getchar();}
  12. return f*ans;
  13. }
  14. const int MAXN=;
  15. int n,m,f[MAXN][MAXN][];
  16. /*left 0 down 1*/
  17. char str[MAXN];
  18. int A[MAXN][MAXN],S1[MAXN][MAXN],S2[MAXN][MAXN];
  19. int Qi(int id,int l,int r){/*col*/
  20. return S1[r][id]-S1[l-][id];
  21. }
  22. int Qj(int id,int l,int r){/*row*/
  23. return S2[id][r]-S2[id][l-];
  24. }
  25. int fS1[MAXN][MAXN],fS2[MAXN][MAXN];
  26. int Mod(int x){return ((x%mod)+mod)%mod;}
  27. signed main(){
  28. // freopen("maker.in","r",stdin);
  29. n=read(),m=read();
  30. for(int i=;i<=n;i++){
  31. scanf("%s",str+);
  32. for(int j=;j<=m;j++) A[i][j]=(str[j]=='R');
  33. }
  34. if(n==&&m==){printf("%lld\n",A[][]^);return ;}
  35. for(int i=;i<=n;i++) for(int j=;j<=m;j++) S1[i][j]=S1[i-][j]+A[i][j];
  36. for(int i=;i<=n;i++) for(int j=;j<=m;j++) S2[i][j]=S2[i][j-]+A[i][j];
  37. f[][][]=f[][][]=;fS1[][]=,fS2[][]=;
  38. for(int i=;i<=n;i++){
  39. for(int j=;j<=m;j++){
  40. if(i==&&j==) continue;
  41. int l=,r=i-,res=i;
  42. while(l<=r){
  43. int mid=l+r>>;
  44. if(Qi(j,mid+,n)<=(n-i)) res=mid,r=mid-;
  45. else l=mid+;
  46. }
  47. f[i][j][]=fS1[i-][j]-fS1[res-][j];f[i][j][]=Mod(f[i][j][]);
  48. l=,r=j-,res=j;
  49. while(l<=r){
  50. int mid=l+r>>;
  51. if(Qj(i,mid+,m)<=(m-j)) res=mid,r=mid-;
  52. else l=mid+;
  53. }
  54. f[i][j][]=fS2[i][j-]-fS2[i][res-];f[i][j][]=Mod(f[i][j][]);
  55. fS1[i][j]=fS1[i-][j]+f[i][j][];fS1[i][j]=Mod(fS1[i][j]);
  56. fS2[i][j]=fS2[i][j-]+f[i][j][];fS2[i][j]=Mod(fS2[i][j]);
  57. }
  58. }printf("%lld\n",(f[n][m][]+f[n][m][])%mod);return ;
  59. }/*3 3
  60. .RR
  61. ...
  62. R..
  63. */

CF1239D Catowice City

$solution:$

考虑类似于 $2-SAT$ 将必须选择的关系连边,$tarjan$ 后让最开始遍历的强连通分量为 $1$ ,因为 $dfs$ 的顺序易知这是正确的。

  1. #include<iostream>
  2. #include<cstring>
  3. #include<cstdio>
  4. #include<algorithm>
  5. #include<vector>
  6. using namespace std;
  7. inline int read(){
  8. int f=,ans=;char c=getchar();
  9. while(c<''||c>''){if(c=='-')f=-;c=getchar();}
  10. while(c>=''&&c<=''){ans=ans*+c-'';c=getchar();}
  11. return f*ans;
  12. }
  13. const int MAXN=;
  14. int n,m,T,col[MAXN],sta[MAXN],num,dfn[MAXN],low[MAXN],Ans0[MAXN],Ans1[MAXN];
  15. vector<int> vec[MAXN];
  16. void Init(){
  17. num=;Ans0[]=,Ans1[]=;
  18. for(int i=;i<=n;i++) vec[i].clear();
  19. for(int i=;i<=n;i++) col[i]=dfn[i]=low[i]=;
  20. }
  21. void tarjan(int u){
  22. dfn[u]=low[u]=++num;sta[++sta[]]=u;
  23. int siz=vec[u].size();
  24. for(int i=;i<siz;i++){
  25. int v=vec[u][i];
  26. if(!dfn[v]){
  27. tarjan(v);
  28. low[u]=min(low[u],low[v]);
  29. }else if(!col[v]) low[u]=min(low[u],low[v]);
  30. }
  31. if(dfn[u]==low[u]){
  32. col[u]=++col[];
  33. while(sta[sta[]]!=u){
  34. col[sta[sta[]]]=col[];
  35. sta[]--;
  36. }sta[]--;
  37. }return;
  38. }
  39. int main(){
  40. // freopen("8.in","r",stdin);
  41. T=read();
  42. while(T--){
  43. n=read(),m=read();
  44. Init();
  45. for(int i=;i<=m;i++){int u=read(),v=read();vec[u].push_back(v);}
  46. for(int i=;i<=n;i++) if(!dfn[i]) tarjan(i);
  47. if(col[]==){printf("No\n");continue;}
  48. for(int i=;i<=n;i++){
  49. if(col[i]==) Ans0[++Ans0[]]=i;
  50. else Ans1[++Ans1[]]=i;
  51. }
  52. printf("Yes\n%d %d\n",Ans0[],Ans1[]);
  53. for(int i=;i<=Ans0[];i++) printf("%d ",Ans0[i]);printf("\n");
  54. for(int i=;i<=Ans1[];i++) printf("%d ",Ans1[i]);printf("\n");
  55. }return ;
  56. }

CF1244F Chips

$solution:$

考虑若对于 $i$ 来说在 $i-1,i+1$ 有颜色相同的话,那么无论经过多少次操作都可以为本身颜色。

否则,与其相邻的是 $01$ 段,模拟一下即可。

  1. #include<iostream>
  2. #include<cstring>
  3. #include<cstdio>
  4. #include<algorithm>
  5. using namespace std;
  6. inline int read(){
  7. int f=,ans=;char c=getchar();
  8. while(c<''||c>''){if(c=='-')f=-;c=getchar();}
  9. while(c>=''&&c<=''){ans=ans*+c-'';c=getchar();}
  10. return f*ans;
  11. }
  12. const int MAXN=;
  13. char str[MAXN];
  14. int n,k,A[MAXN],B[MAXN],C[MAXN];
  15. void print(int opt){opt?printf("W"):printf("B");}
  16. int main(){
  17. n=read(),k=read();
  18. scanf("%s",str+);
  19. for(int i=;i<=n;i++) A[i]=(str[i]=='W');
  20. A[]=A[n],A[n+]=A[];
  21. for(int i=;i<=n;i++) B[i]=(A[i-]==A[i]||A[i]==A[i+]),B[i+n]=B[i];
  22. bool F=;for(int i=;i<=n;i++) F|=B[i];
  23. if(!F){for(int i=;i<=n;i++) print(A[i]^(k&));printf("\n");return ;}
  24. int ps=;for(int i=;i<=n;i++) if(B[i]) ps=i;
  25. for(int i=n+;i<=*n;i++){if(B[i]) ps=i;C[i-n]=i-ps;}
  26. for(int i=*n;i>n;i--) if(B[i]) ps=i;
  27. for(int i=n;i>=;i--){if(B[i]) ps=i;C[i]=min(C[i],ps-i);}
  28. for(int i=;i<=n;i++){
  29. if(B[i]) print(A[i]);
  30. else print(A[i]^(min(k,C[i])&));
  31. }printf("\n");return ;
  32. }

CF1245F Daniel and Spring Cleaning

$solution:$

按维容斥后做简单数位 $dp$ 即可。

  1. #include<iostream>
  2. #include<cstring>
  3. #include<cstdio>
  4. #include<algorithm>
  5. #define int long long
  6. using namespace std;
  7. inline int read(){
  8. int f=,ans=;char c=getchar();
  9. while(c<''||c>''){if(c=='-')f=-;c=getchar();}
  10. while(c>=''&&c<=''){ans=ans*+c-'';c=getchar();}
  11. return f*ans;
  12. }
  13. const int MAXN=;
  14. int T,a,b,A[MAXN],B[MAXN],len,f[MAXN][][];
  15. int dfs(int ps,int lim1,int lim2){
  16. if(ps==-) return ;
  17. if(f[ps][lim1][lim2]!=-) return f[ps][lim1][lim2];
  18. int e1=(lim1==)?A[ps]:,e2=(lim2==)?B[ps]:,res=;
  19. for(int i=;i<=e1;i++)
  20. for(int j=;j<=e2;j++){
  21. if(i==&&j==) continue;
  22. res+=dfs(ps-,lim1&&(i==A[ps]),lim2&&(j==B[ps]));
  23. }
  24. return f[ps][lim1][lim2]=res;
  25. }
  26. int calc(int x,int y){
  27. if(x<||y<) return ;
  28. memset(f,-,sizeof(f));
  29. len=;
  30. for(int i=;i>=;i--) A[i]=(x&(<<i))?:;
  31. for(int i=;i>=;i--) B[i]=(y&(<<i))?:;
  32. return dfs(,,);
  33. }
  34. signed main(){
  35. // freopen("4.in","r",stdin);
  36. T=read();
  37. while(T--){
  38. int l=read(),r=read();
  39. printf("%lld\n",calc(r,r)+calc(l-,l-)-*calc(l-,r));
  40. }
  41. return ;
  42. }

CF1245E Hyakugoku and Ladders

 $solution:$

设 $f_{i,j}$ 表示从 $(i,j)$ 走到 $(1,1)$ 的期望步数,按题意模拟的转移即可。

  1. #include<iostream>
  2. #include<cstring>
  3. #include<cstdio>
  4. #include<algorithm>
  5. using namespace std;
  6. inline int read(){
  7. int f=,ans=;char c=getchar();
  8. while(c<''||c>''){if(c=='-')f=-;c=getchar();}
  9. while(c>=''&&c<=''){ans=ans*+c-'';c=getchar();}
  10. return f*ans;
  11. }
  12. const int N=;
  13. int M[N][N],fro[N*N];
  14. double f[N*N];
  15. int main(){
  16. for(int i=;i<=;i++)
  17. for(int j=;j<=;j++){
  18. if(i&) M[i][j]=(i-)*+j;
  19. else M[i][j]=(i-)*+-j;
  20. }
  21. double sum=;
  22. f[]=;for(int i=;i<=;i++){
  23. f[i]=(sum+)/(i-);
  24. sum+=f[i];
  25. }
  26. for(int i=;i<=;i++){
  27. for(int j=;j<=;j++){int x=read();fro[M[i][j]]=M[i-x][j];}
  28. }
  29. for(int i=;i<=;i++){
  30. double s=;
  31. for(int j=;j<=;j++) s+=min(f[i-j],f[fro[i-j]]);
  32. f[i]=s/6.0+;
  33. }
  34. printf("%.10lf\n",f[]);return ;
  35. }

CF1249F Maximum Weight Subset

$solution:$

设 $f_{i,j}$ 表示以 $i$ 号节点为根的子树下距离 $i$ 最近的点至少为 $j$ 的方案数,枚举哪个要选即可。

  1. #include<iostream>
  2. #include<cstring>
  3. #include<cstdio>
  4. #include<algorithm>
  5. using namespace std;
  6. inline int read(){
  7. int f=,ans=;char c=getchar();
  8. while(c<''||c>''){if(c=='-')f=-;c=getchar();}
  9. while(c>=''&&c<=''){ans=ans*+c-'';c=getchar();}
  10. return f*ans;
  11. }
  12. const int N=;
  13. int n,k,f[N][N],head[N],cnt,val[N],son[N];
  14. struct node{
  15. int u,v,nex;
  16. }x[N<<];
  17. void add(int u,int v){
  18. x[cnt].u=u,x[cnt].v=v,x[cnt].nex=head[u],head[u]=cnt++;
  19. }
  20. void dfs(int u,int fath){
  21. for(int i=head[u];i!=-;i=x[i].nex){
  22. if(x[i].v==fath) continue;
  23. dfs(x[i].v,u);
  24. }
  25. son[]=;
  26. for(int i=head[u];i!=-;i=x[i].nex){
  27. if(x[i].v==fath) continue;
  28. son[++son[]]=x[i].v;
  29. }
  30. for(int i=;i<=k;i++){
  31. if(i==){
  32. f[u][]=val[u];
  33. for(int j=;j<=son[];j++) f[u][]+=f[son[j]][k];
  34. continue;
  35. }
  36. for(int j=;j<=son[];j++){
  37. int res=f[son[j]][i-];
  38. for(int p=;p<=son[];p++){
  39. if(j==p) continue;
  40. res+=f[son[p]][max(k-i,i-)];
  41. }
  42. f[u][i]=max(f[u][i],res);
  43. }
  44. }for(int i=k;i>=;i--) f[u][i]=max(f[u][i],f[u][i+]);
  45. }
  46. int main(){
  47. memset(head,-,sizeof(head));
  48. n=read(),k=read();
  49. for(int i=;i<=n;i++) val[i]=read();
  50. for(int i=;i<n;i++){
  51. int u=read(),v=read();
  52. add(u,v),add(v,u);
  53. }dfs(,);
  54. printf("%d\n",f[][]);return ;
  55. }

some problem的更多相关文章

  1. 1199 Problem B: 大小关系

    求有限集传递闭包的 Floyd Warshall 算法(矩阵实现) 其实就三重循环.zzuoj 1199 题 链接 http://acm.zzu.edu.cn:8000/problem.php?id= ...

  2. No-args constructor for class X does not exist. Register an InstanceCreator with Gson for this type to fix this problem.

    Gson解析JSON字符串时出现了下面的错误: No-args constructor for class X does not exist. Register an InstanceCreator ...

  3. C - NP-Hard Problem(二分图判定-染色法)

    C - NP-Hard Problem Crawling in process... Crawling failed Time Limit:2000MS     Memory Limit:262144 ...

  4. Time Consume Problem

    I joined the NodeJS online Course three weeks ago, but now I'm late about 2 weeks. I pay the codesch ...

  5. Programming Contest Problem Types

        Programming Contest Problem Types Hal Burch conducted an analysis over spring break of 1999 and ...

  6. hdu1032 Train Problem II (卡特兰数)

    题意: 给你一个数n,表示有n辆火车,编号从1到n,入站,问你有多少种出站的可能.    (题于文末) 知识点: ps:百度百科的卡特兰数讲的不错,注意看其参考的博客. 卡特兰数(Catalan):前 ...

  7. BZOJ2301: [HAOI2011]Problem b[莫比乌斯反演 容斥原理]【学习笔记】

    2301: [HAOI2011]Problem b Time Limit: 50 Sec  Memory Limit: 256 MBSubmit: 4032  Solved: 1817[Submit] ...

  8. [LeetCode] Water and Jug Problem 水罐问题

    You are given two jugs with capacities x and y litres. There is an infinite amount of water supply a ...

  9. [LeetCode] The Skyline Problem 天际线问题

    A city's skyline is the outer contour of the silhouette formed by all the buildings in that city whe ...

  10. PHP curl报错“Problem (2) in the Chunked-Encoded data”解决方案

    $s = curl_init(); curl_setopt($s, CURLOPT_POST, true); curl_setopt($s, CURLOPT_POSTFIELDS, $queryStr ...

随机推荐

  1. python中pip相关命令

    用pip安装第三方包的命令 pip install xxx --user 用pip更新第三方包 pip install --upgrade xxx --user 用pip卸载第三方包 pip unin ...

  2. HDU2179--pi(麦金公式)

    Problem Description 计算圆周率到小数点后5n 位.(本题不可打表) Input 正整数n<300. n=0结束. Output 圆周率pi到小数点后5n位.第1行输出3.以5 ...

  3. express中redirect传递数据

    redirect中无法跟render一样传递数据 在index中,可以通过session重定向到login 在login.js 中获取req.session,渲染到login.ejs中,最后js获取

  4. 高级软件测试技术-小组任务分配和安排-Day01

    任务分配11-13 使用的工具 Jira 小组成员 华同学.郭同学.穆同学.沈同学.覃同学.刘同学 任务划分 1.撰写工具使用手册,要求在手册中至少说明如下内容: a. 该工具的基本情况,如名称,提供 ...

  5. java中的null类型---有关null的9件事

    摘自 https://blog.csdn.net/qq_25077777/article/details/80174763 今天听到一个问题,java中的null类型,null竟然是一种类型 java ...

  6. SpringBoot,用200行代码完成一个一二级分布式缓存

    缓存系统的用来代替直接访问数据库,用来提升系统性能,减小数据库复杂.早期缓存跟系统在一个虚拟机里,这样内存访问,速度最快. 后来应用系统水平扩展,缓存作为一个独立系统存在,如redis,但是每次从缓存 ...

  7. python jieba分词(结巴分词)、提取词,加载词,修改词频,定义词库 -转载

    转载请注明出处  “结巴”中文分词:做最好的 Python 中文分词组件,分词模块jieba,它是python比较好用的分词模块, 支持中文简体,繁体分词,还支持自定义词库. jieba的分词,提取关 ...

  8. maven之pom.xml的配置

    pom.xml是配置文件: <dependencies>表示依赖,里面可以有多个<dependency> 比如当前使用了junit的jar包,版本是3,8,1,我们现在更换新的 ...

  9. 分布式消息队列 Celery 的最佳实践

    目录 目录 不使用数据库作为 Broker 不要过分关注任务结果 实现优先级任务 应用 Worker 并发池的动态扩展 应用任务预取数 保持任务的幂等性 应用任务超时限制 善用任务工作流 合理应用 a ...

  10. 六:flask-自定义URL转换器

    flask进行url参数匹配的时候,是继承的werkzeug.routing.BaseConverter库进行重写的 导入看源码 里面有所有的URL参数数据类型的判断 也就是说,可以继承过后实现自己的 ...