传送门

当我打开比赛界面的时候所有题目都已经被一血了……

BINXOR

直接把异或之后二进制最多和最少能有多少个\(1\)算出来,在这个范围内枚举,组合数算一下就行了。注意\(1\)的个数是\(2\)个\(2\)个变的

  1. //quming
  2. #include<bits/stdc++.h>
  3. #define R register
  4. #define fp(i,a,b) for(R int i=(a),I=(b)+1;i<I;++i)
  5. #define fd(i,a,b) for(R int i=(a),I=(b)-1;i>I;--i)
  6. #define go(u) for(int i=head[u],v=e[i].v;i;i=e[i].nx,v=e[i].v)
  7. template<class T>inline bool cmax(T&a,const T&b){return a<b?a=b,1:0;}
  8. template<class T>inline bool cmin(T&a,const T&b){return a>b?a=b,1:0;}
  9. using namespace std;
  10. const int P=1e9+7;
  11. inline void upd(R int &x,R int y){(x+=y)>=P?x-=P:0;}
  12. inline int inc(R int x,R int y){return x+y>=P?x+y-P:x+y;}
  13. inline int dec(R int x,R int y){return x-y<0?x-y+P:x-y;}
  14. inline int mul(R int x,R int y){return 1ll*x*y-1ll*x*y/P*P;}
  15. int ksm(R int x,R int y){
  16. R int res=1;
  17. for(;y;y>>=1,x=mul(x,x))(y&1)?res=mul(res,x):0;
  18. return res;
  19. }
  20. const int N=2e5+5;
  21. char s[N];int cnt[2][2],fac[N],ifac[N],n,T,res,l,r;
  22. inline void init(int n=2e5){
  23. fac[0]=ifac[0]=1;fp(i,1,n)fac[i]=mul(fac[i-1],i);
  24. ifac[n]=ksm(fac[n],P-2);fd(i,n-1,1)ifac[i]=mul(ifac[i+1],i+1);
  25. }
  26. inline int C(R int n,R int m){return m<0||m>n?0:1ll*fac[n]*ifac[m]%P*ifac[n-m]%P;}
  27. int main(){
  28. // freopen("testdata.in","r",stdin);
  29. init();
  30. for(scanf("%d",&T);T;--T){
  31. scanf("%d",&n),cnt[0][0]=cnt[0][1]=cnt[1][0]=cnt[1][1]=0;
  32. scanf("%s",s+1);fp(i,1,n)++cnt[0][s[i]-'0'];
  33. scanf("%s",s+1);fp(i,1,n)++cnt[1][s[i]-'0'];
  34. l=n-min(cnt[0][0],cnt[1][0])-min(cnt[0][1],cnt[1][1]);
  35. r=min(cnt[0][0],cnt[1][1])+min(cnt[1][0],cnt[0][1]);
  36. // printf("%d %d\n",l,r);
  37. assert((r-l)&1^1);
  38. res=0;
  39. for(R int i=l;i<=r;i+=2)upd(res,C(n,i));
  40. printf("%d\n",res);
  41. }
  42. return 0;
  43. }

CHFRAN

把首先原问题肯定是找某个分界线,然后左边一组右边一组最优,所以我们把所有线段转成\([l,r-1]\),然后可以转化为对于某个点只要它没有被覆盖且左右都有线段即合法,那么我们枚举这个点,把所有跨过它的线段全部删掉就行了

  1. //quming
  2. #include<bits/stdc++.h>
  3. #define R register
  4. #define fp(i,a,b) for(R int i=(a),I=(b)+1;i<I;++i)
  5. #define fd(i,a,b) for(R int i=(a),I=(b)-1;i>I;--i)
  6. #define go(u) for(int i=head[u],v=e[i].v;i;i=e[i].nx,v=e[i].v)
  7. template<class T>inline bool cmax(T&a,const T&b){return a<b?a=b,1:0;}
  8. template<class T>inline bool cmin(T&a,const T&b){return a>b?a=b,1:0;}
  9. using namespace std;
  10. const int N=5e5+5;
  11. int b[N],c[N],sf[N],fs[N],l[N],r[N],n,T,tot,res;
  12. int main(){
  13. // freopen("testdata.in","r",stdin);
  14. for(scanf("%d",&T);T;--T){
  15. scanf("%d",&n),res=n+1,tot=0;
  16. fp(i,1,n){
  17. scanf("%d%d",&l[i],&r[i]),--r[i];
  18. b[++tot]=l[i],b[++tot]=r[i],b[++tot]=l[i]-1,b[++tot]=r[i]+1;
  19. }
  20. sort(b+1,b+1+tot),tot=unique(b+1,b+1+tot)-b-1;
  21. fp(i,0,tot+1)c[i]=sf[i]=fs[i]=0;
  22. fp(i,1,n){
  23. l[i]=lower_bound(b+1,b+1+tot,l[i])-b;
  24. r[i]=lower_bound(b+1,b+1+tot,r[i])-b;
  25. ++c[l[i]],--c[r[i]+1],++sf[r[i]],++fs[l[i]];
  26. }
  27. fp(i,1,tot+1)c[i]+=c[i-1],sf[i]+=sf[i-1];
  28. fd(i,tot,0)fs[i]+=fs[i+1];
  29. fp(i,1,tot)if(c[i]<n-1&&sf[i-1]>0&&fs[i+1]>0)cmin(res,c[i]);
  30. printf("%d\n",res==n+1?-1:res);
  31. }
  32. return 0;
  33. }

BINADD

首先特判掉\(B=0\)的情况,然后打个表发现答案就是\(A+B\)二进制时最长连续进位个数\(+1\)(比方说A的第\(0\)位和\(B\)的第\(0\)位都是\(1\),且从\(1\)到\(k\)位\(A\)和\(B\)恰好有一个为\(1\),那么\(A+B\)的时候这里就会连续进位\(k+1\)次)

发现规律之后证明就是显然的了,因为它实现的二进制加法就是每次把会进位的那些提出来单独处理,那么最多只会做最长连续进位个数次了

  1. //quming
  2. #include<bits/stdc++.h>
  3. #define R register
  4. #define fp(i,a,b) for(R int i=(a),I=(b)+1;i<I;++i)
  5. #define fd(i,a,b) for(R int i=(a),I=(b)-1;i>I;--i)
  6. #define go(u) for(int i=head[u],v=e[i].v;i;i=e[i].nx,v=e[i].v)
  7. template<class T>inline bool cmax(T&a,const T&b){return a<b?a=b,1:0;}
  8. template<class T>inline bool cmin(T&a,const T&b){return a>b?a=b,1:0;}
  9. using namespace std;
  10. const int N=1e5+5;
  11. char s[N],t[N];int n,m,lim,res,cnt,T;
  12. inline int max(R int x,R int y){return x>y?x:y;}
  13. int main(){
  14. // freopen("testdata.in","r",stdin);
  15. for(scanf("%d",&T);T;--T){
  16. scanf("%s%s",s+1,t+1),n=strlen(s+1),m=strlen(t+1),lim=max(n,m);
  17. if(m==1&&t[m]=='0'){puts("0");continue;}
  18. reverse(s+1,s+1+n),reverse(t+1,t+1+m);
  19. fp(i,1,n)s[i]-='0';fp(i,n+1,lim)s[i]=0;
  20. fp(i,1,m)t[i]-='0';fp(i,m+1,lim)t[i]=0;
  21. res=0;
  22. fp(i,1,lim)if(s[i]&t[i]){
  23. cnt=1,++i;
  24. while(i<=lim&&(s[i]^t[i]))++i,++cnt;
  25. --i,cmax(res,cnt);
  26. }
  27. printf("%d\n",res+1);
  28. }
  29. return 0;
  30. }

STICNOT

贪心都不会,被学弟鄙视了

首先我们发现,点和边随便乱放,而且一个点的权值一定要大于等于它连接的所有边权的最大值

那么我们把边从大到小往里加入,加入的第一条边连接的两个点,点权的下界就已经确定了(以为不可能有别的边比第一条边边权更大),加入第二条边的时候,容易发现肯定是与这两个点其中的某一个相连是最优的(因为这样可以只确定一个点的下界,另一个点的下界之后才被确定,而后确定的下界一定比先确定的下界要小)。那么相当于除了第一条边需要两个点之外,其余每条边都需要一个大于等于它权值的点,直接贪心即可,树的形态都不用管

  1. //quming
  2. #include<bits/stdc++.h>
  3. #define R register
  4. #define fp(i,a,b) for(R int i=(a),I=(b)+1;i<I;++i)
  5. #define fd(i,a,b) for(R int i=(a),I=(b)-1;i>I;--i)
  6. #define go(u) for(int i=head[u],v=e[i].v;i;i=e[i].nx,v=e[i].v)
  7. template<class T>inline bool cmax(T&a,const T&b){return a<b?a=b,1:0;}
  8. template<class T>inline bool cmin(T&a,const T&b){return a>b?a=b,1:0;}
  9. using namespace std;
  10. const int N=1e5+5;
  11. int a[N],b[N],n,res,T;
  12. int calc(){
  13. for(R int i=1,j=1;i<=n;++i){
  14. while(j<=n&&a[j]<b[i])++j;
  15. if(j>n)return n-i+1;
  16. ++j;
  17. }
  18. return 0;
  19. }
  20. int main(){
  21. // freopen("testdata.in","r",stdin);
  22. for(scanf("%d",&T);T;--T){
  23. scanf("%d",&n);
  24. for(R int i=1,u,v;i<n;++i)scanf("%d%d%d",&u,&v,&b[i]);
  25. fp(i,1,n)scanf("%d",&a[i]);
  26. sort(b+1,b+n),b[n]=b[n-1];
  27. sort(a+1,a+1+n);
  28. printf("%d\n",calc());
  29. }
  30. return 0;
  31. }

BINOFEV

颓柿子

\[\begin{aligned}
S
&=\sum_{i=0}^n{p\choose r}\\
&={1\over r!}\sum_{i=0}^n \left(p^i\right)^{\underline r}
\end{aligned}
\]

所以如果我们能把\(x^{\underline r}\)转成普通多项式,那么对于\(x^i\)那一项,前面系数相等,后面对于所有的\(p^j\)来说是一个等比数列求和,那么就可以计算了

然而我只会\(O(n\log^2 n)\)的分治\(NTT\)做法……一看数据范围就是点名被卡的……

然后翻了翻具体数学,得知

\[\begin{aligned}
& x^{\underline n}=\sum_k\begin{bmatrix}{n\\ k}\end{bmatrix}(-1)^{n-k}x^{k}\\
\end{aligned}
\]

又翻了翻洛谷,发现第一类斯特林数的行可以\(O(n\log n)\)求 这里

然后这题就做完了

  1. //quming
  2. #include<bits/stdc++.h>
  3. #define R register
  4. #define fp(i,a,b) for(R int i=(a),I=(b)+1;i<I;++i)
  5. #define fd(i,a,b) for(R int i=(a),I=(b)-1;i>I;--i)
  6. #define go(u) for(int i=head[u],v=e[i].v;i;i=e[i].nx,v=e[i].v)
  7. template<class T>inline bool cmax(T&a,const T&b){return a<b?a=b,1:0;}
  8. template<class T>inline bool cmin(T&a,const T&b){return a>b?a=b,1:0;}
  9. using namespace std;
  10. const int P=998244353;
  11. inline void upd(R int &x,R int y){(x+=y)>=P?x-=P:0;}
  12. inline int inc(R int x,R int y){return x+y>=P?x+y-P:x+y;}
  13. inline int dec(R int x,R int y){return x-y<0?x-y+P:x-y;}
  14. inline int mul(R int x,R int y){return 1ll*x*y-1ll*x*y/P*P;}
  15. int ksm(R int x,R int y){
  16. R int res=1;
  17. for(;y;y>>=1,x=mul(x,x))(y&1)?res=mul(res,x):0;
  18. return res;
  19. }
  20. int kkk(R int x,R int y){
  21. R int res=1,d=1;
  22. for(;y;y>>=1,d=mul(d,x+1),x=mul(x,x))if(y&1)res=inc(mul(res,x),d);
  23. return res;
  24. }
  25. const int N=(1<<20)+5;
  26. int fac[N],ifac[N],lg[N],r[25][N],up[N],rt[2][N],inv[25];
  27. int lim,d;
  28. inline void swap(R int &x,R int &y){R int t=x;x=y,y=t;}
  29. inline int C(R int n,R int m){return m>n?0:1ll*fac[n]*ifac[m]%P*ifac[n-m]%P;}
  30. void init(){
  31. fac[0]=ifac[0]=1;fp(i,1,1048576)fac[i]=mul(fac[i-1],i);
  32. ifac[1048576]=ksm(fac[1048576],P-2);fd(i,1048575,1)ifac[i]=mul(ifac[i+1],i+1);
  33. fp(d,1,20){
  34. fp(i,1,(1<<d)-1)r[d][i]=(r[d][i>>1]>>1)|((i&1)<<(d-1));
  35. inv[d]=ksm(1<<d,P-2),lg[1<<d]=d;
  36. fp(i,1<<(d-1),(1<<d)-1)up[i]=(1<<d);
  37. }
  38. for(R int t=(P-1)>>1,i=1,x,y;i<1048576;i<<=1,t>>=1){
  39. x=ksm(3,t),y=ksm(332748118,t),rt[0][i]=rt[1][i]=1;
  40. fp(k,1,i-1)
  41. rt[1][i+k]=mul(rt[1][i+k-1],x),
  42. rt[0][i+k]=mul(rt[0][i+k-1],y);
  43. }
  44. }
  45. void NTT(int *A,int ty){
  46. fp(i,0,lim-1)if(i<r[d][i])swap(A[i],A[r[d][i]]);
  47. R int t;
  48. for(R int mid=1;mid<lim;mid<<=1)
  49. for(R int j=0;j<lim;j+=(mid<<1))
  50. fp(k,0,mid-1)
  51. A[j+k+mid]=dec(A[j+k],t=mul(rt[ty][mid+k],A[j+k+mid])),
  52. A[j+k]=inc(A[j+k],t);
  53. if(!ty){
  54. t=inv[d];
  55. fp(i,0,lim-1)A[i]=mul(A[i],t);
  56. }
  57. }
  58. int f[N],n,T,m,p,res;
  59. void solve(int *b,int len){
  60. if(!len)return b[0]=1,void();
  61. solve(b,len>>1);
  62. lim=up[len],d=lg[lim];
  63. int dm=(len>>1);
  64. static int A[N],B[N];
  65. for(R int i=0,c=1;i<=dm;++i,c=mul(c,dm))A[i]=mul(c,ifac[i]);
  66. fp(i,0,dm)B[dm-i]=mul(b[i],fac[i]);
  67. fp(i,dm+1,lim-1)A[i]=B[i]=0;
  68. NTT(A,1),NTT(B,1);
  69. fp(i,0,lim-1)A[i]=mul(A[i],B[i]);
  70. NTT(A,0);
  71. reverse(A,A+dm+1);
  72. fp(i,0,dm)A[i]=mul(A[i],ifac[i]);fp(i,dm+1,lim-1)A[i]=0;
  73. fp(i,0,dm)B[i]=b[i];fp(i,dm+1,lim-1)B[i]=0;
  74. NTT(A,1),NTT(B,1);
  75. fp(i,0,lim-1)A[i]=mul(A[i],B[i]);
  76. NTT(A,0);
  77. fp(i,0,len)b[i]=A[i];
  78. if(len&1){
  79. fd(i,len,1)b[i]=inc(mul(b[i],len-1),b[i-1]);
  80. b[0]=mul(b[0],len-1);
  81. }
  82. }
  83. int main(){
  84. // freopen("testdata.in","r",stdin);
  85. init();
  86. for(scanf("%d",&T);T;--T){
  87. scanf("%d%d%d",&n,&p,&m);
  88. fp(i,0,m)f[i]=0;
  89. solve(f,m);
  90. res=0;
  91. for(R int i=0,c=1;i<=m;++i,c=mul(c,p)){
  92. R int ret=mul(f[i],kkk(c,n));
  93. upd(res,(m-i)&1?P-ret:ret);
  94. }
  95. printf("%d\n",mul(res,ifac[m]));
  96. }
  97. return 0;
  98. }

APAIRS

居然被一道sb题卡了这么久……

首先,计算\(score(i,j)\)的话,肯定是把两个数的十进制每一位从小到大排序,然后依次配对,这样一定是最优的,证明随便证

然后我们发现位与位之间的贡献是独立的,我们可以设\(f_{i,j}\)表示从小到大第\(i\)位为\(j\)的方案数,然后每次用\(f_{i,j}\)和\(f_{i,k}\)更新答案就行了

然后关于计算\(f_{i,j}\),我们可以直接枚举\(j\)的个数,以及小于\(j\)的个数,直接\(dp\)就行了,具体可以看代码

  1. //quming
  2. #include<bits/stdc++.h>
  3. #define R register
  4. #define fp(i,a,b) for(R int i=(a),I=(b)+1;i<I;++i)
  5. #define fd(i,a,b) for(R int i=(a),I=(b)-1;i>I;--i)
  6. #define go(u) for(int i=head[u],v=e[i].v;i;i=e[i].nx,v=e[i].v)
  7. template<class T>inline bool cmax(T&a,const T&b){return a<b?a=b,1:0;}
  8. template<class T>inline bool cmin(T&a,const T&b){return a>b?a=b,1:0;}
  9. using namespace std;
  10. const int P=1e9+7;
  11. inline void upd(R int &x,R int y){(x+=y)>=P?x-=P:0;}
  12. inline int inc(R int x,R int y){return x+y>=P?x+y-P:x+y;}
  13. inline int dec(R int x,R int y){return x-y<0?x-y+P:x-y;}
  14. inline int mul(R int x,R int y){return 1ll*x*y-1ll*x*y/P*P;}
  15. int ksm(R int x,R int y){
  16. R int res=1;
  17. for(;y;y>>=1,x=mul(x,x))(y&1)?res=mul(res,x):0;
  18. return res;
  19. }
  20. typedef long long ll;
  21. ll l,r;int f[25][25],as[25][25],fac[25],ifac[25],inv[25];
  22. int nd[25],sg[25],cnt[5],K,T,res;
  23. void init(int n=20){
  24. fac[0]=ifac[0]=fac[1]=ifac[1]=inv[0]=inv[1]=1;
  25. fp(i,2,n){
  26. fac[i]=mul(fac[i-1],i);
  27. inv[i]=mul(P-P/i,inv[P%i]);
  28. ifac[i]=mul(ifac[i-1],inv[i]);
  29. }
  30. fp(i,0,9)fp(j,0,9)as[i][j]=abs(i-j);
  31. }
  32. inline int calc(R int a,R int b,R int c){
  33. return 1ll*fac[a+b+c]*ifac[a]%P*ifac[b]%P*ifac[c]%P*ksm(K,a)%P*ksm(9-K,c)%P;
  34. }
  35. void solve(int a,int b,int c,int op){
  36. if(K==0&&a||K==9&&c)return;
  37. cnt[0]=a,cnt[1]=b,cnt[2]=c;
  38. R int res=0;
  39. fd(i,20,1){
  40. fp(j,0,nd[i]-1)if(cnt[sg[j]]){
  41. --cnt[sg[j]];
  42. upd(res,calc(cnt[0],cnt[1],cnt[2]));
  43. ++cnt[sg[j]];
  44. }
  45. if(!cnt[sg[nd[i]]])break;
  46. --cnt[sg[nd[i]]];
  47. if(i==1)++res;
  48. }
  49. if(op==-1)res=inc(0,P-res);
  50. fp(i,a+1,a+b)upd(f[i][K],res);
  51. }
  52. int main(){
  53. // freopen("testdata.in","r",stdin);
  54. init();
  55. for(scanf("%d",&T);T;--T){
  56. scanf("%lld%lld",&l,&r),--l;
  57. res=0,memset(f,0,sizeof(f));
  58. fp(i,1,20)nd[i]=r%10,r/=10;
  59. fp(k,0,9){
  60. fp(i,0,k-1)sg[i]=0;fp(i,k+1,9)sg[i]=2;
  61. sg[k]=1,K=k;
  62. fp(i,0,19)fp(j,0,19-i)solve(i,20-i-j,j,1);
  63. }
  64. fp(i,1,20)nd[i]=l%10,l/=10;
  65. fp(k,0,9){
  66. fp(i,0,k-1)sg[i]=0;fp(i,k+1,9)sg[i]=2;
  67. sg[k]=1,K=k;
  68. fp(i,0,19)fp(j,0,19-i)solve(i,20-i-j,j,-1);
  69. }
  70. fp(i,1,20)fp(j,0,9)if(f[i][j])fp(k,j+1,9)if(f[i][k])
  71. upd(res,2ll*f[i][j]*f[i][k]%P*as[j][k]%P);
  72. printf("%d\n",res);
  73. }
  74. return 0;
  75. }

December Challenge 2019 Division 1 题解的更多相关文章

  1. CodeChef November Challenge 2019 Division 1题解

    传送门 AFO前的最后一场CC了--好好打吧-- \(SIMGAM\) 偶数行的必定两人平分,所以只要抢奇数行中间那个就行了 这题怎么被爆破了 //quming #include<bits/st ...

  2. Codechef July Challenge 2019 Division 1题解

    题面 \(CIRMERGE\) 破环成链搞个裸的区间\(dp\)就行了 //quming #include<bits/stdc++.h> #define R register #defin ...

  3. 【CodeChef】December Challenge 2019 Div1 解题报告

    点此进入比赛 这次比赛本来想好好打的,但不幸的是,这周先是要认真复习准备月考,考完又是发烧在床上躺了一个周末,所以最终没能打完. 我还是好弱啊. \(T1\):Binary XOR(点此看题面) 大致 ...

  4. Codechef November Challenge 2019 Division 1

    Preface 这场CC好难的说,后面的都不会做QAQ 还因为不会三进制位运算卷积被曲明姐姐欺负了,我真是太菜了QAQ PS:最后还是狗上了六星的说,期待两(三)场之内可以上七星 Physical E ...

  5. Codechef October Challenge 2019 Division 1

    Preface 这次CC难度较上两场升高了许多,后面两题都只能借着曲明姐姐和jz姐姐的仙气来做 值得一提的是原来的F大概需要大力分类讨论,结果我写了一大半题目就因为原题被ban了233 最后勉强涨了近 ...

  6. Codechef September Challenge 2019 Division 2

    Preface 这确实应该是我打过的比较水的CC了(其实就打过两场) 但由于我太弱了打的都是Div2,所以会认为上一场更简单,其实上一场Div的数据结构是真的毒 好了废话不多说快速地讲一下 A Eas ...

  7. Codechef August Challenge 2019 Division 2

    Preface 老年菜鸡终于开始打CC了,由于他太弱了所以只能打Div2 因为台风的原因challenge并没有写,所以水了个Rank7 A Football SB模拟题不解释 #include< ...

  8. Codechef April Challenge 2019 Division 2

    Maximum Remaining 题意:给n个数,取出两个数$a_{i}$,$a_{j}$,求$a_{i}\% a_{j}$取模的最大值 直接排个序,第二大(严格的第二大)模第一大就是答案了. #i ...

  9. May Challenge 2019 Division 2 水题讲解

    Reduce to One 这题其实蛮水的? 题意就是说: 给定一个 1~n 的序列,每次挑两个数 x y 合并,合并值为 \(x+y+xy\) ,然后求不断合并最后剩下的一个的最大值 随便搞搞发现答 ...

随机推荐

  1. EasyUI datagrid-export 将datagrid的数据导出至Excel-解决科学计数法

    通过EasyUI datagrid-export.js 将datagrid的数据导出至Excel的时候,如果有类似身份证一样很长的数字,需要在后台返回数据的时候在数字前增加一个 “ ”,将数字转为字符 ...

  2. Linux中的RCU的那点事

      原文:https://zhuanlan.zhihu.com/p/67520807     今天来讲一下这Linux内核中的RCU(Read Copy Update,读复制更新)机制. 我主要参考的 ...

  3. 聊聊Golang逃逸分析

    逃逸分析的概念,go怎么开启逃逸分析的log. 以下资料来自互联网,有错误之处,请一定告之. 什么是逃逸分析 wiki上的定义 在编译程序优化理论中,逃逸分析是一种确定指针动态范围的方法——分析在程序 ...

  4. Git 分支的一些特殊的使用方式:Bug分支/feature分支/储存现场/

    参考链接:https://www.liaoxuefeng.com/wiki/896043488029600/900388704535136 一般都与dev分支进行合并 Bug分支 Bug分支也是一个分 ...

  5. 单词cymophanite猫眼石cymophanite英语

    金绿石的猫眼石(Cymophanite)是所谓正宗的猫眼石,非常罕有,尤其是5卡以上而质优的,其售价可以高达七万多港元一卡. 相传这类猫眼石是宝石学家的宝石,从此可知其地位在珠宝玉石之中的重要性.颜色 ...

  6. MYSQL中的时间类型

    时间上总共有五中表示方法:它们分别是 time.date.datetime.timestamp和year. time :  “hh:mm:ss”格式表示的时间值,格式显示TIME值,但允许使用字符串或 ...

  7. springboot:使用JPA-Hibernate

    步骤: 在pom.xml文件中添加mysql,spring-data-jpa的依赖. <!-- 添加mysql数据库驱动依赖--> <dependency> <group ...

  8. 第二篇 -- C#中对XML操作

    一.XML文件操作中与.Net中对应的类 微软的.NET框架在System.xml命名空间提供了一系列的类用于Dom的实现. 以下给出XML文档的组成部分对应.NET中的类: XML文档组成部分 对应 ...

  9. 如果wordpress分类只有一篇文章则直接跳转到文章页

    每个项目的需求都不一样,比如最近ytkah的客户提出如果wordpress分类只有一篇文章则直接跳转到文章页,这个实现起来不会很麻烦,几行代码就能搞定,下面就来一起看看吧.打开主题的function. ...

  10. str = @"abc ""def"" ghi """"jkl"""" mn";

    namespace ConsoleQuotes { class Program { static void Main(string[] args) { string str = @"abc ...